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")