87 lines
3.1 KiB
Python
87 lines
3.1 KiB
Python
import flet as ft
|
|
import designer as des
|
|
import requests
|
|
|
|
class My_data(ft.View):
|
|
|
|
def load_table_column(self):
|
|
url = "http://localhost:8001/api-data-base/get_name_column?table_name=%D0%A1ollection_form_opk"
|
|
temp_column = []
|
|
try:
|
|
response = requests.post(url)
|
|
if response.status_code == 200:
|
|
temp = response.json()
|
|
# Пропускаем первый столбец (id)
|
|
for column in temp[1:]:
|
|
temp_column.append(ft.DataColumn(ft.Text(column)))
|
|
return temp_column
|
|
else:
|
|
print(f"Error: Received status code {response.status_code}")
|
|
return temp_column
|
|
except requests.exceptions.RequestException as e:
|
|
print(f"Error: {e}")
|
|
return temp_column
|
|
|
|
def load_return_rows(self):
|
|
from user_data import User_data as ud
|
|
|
|
url = f"http://localhost:8001/api-data-base/select_rows_with_filter?value={str(ud.inn)}"
|
|
temp_row = []
|
|
try:
|
|
response = requests.post(url)
|
|
if response.status_code == 200:
|
|
temp = response.json()
|
|
for row in temp:
|
|
# Пропускаем первый столбец (id)
|
|
values = list(row.values())[1:]
|
|
temp_row.append(
|
|
ft.DataRow(
|
|
cells=[ft.DataCell(ft.Text(str(value))) for value in values]
|
|
)
|
|
)
|
|
return temp_row
|
|
else:
|
|
print(f"Error: Received status code {response.status_code}")
|
|
return temp_row
|
|
except requests.exceptions.RequestException as e:
|
|
print(f"Error: {e}")
|
|
return temp_row
|
|
|
|
def __init__(self,page:ft.Page,route:str=""):
|
|
self.data_grid = ft.DataTable(
|
|
columns=self.load_table_column(),
|
|
rows=self.load_return_rows()
|
|
)
|
|
|
|
super().__init__(
|
|
bgcolor=des.color[2],
|
|
route=route,
|
|
controls=[
|
|
ft.Column(
|
|
controls=[
|
|
ft.Row(
|
|
controls=[
|
|
des.Button(text="профиль"),
|
|
des.Button(text="мои данные",on_click = self.go_to_my_data),
|
|
des.Button(text="заполнить данные", on_click=self.go_to_data),
|
|
]
|
|
),
|
|
ft.Row(
|
|
expand=True,
|
|
scroll=True,
|
|
controls=[
|
|
self.data_grid
|
|
]
|
|
)
|
|
]
|
|
)
|
|
]
|
|
)
|
|
|
|
|
|
def go_to_info(self,e):
|
|
self.page.go("/user_info")
|
|
def go_to_my_data(self,e):
|
|
self.page.go("/my_data")
|
|
def go_to_data(self,e):
|
|
self.page.go("/add_new_data") |