GUI: status bad - upated avaialbe pgroups for staff to be all
This commit is contained in:
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user