feature/integracion-cpanel-asrecovery
This commit is contained in:
@@ -32,6 +32,14 @@ class DashboardTab(QWidget):
|
||||
title_font.setBold(True)
|
||||
title.setFont(title_font)
|
||||
layout.addWidget(title)
|
||||
|
||||
self.panel_warning_label = QLabel("")
|
||||
self.panel_warning_label.setWordWrap(True)
|
||||
self.panel_warning_label.setStyleSheet(
|
||||
"background-color: #fff3cd; color: #856404; padding: 8px; border-radius: 4px;"
|
||||
)
|
||||
self.panel_warning_label.hide()
|
||||
layout.addWidget(self.panel_warning_label)
|
||||
|
||||
# Grid de estadísticas
|
||||
stats_group = QGroupBox("Estadísticas de Jobs")
|
||||
@@ -94,17 +102,29 @@ class DashboardTab(QWidget):
|
||||
times_group.setLayout(times_layout)
|
||||
layout.addWidget(times_group)
|
||||
|
||||
self.engine_status_badge = QLabel("Detenido")
|
||||
badge_font = QFont()
|
||||
badge_font.setPointSize(12)
|
||||
badge_font.setBold(True)
|
||||
self.engine_status_badge.setFont(badge_font)
|
||||
self.engine_status_badge.setAlignment(Qt.AlignmentFlag.AlignCenter)
|
||||
self.engine_status_badge.setStyleSheet(
|
||||
"background-color: #e9ecef; color: #495057; padding: 6px 14px; "
|
||||
"border-radius: 4px;"
|
||||
)
|
||||
layout.addWidget(self.engine_status_badge)
|
||||
|
||||
# Estado del motor
|
||||
motor_group = QGroupBox("Estado del Motor")
|
||||
motor_layout = QHBoxLayout()
|
||||
|
||||
|
||||
self.motor_status_label = QLabel("Detenido")
|
||||
motor_status_font = QFont()
|
||||
motor_status_font.setPointSize(14)
|
||||
motor_status_font.setBold(True)
|
||||
self.motor_status_label.setFont(motor_status_font)
|
||||
self.motor_status_label.setStyleSheet("color: red;")
|
||||
|
||||
|
||||
motor_layout.addWidget(QLabel("Estado:"))
|
||||
motor_layout.addWidget(self.motor_status_label)
|
||||
motor_layout.addStretch()
|
||||
@@ -136,6 +156,7 @@ class DashboardTab(QWidget):
|
||||
|
||||
def _load_initial_stats(self):
|
||||
"""Carga las estadísticas iniciales."""
|
||||
self.update_motor_status()
|
||||
stats = self.engine.get_stats()
|
||||
self.update_stats(stats)
|
||||
self._refresh_recent_jobs()
|
||||
@@ -193,3 +214,40 @@ class DashboardTab(QWidget):
|
||||
self.recent_table.setItem(i, 4, status_item)
|
||||
|
||||
self.recent_table.resizeColumnsToContents()
|
||||
|
||||
def update_motor_status(self) -> None:
|
||||
"""Actualiza badge y etiqueta según el estado actual del motor."""
|
||||
if not self.engine.is_running():
|
||||
text = "Detenido"
|
||||
badge_style = (
|
||||
"background-color: #e9ecef; color: #495057; padding: 6px 14px; "
|
||||
"border-radius: 4px;"
|
||||
)
|
||||
label_style = "color: red;"
|
||||
elif self.engine.is_paused():
|
||||
text = "Pausado"
|
||||
badge_style = (
|
||||
"background-color: #fff3cd; color: #856404; padding: 6px 14px; "
|
||||
"border-radius: 4px;"
|
||||
)
|
||||
label_style = "color: orange;"
|
||||
else:
|
||||
text = "Activo"
|
||||
badge_style = (
|
||||
"background-color: #d4edda; color: #155724; padding: 6px 14px; "
|
||||
"border-radius: 4px;"
|
||||
)
|
||||
label_style = "color: green;"
|
||||
|
||||
self.engine_status_badge.setText(f"Motor: {text}")
|
||||
self.engine_status_badge.setStyleSheet(badge_style)
|
||||
self.motor_status_label.setText(text)
|
||||
self.motor_status_label.setStyleSheet(label_style)
|
||||
|
||||
def set_panel_warning(self, message: str) -> None:
|
||||
"""Muestra aviso cuando falta configuración del servicio de bases en config/.env."""
|
||||
if message:
|
||||
self.panel_warning_label.setText(message)
|
||||
self.panel_warning_label.show()
|
||||
else:
|
||||
self.panel_warning_label.hide()
|
||||
|
||||
Reference in New Issue
Block a user