GUI: limit pgroup typing to only valid pgroups

This commit is contained in:
martinappleby
2025-11-06 15:58:30 +01:00
parent 337b59af39
commit f3b798b770
+13 -4
View File
@@ -1,6 +1,6 @@
from PySide6.QtCore import Signal, Slot, QPoint, QTimer
from PySide6.QtGui import QFont
from PySide6.QtWidgets import QStatusBar, QDialog, QMenu, QLabel
from PySide6.QtWidgets import QStatusBar, QDialog, QMenu, QLabel, QMessageBox
from aaredaqlib.models import TokenData, BeamlineStateEnum, DAQStatusModel, SessionsStateEnum
from aaregui.widgets.clickable_label import ClickableLabel
@@ -307,6 +307,17 @@ class StatusBar(QStatusBar):
dialog = PGroupDialog(curr_pgroup=curr, pgroups=pgroups)
if dialog.exec() == QDialog.DialogCode.Accepted:
entered_text = dialog.get_input()
if pgroups and entered_text not in pgroups:
logger.warning(f"Attempted to set invalid pgroup: {entered_text}")
QMessageBox.warning(
self,
"Invalid P-Group",
f"P-group '{entered_text}' is not in your allowed list.\n"
f"Please select from: {', '.join(pgroups)}"
)
return
self.set_pgroup.emit(entered_text)
self.set_pgroup.emit(entered_text)
def show_change_dialog(self):
@@ -330,7 +341,5 @@ class StatusBar(QStatusBar):
self.staff_pgroups_loaded.connect(_on_loaded)
self.__list_staff_pgroups()
return
# logger.debug(staff_pgroups)
# pgroups = [str(p) for p in (staff_pgroups or pgroups or []) if p is not None and str(p).strip()]
# logger.debug(pgroups)
self._generate_pgroup_dialogue(curr=curr, pgroups=pgroups)