diff --git a/gui/src/aaregui/widgets/status_bar.py b/gui/src/aaregui/widgets/status_bar.py index dc3cc21d..f4b1902a 100644 --- a/gui/src/aaregui/widgets/status_bar.py +++ b/gui/src/aaregui/widgets/status_bar.py @@ -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)