You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
42 lines
2.2 KiB
42 lines
2.2 KiB
from nicegui import ui |
|
from montydb import MontyClient |
|
from montydb.types.objectid import ObjectId |
|
|
|
import signal |
|
import os |
|
|
|
def main( userid: str, sede: int, livello: int, db: MontyClient, handler) -> None: |
|
|
|
if userid!= "new": |
|
result = db.users.find_one({"_id":ObjectId(userid)}) |
|
|
|
|
|
async def save(): |
|
data_submit = {k: v.value for k, v in data.items()} |
|
if userid == "new": |
|
data_submit['pagamenti']=[] |
|
data_submit['presenze']=[] |
|
db.users.insert_one(data_submit) |
|
else: |
|
print(data_submit) |
|
db.users.update_one( |
|
{"_id": ObjectId(userid)}, |
|
{"$set": data_submit} |
|
) |
|
handler.execute_callbacks('users_update') |
|
await ui.run_javascript('history.back()', respond=False) |
|
|
|
ui.icon("chevron_left", size="lg").on("click", lambda: ui.run_javascript('history.back()', respond=False)) |
|
with ui.column().classes("w-full h-screen place-items-center items-center").style(""): |
|
data = {} |
|
ui.row().classes("grow") |
|
data['nome'] = ui.input(value=str(result['nome']).capitalize() if userid != "new" else None, placeholder="Nome").props('outline').classes('w-full') |
|
data['cognome'] = ui.input(value=str(result['cognome']).capitalize() if userid != "new" else None, placeholder="Cognome").props('outline').classes('w-full') |
|
data['telefono'] = ui.input(value=str(result['telefono']).capitalize() if userid != "new" else None, placeholder="Telefono").props('outline').classes('w-full') |
|
data['email'] = ui.input(value=str(result['email']).capitalize() if userid != "new" else None, placeholder="email").props('outline').classes('w-full') |
|
options = {o['id']: str(o['nome']).capitalize() for o in db.sedi.find()} |
|
data['sede'] = ui.select(options, value=result['sede'] if userid != "new" else sede).props('outline').classes('w-full') |
|
options = {o['id']: str(o['nome']).capitalize() for o in db.livelli.find()} |
|
data['livello'] = ui.select(options, value=result['livello'] if userid != "new" else livello).props('outline').classes('w-full') |
|
ui.button(text="Salva", on_click=save) |
|
ui.row().classes("grow")
|
|
|