intrgrating suggestions after betta 1

This commit is contained in:
2025-09-08 18:06:00 +03:00
parent eb262451ad
commit 106045d72a
34 changed files with 1549 additions and 146 deletions

View File

@@ -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(