This commit is contained in:
jze9
2025-04-01 23:27:36 +05:00
commit 4c72b79e86
49 changed files with 19305 additions and 0 deletions

121
app/pages/add_new_data.py Normal file
View File

@@ -0,0 +1,121 @@
import flet as ft
from designer import color, Button, Text, DataPicer, DataGrid, DownList, Field, Loger,Observer
from user_data import User_data
import pydantic as pd
import datetime
import json
class Add_new_data(ft.View):
def __init__(self, page: ft.Page):
self.data_grid = DataGrid(page=page)
self.creation_time = datetime.datetime.today()
super().__init__(
route="/add_new_data",
bgcolor=color[2],
controls=[
ft.Column(
controls=[
ft.Container(
padding=ft.padding.all(20),
border_radius=ft.border_radius.all(10),
height=70,
expand=True,
bgcolor=color[3],
content=ft.Row(
expand=True,
controls=[
Button(text="профиль"),
Button(text="мои данные"),
Button(text="заполнить данные"),
]
)
),
ft.Container(
content=ft.Row(
scroll=True,
controls=[
ft.Column(
controls=[
self.data_grid,
Button(text="+", on_click=self.data_grid.add_new_row),
Button(text="сохранить", on_click=self.open_data_picer),
]
),
]
),
),
]
)
]
)
def send_data_to_api(self, save_data, api_url: str):
import requests
headers = {'Content-Type': 'application/json'}
response = requests.post(api_url, headers=headers, data=json.dumps(save_data))
return response
def validdate(self, item, column):
columns = {}
count_void = 0
icol = 1
current_time = datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S")
columns[column[icol]] = current_time
icol += 1
columns[column[icol]] = str(self.creation_time.strftime("%Y-%m-%d"))
icol += 1
columns[column[icol]] = User_data.name_poo
icol += 1
columns[column[icol]] = "test"
icol += 1
for cell in item.cells:
print(f"{icol}")
if isinstance(cell.content, DownList):
if cell.content.view_text.value == "":
Loger(text="строку с пустыми выподающими списками")
break
elif cell.content._id_ != -1:
columns[column[icol]] = Observer.inn_manufacturing_enterprises["inn"][cell.content._id_]
icol += 1
columns[column[icol]] = cell.content.view_text.value
else:
columns[column[icol]] = cell.content.view_text.value
elif isinstance(cell.content, Field):
if cell.content.value == "":
columns[column[icol]] = "0"
else:
columns[column[icol]] = cell.content.value
icol += 1
return columns
def handle_change(self, e):
self.creation_time = e.control.value
self.save_data()
def handle_dismissal(self, e):
pass
def open_data_picer(self, e):
self.page.open(
DataPicer(creation_time=self.creation_time, handle_change=self.handle_change, handle_dismissal=self.handle_dismissal)
)
def save_data(self):
temp = self.data_grid.return_data()
column = self.data_grid.column_name
rows = []
for item in temp:
rows.append(self.validdate(item=item, column=column))
print(f"{rows=}")
table_name = "Сollection_form_opk"
api_url = f'http://localhost:8001/api-data-base/insert_table'
save_data_instance = {
"data": rows
}
response = self.send_data_to_api(save_data_instance, api_url)
if response.status_code == 200:
print("Данные успешно отправлены")
else:
print(f"Ошибка при отправке данных: {response.status_code}")