Show required positions and make SetPositionsView use transaction streaming
continuous-integration/drone/pr Build is failing Details

This commit is contained in:
Rio Liu 2021-09-25 14:57:37 -04:00
parent 67aa4d0056
commit 103fdc64a9
2 changed files with 10 additions and 5 deletions

View File

@ -14,7 +14,7 @@ position_names = {
'sysadmin': "Sysadmin",
'cro': "Chief Returning Officer",
'librarian': "Librarian",
'imapd': "IMAPd",
'imapd': "IMAPD",
'webmaster': "Web Master",
'offsck': "Office Manager",
}
@ -27,15 +27,17 @@ class GetPositionsView(CeoFrame):
'GetPositions',
on_load = self._on_load)
cfg = component.getUtility(IConfig)
layout = Layout([100], fill_frame=True)
self.add_layout(layout)
cfg = component.getUtility(IConfig)
avail = cfg.get('positions_available')
required = cfg.get('positions_required')
self._positions = []
for pos in cfg.get('positions_available'):
for pos in avail:
widget = Text(
f"{position_names.get(pos, pos)}:",
f"{'*' if pos in required else ' '}{position_names.get(pos, pos)}:",
pos,
readonly=readonly,
)

View File

@ -1,5 +1,7 @@
from ...utils import defer, http_post
from . import GetPositionsView
from ceod.transactions.members.UpdateMemberPositionsTransaction import UpdateMemberPositionsTransaction as PositionsTransactions
class SetPositionsView(GetPositionsView):
def __init__(self, screen, widgets, height, model):
super().__init__(screen, widgets, height, model, False)
@ -20,6 +22,7 @@ class SetPositionsView(GetPositionsView):
positions[pos.name] = pos.value
self._model.deferred_req = defer(http_post, f'/api/positions', json=positions)
self._model.operations = PositionsTransactions.operations
self._model.confirm_lines = [
"The positions will be updated as follows",
'',