z9i-SrSSKJrJrJrJrJrJrJrJ r J r J r SSK J r SSKJr SSKJr SSKJr SSKJr SSKJr "S S \5rg ) z? History Widget for Python Scheduler Display execution history ) QWidget QVBoxLayout QHBoxLayout QTableWidgetQTableWidgetItem QPushButton QHeaderViewQLabelQSpinBox QMessageBox)Qt)QColor)logger)SchedulerDatabase)SchedulerConfig)LogMonitorWindowcP^\rSrSrSrS\S\4U4SjjrSrSr Sr S r S r U=r $) HistoryWidgetzExecution history widgetdbconfigc>[TU]5 XlX lSUlUR 5 UR 5 g)N2)super__init__rrlimit _setup_uirefresh)selfrr __class__s )C:\PYTHON\Scheduler\gui\history_widget.pyrHistoryWidget.__init__s2     ct[U5n[5n[S5nURS5 UR U5 UR 5 [S5nUR U5 [ 5UlURRS5 URRS5 URRS5 URRS5 URRRUR5 UR UR5 [S5UlUR R"RUR$5 UR R'S5 UR UR 5 [S 5UlUR(R"RUR*5 UR UR(5 UR-U5 [/5UlUR0R3S 5 UR0R5/S Q5 UR0R75R9S [:R<R>5 UR0RA[.RBRD5 UR0RGS 5 UR0RI[.RJRL5 UR UR05 g)zSetup UIzExecution Historyz#font-size: 14px; font-weight: bold;z Show last: iru📺 Monitor Logz'Open log monitor for selected executionu 🔄 Refresh)IDzJob NameStatusz Start TimeDurationz Exit Codez Triggered ByTN)'rrr setStyleSheet addWidget addStretchr limit_spin setMinimum setMaximumsetValue setSingleStep valueChangedconnect_on_limit_changedr monitor_btnclicked _open_monitor setToolTip refresh_btnr addLayoutrtablesetColumnCountsetHorizontalHeaderLabelshorizontalHeadersetSectionResizeModer ResizeModeStretchsetSelectionBehaviorSelectionBehavior SelectRowssetAlternatingRowColorssetEditTriggers EditTriggerNoEditTriggers)rlayout header_layout header_label limit_labels r!rHistoryWidget._setup_uisKT"$ 12 ""#HI -  "\*  ,"* ""2& ""3'   $ %%b) $$,,T-C-CD0''9:   ((););< ##$MN 0 01'~6   ((6 0 01'"^  !!!$ ,,.   ##%::1k>T>T>\>\] '' (F(F(Q(QR **40 ""<#;#;#J#JK$r#c0XlUR5 g)zHandle limit changeN)rr)rvalues r!r5HistoryWidget._on_limit_changedQs  r#c ,URRURS9nURR [ U55 [ U5GHup#URRUS[[US555 [US5nURRUSU5 USn[UR55nUS:Xa;UR[RR5 URS5 OUS :Xa;UR[RR 5 URS 5 OUS :Xa;UR[RR"5 URS 5 O@US :Xa:UR[RR$5 URS5 URRUSU5 US(aUSSSOSnURRUS[U55 US(a USSS3nOSnURRUS[U55 USb[US5OSn [U 5n USS:Xa*U R[RR5 O8USb2USS:wa)U R[RR 5 URRUSU 5 URRUS[US55 GM [&R("S[ U5S35 g![*a#n [&R,"SU 35 Sn A gSn A ff=f) zRefresh execution history)rridjob_namer*status completedu ✓ COMPLETEDfailedu ✗ FAILEDrunningu ▶ RUNNINGtimeoutu ⏱ TIMEOUT start_timeNrzN/Aduration_secondsz.1fs exit_code triggered_byzRefreshed history table: z executionszError refreshing history: )rget_recent_executionsrr< setRowCountlen enumeratesetItemrstrupper setForegroundr GlobalColor darkGreensetTextredblue darkYellowrdebug Exceptionerror) r executionsrow execution name_itemrU status_itemr[ duration_strr` exit_itemes r!rHistoryWidget.refreshVs: ;66TZZ6HJ JJ " "3z? 3"+J"7 ""3+;C $ [(--bnn.F.FG''8x'--bnn.@.@A'' 5y(--bnn.A.AB'' 6y(--bnn.G.GH'' 6 ""3;7>G|=TY|4Sb9Z_  ""3+;J+GH/0&/0B&CC%H#JL#(L ""3+;L+IJ,>? ""395 ""3+;Inn[R"SU35 [R"USSU35 SnAgSnAff=f) z.Open log monitor window for selected executionz No Selectionz%Please select an execution to monitorNrz!Opened log monitor for execution zError opening monitor: ErrorzFailed to open monitor: )r<selectedIndexesr warningrviteminttextrrshowrinforsrtcritical)r selected_rowsrvexecution_id_item execution_idmonitor_windowr|s r!r8HistoryWidget._open_monitors P JJ668M ##D.:ab "&&(C $ Q 7 $05578L.lGGTJN    ! KK;L>J K P LL21#6 7  w2J1#0N O O Ps#9C 6C 3AC D4DD)rrrr.r6r:r<)__name__ __module__ __qualname____firstlineno____doc__rrrrr5rr8__static_attributes__ __classcell__)r s@r!rrs7",o0%d <;|PPr#rN)rPyQt6.QtWidgetsrrrrrrr r r r PyQt6.QtCorer PyQt6.QtGuirlogurur core.databaser core.configrgui.log_monitor_windowrrr#r!rs= +'3ZPGZPr#