GUI: status bad - upated avaialbe pgroups for staff to be all

This commit is contained in:
2025-11-03 16:26:47 +01:00
parent 3185df5d40
commit 8ef53955d4
+34 -6
View File
@@ -9,7 +9,7 @@ from aaregui.widgets.value_label import ValueLabel
from aaredaqlib.logger_config import setup_logger
logger = setup_logger(__name__)
logger = setup_logger("aareGUI")
class StatusBar(QStatusBar):
set_pgroup = Signal(str)
@@ -22,6 +22,8 @@ class StatusBar(QStatusBar):
end_session = Signal()
close_shutter = Signal()
open_shutter = Signal()
get_all_pgroups = Signal()
staff_pgroups_loaded = Signal(list)
def __init__(self, token: TokenData, parent=None):
super().__init__(parent)
@@ -263,7 +265,6 @@ class StatusBar(QStatusBar):
session_ownership = self.__status.session.session == SessionsStateEnum.OwnedByYou
have_pgroup = (self.__status.session.current_pgroup in (self.__allowed_pgroups or []))
allowed = (not self.__status.busy and check_state and session_ownership and have_pgroup) or self.__is_staff
logger.info(f"do I have the baton in on grab clicked? {session_ownership}")
if allowed:
self.show_change_dialog()
@@ -298,11 +299,38 @@ class StatusBar(QStatusBar):
def open_shutter_clicked(self):
self.open_shutter.emit()
def show_change_dialog(self):
logger.debug(self.__decoded_token.pgroups)
curr = self.__status.session.current_pgroup
pgroups = [str(p) for p in (self.__allowed_pgroups or []) if p is not None and str(p).strip()]
def __list_staff_pgroups(self):
self.get_all_pgroups.emit()
return
def _generate_pgroup_dialogue(self, curr: str | None = None, pgroups: list | None = None):
dialog = PGroupDialog(curr_pgroup=curr, pgroups=pgroups)
if dialog.exec() == QDialog.DialogCode.Accepted:
entered_text = dialog.get_input()
self.set_pgroup.emit(entered_text)
def show_change_dialog(self):
logger.debug(self.__decoded_token.pgroups)
curr = self.__status.session.current_pgroup
pgroups = [str(p) for p in (self.__allowed_pgroups or []) if p is not None and str(p).strip()]
if self.__is_staff:
def _on_loaded(lst: list):
try:
merged = {str(p).strip() for p in (lst or []) if p is not None and str(p).strip()}
if not merged:
merged = set(pgroups)
self._generate_pgroup_dialogue(curr=curr, pgroups=sorted(merged))
finally:
try:
self.staff_pgroups_loaded.disconnect(_on_loaded)
except Exception as e:
logger.debug(f"Error disconnecting: {e}")
pass
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)