B&j!TdZddlZddlmZeejjjZeeej vr$ej deeddl Z ddl m Z mZmZdefdZGddZGd d eZ dd ed efd ZdS)zi Standalone dashboard runner. Usato da dash_tipologie/run.py, dash_em_pivot/run.py, dash_diritti/run.py. N)Path) QApplication QMainWindow QMessageBoxreturnc tdz dz dz }t|d5}tj|dicdddS#1swxYwYdS#t $ricYSwxYw)Nappconfigz config.yamlzutf-8)encodingtheme) _myicr_rootopenyaml safe_loadget Exception)cfg_pathfs 1C:\PYTHON\MyICR_Suite\app\features\dash_runner.py _load_themers&1MA (W - - - 6>!$$(("55 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6  s4!A%(A A%AA%A A%% A43A4c8eZdZdZdefdZ d dededefd Z d S) _FakeMainWindowz8Stub minimale di MainWindow per le dashboard standalone.r c"||_||_dSN) _status_barr )self status_barr s r__init__z_FakeMainWindow.__init__s% Fmessage is_temporary duration_mscx|r|j||dS|j|dSr)r showMessage)rr!r"r#s rshow_status_messagez#_FakeMainWindow.show_status_message!sF  2   ( (+ > > > > >   ( ( 1 1 1 1 1rN)Fr ) __name__ __module__ __qualname____doc__dictrstrboolintr&rrrrsnBB$FK/32232d2),222222rrc deZdZdZ ddedededeffd Zded ed efd Z d eded edefdZ xZ S) DashWindowz0QMainWindow che ospita una dashboard standalone.N filter_datatitler fullscreen_mapc t|||pi|_||_g|_t ||}|||}t|dr|j |j t|dr|j |j |||dS)N) main_windowr2status_updatedopen_new_tab_requested)superrsetWindowTitle_fullscreen_map_theme _fs_windowsr statusBarhasattrr7connect _on_statusr8_open_fullscreensetCentralWidget showMaximized) r DashClassr2r3r r4fake_mwdash __class__s rrzDashWindow.__init__,s  E"""-3 !$.."2"2E::yW+FFF 4) * * 9   ' ' 8 8 8 41 2 2 G  ' / /0E F F F d### rmsgis_tempr#c|r*|||dS||dSr)r>r%)rrIrJr#s rrAzDashWindow._on_status@sT  . NN   ( (k : : : : : NN   ( ( - - - - -r page_type _singletondatacj|}|d|vrdSGfdd}t}|||||dj}|||j|| dS)N dataframeceZdZjZdS)-DashWindow._open_fullscreen.._FakeMW2N)r'r(r)r<r )rsr_FakeMW2rRKsKEEErrS)r6rNr ) r;rrr:r<rCrDr=appendshow) rrLr3rMrNFSClassrSwinpages ` rrBzDashWindow._open_fullscreenFs&**955 ?k55 F          mm 5!!!w88::D4E![*** T"""  $$$  rr) r'r(r)r*r+r,rr-r.rArB __classcell__)rHs@rr1r1)s::6:tC.2(.c.D.s.... #ctSWrr1r3r4cttj}||t } |}nD#t $r7}t jddd|tjdYd}~nd}~wwxYwt|||||}tj| dS)uJ Avvia una dashboard standalone. Parameters ---------- DashClass : classe della dashboard (es. DashboardTipologiePage) filter_loader : callable() → dict (es. FilterPanel.get_filter_data) title : titolo finestra fullscreen_map : {'fullscreen_tipologie': FullScreenTablePage, ...} Nz Errore avvioz/Impossibile caricare i dati di configurazione: ) rsysargvsetApplicationNamerrrcriticalexitr1exec) rE filter_loaderr3r4r r r2erWs r run_dashboardrdXs sx C5!!! MME#moo T>SPQSS U U U   Y UE> J JCHSXXZZs A B -BB r)r*r\pathlibr__file__resolveparentr r,pathinsertrPyQt6.QtWidgetsrrrr+rrr1rdr/rrrlsS d8nn$$&&-4; 3{38##HOOAss;''((( BBBBBBBBBBT 2 2 2 2 2 2 2 2,,,,,,,,`*.3"&r