intrgrating suggestions after betta 1
This commit is contained in:
@@ -188,6 +188,12 @@ class ViewOrdersIn:
|
||||
input_filter=ft.InputFilter(allow=True, regex_string=r"^[0-9]*\.?[0-9]*$", replacement_string=""),
|
||||
value=self.order['received_price']
|
||||
)
|
||||
self.expenses = ft.TextField(
|
||||
label="Expenses",
|
||||
keyboard_type=ft.KeyboardType.NUMBER,
|
||||
input_filter=ft.InputFilter(allow=True, regex_string=r"^[0-9]*\.?[0-9]*$", replacement_string=""),
|
||||
value=self.order['expenses']
|
||||
)
|
||||
|
||||
self.error_message = ft.Text(color = ft.Colors.RED)
|
||||
|
||||
@@ -280,6 +286,18 @@ class ViewOrdersIn:
|
||||
self.unloading_query = addresses
|
||||
self.unloading.controls = self.create_unloading_list(addresses, self.on_delete_unloading_address_btn_click)
|
||||
|
||||
self.file_picker = ft.FilePicker(on_result=self.on_file_result)
|
||||
self.page.overlay.append(self.file_picker)
|
||||
|
||||
self.upload_order_btn = ft.Button(
|
||||
"Upload",
|
||||
icon=ft.Icons.UPLOAD_FILE,
|
||||
width=150,
|
||||
on_click=self.on_upload_document_btn_click
|
||||
)
|
||||
|
||||
self.filename = ft.Text(value=self.order['file'])
|
||||
|
||||
def on_go_back_btn_click(self, e):
|
||||
self.dashboard.placeholder.content = self.archive.build()
|
||||
self.dashboard.placeholder.update()
|
||||
@@ -447,10 +465,10 @@ class ViewOrdersIn:
|
||||
self.loading_error_message.value = "Please select loading point!"
|
||||
self.loading_error_message.update()
|
||||
return
|
||||
if self.loading_informations.value == None or len(self.loading_informations.value) == 0:
|
||||
self.loading_error_message.value = "Add loading informations!"
|
||||
self.loading_error_message.update()
|
||||
return
|
||||
# if self.loading_informations.value == None or len(self.loading_informations.value) == 0:
|
||||
# self.loading_error_message.value = "Add loading informations!"
|
||||
# self.loading_error_message.update()
|
||||
# return
|
||||
if self.loading_date.value == None or len(str(self.loading_date.value)) == 0:
|
||||
self.loading_error_message.value = "Add loading date!"
|
||||
self.loading_error_message.update()
|
||||
@@ -480,6 +498,29 @@ class ViewOrdersIn:
|
||||
self.loading_error_message.value = "All fields of the loading address are required."
|
||||
self.loading_error_message.update()
|
||||
|
||||
def on_upload_document_btn_click(self, e):
|
||||
# Ensure FilePicker is attached to the page (Portainer/Flet sometimes reuses page objects)
|
||||
if self.file_picker not in getattr(self.page.overlay, "controls", []):
|
||||
self.page.overlay.append(self.file_picker)
|
||||
self.page.update()
|
||||
self.file_picker.pick_files(
|
||||
allow_multiple=False,
|
||||
allowed_extensions=["png", "jpg", "jpeg", "pdf"]
|
||||
)
|
||||
|
||||
def on_file_result(self, e: ft.FilePickerResultEvent):
|
||||
if not e.files:
|
||||
return
|
||||
file = e.files[0]
|
||||
# Build a safe filename: order_in_YYYYmmdd_HHMMSS_userid_originalname
|
||||
timestamp = datetime.datetime.now().strftime("%Y%m%d_%H%M%S")
|
||||
user_id = self.page.session.get("user_id")
|
||||
new_filename = f"order_in_{timestamp}_{user_id}_{file.name}"
|
||||
upload_url = self.page.get_upload_url(new_filename, 1000)
|
||||
self.file_picker.upload([ft.FilePickerUploadFile(file.name, upload_url=upload_url)])
|
||||
self.filename.value = new_filename
|
||||
self.filename.update()
|
||||
|
||||
def on_searching_unloading_address(self, e):
|
||||
query = e.control.value.lower()
|
||||
self.filtered_addresses_ul = [a for a in self.all_addresses if query in a["name"].lower()]
|
||||
@@ -565,10 +606,10 @@ class ViewOrdersIn:
|
||||
self.unloading_error_message.value = "Please select unloading point!"
|
||||
self.unloading_error_message.update()
|
||||
return
|
||||
if self.unloading_informations.value == None or len(self.unloading_informations.value) == 0:
|
||||
self.unloading_error_message.value = "Add unloading informations!"
|
||||
self.unloading_error_message.update()
|
||||
return
|
||||
# if self.unloading_informations.value == None or len(self.unloading_informations.value) == 0:
|
||||
# self.unloading_error_message.value = "Add unloading informations!"
|
||||
# self.unloading_error_message.update()
|
||||
# return
|
||||
if self.unloading_date.value == None or len(str(self.unloading_date.value)) == 0:
|
||||
self.unloading_error_message.value = "Add unloading date!"
|
||||
self.unloading_error_message.update()
|
||||
@@ -782,7 +823,9 @@ class ViewOrdersIn:
|
||||
'trailer_reg_number': self.trailer_reg_number.value,
|
||||
'received_price': self.received_price.value,
|
||||
'loading_addresses': loading_addresses,
|
||||
'unloading_addresses': unloading_addresses
|
||||
'unloading_addresses': unloading_addresses,
|
||||
'file':self.filename.value,
|
||||
'expenses': self.expenses.value,
|
||||
}
|
||||
#print(saved_data)
|
||||
if self.order_number.value == None or len(self.order_number.value)==0:
|
||||
@@ -904,7 +947,9 @@ class ViewOrdersIn:
|
||||
ft.Row(
|
||||
[
|
||||
ft.Text("Number", size=18, weight=ft.FontWeight.BOLD),
|
||||
self.order_number
|
||||
self.order_number,
|
||||
self.upload_order_btn,
|
||||
self.filename
|
||||
]
|
||||
),
|
||||
ft.Row(
|
||||
@@ -998,6 +1043,7 @@ class ViewOrdersIn:
|
||||
alignment=ft.MainAxisAlignment.START
|
||||
),
|
||||
self.received_price,
|
||||
self.expenses,
|
||||
],
|
||||
expand=2.5
|
||||
)
|
||||
@@ -1037,7 +1083,7 @@ class ViewOrdersIn:
|
||||
[
|
||||
self.loading_date,
|
||||
ft.ElevatedButton(
|
||||
"Pick date",
|
||||
"Select date",
|
||||
icon=ft.Icons.CALENDAR_MONTH,
|
||||
on_click=lambda e: self.page.open(
|
||||
ft.DatePicker(
|
||||
@@ -1054,7 +1100,7 @@ class ViewOrdersIn:
|
||||
[
|
||||
self.loading_hour,
|
||||
ft.ElevatedButton(
|
||||
"Pick hour - Start",
|
||||
"Select hour - Start",
|
||||
icon=ft.Icons.CALENDAR_MONTH,
|
||||
on_click=lambda e: self.page.open(
|
||||
ft.TimePicker(
|
||||
@@ -1067,7 +1113,7 @@ class ViewOrdersIn:
|
||||
),
|
||||
),
|
||||
ft.ElevatedButton(
|
||||
"Pick hour - End",
|
||||
"Select hour - End",
|
||||
icon=ft.Icons.CALENDAR_MONTH,
|
||||
on_click=lambda e: self.page.open(
|
||||
ft.TimePicker(
|
||||
@@ -1130,7 +1176,7 @@ class ViewOrdersIn:
|
||||
[
|
||||
self.unloading_date,
|
||||
ft.ElevatedButton(
|
||||
"Pick date",
|
||||
"Select date",
|
||||
icon=ft.Icons.CALENDAR_MONTH,
|
||||
on_click=lambda e: self.page.open(
|
||||
ft.DatePicker(
|
||||
@@ -1147,7 +1193,7 @@ class ViewOrdersIn:
|
||||
[
|
||||
self.unloading_hour,
|
||||
ft.ElevatedButton(
|
||||
"Pick hour - Start",
|
||||
"Select hour - Start",
|
||||
icon=ft.Icons.CALENDAR_MONTH,
|
||||
on_click=lambda e: self.page.open(
|
||||
ft.TimePicker(
|
||||
@@ -1160,7 +1206,7 @@ class ViewOrdersIn:
|
||||
),
|
||||
),
|
||||
ft.ElevatedButton(
|
||||
"Pick hour - End",
|
||||
"Select hour - End",
|
||||
icon=ft.Icons.CALENDAR_MONTH,
|
||||
on_click=lambda e: self.page.open(
|
||||
ft.TimePicker(
|
||||
|
||||
Reference in New Issue
Block a user