11from typing import Optional , List , Tuple
22import datetime
33
4+ from loguru import logger
5+
46from flet import (
57 UserControl ,
68 Card ,
1315 Text ,
1416 PopupMenuButton ,
1517 PopupMenuItem ,
18+ AlertDialog ,
19+ TextButton ,
1620)
1721from flet import icons
1822
@@ -246,7 +250,42 @@ def make_contract_view(contract: Contract):
246250 )
247251
248252
249- def make_project_view (project : Project ):
253+ def make_project_view (
254+ project : Project ,
255+ app_page : "AppPage" ,
256+ ):
257+ def on_confirm_delete_project (event ):
258+ app_page .app .con .delete (project )
259+ app_page .app .page .dialog .open = False
260+ app_page .app .page .update ()
261+ app_page .update_content ()
262+ app_page .app .snackbar_message (f"Project { project .title } deleted" )
263+
264+ def on_cancel_delete_project (event ):
265+ app_page .app .page .dialog .open = False
266+ app_page .app .page .update ()
267+ app_page .update_content ()
268+
269+ def on_click_delete_project (event ):
270+ delete_project_dialog = AlertDialog (
271+ modal = True ,
272+ title = Text ("Please confirm" ),
273+ content = Text (f"Do you really want to delete the project { project .title } ?" ),
274+ actions = [
275+ TextButton ("Delete" , on_click = on_confirm_delete_project ),
276+ TextButton ("Cancel" , on_click = on_cancel_delete_project ),
277+ ],
278+ actions_alignment = "end" ,
279+ on_dismiss = lambda e : print ("Modal dialog dismissed!" ),
280+ )
281+
282+ app_page .app .page .dialog = delete_project_dialog
283+ delete_project_dialog .open = True
284+ app_page .app .page .update ()
285+
286+ # app_page.app.con.delete(project)
287+ # app_page.update_content()
288+
250289 return Card (
251290 content = Container (
252291 content = Column (
@@ -265,6 +304,7 @@ def make_project_view(project: Project):
265304 PopupMenuItem (
266305 icon = icons .DELETE ,
267306 text = "Delete" ,
307+ on_click = on_click_delete_project ,
268308 ),
269309 ],
270310 ),
0 commit comments