fix: main UI fixes
This commit is contained in:
parent
42973a242e
commit
b238721563
2 changed files with 364 additions and 13 deletions
|
|
@ -3383,6 +3383,116 @@
|
|||
"key": "Warnschwelle",
|
||||
"value": ""
|
||||
},
|
||||
{
|
||||
"context": "ui",
|
||||
"key": "Ansicht an Fenster anpassen",
|
||||
"value": ""
|
||||
},
|
||||
{
|
||||
"context": "ui",
|
||||
"key": "Ansicht zurücksetzen",
|
||||
"value": ""
|
||||
},
|
||||
{
|
||||
"context": "ui",
|
||||
"key": "Auswahl löschen",
|
||||
"value": ""
|
||||
},
|
||||
{
|
||||
"context": "ui",
|
||||
"key": "Canvas bearbeiten",
|
||||
"value": ""
|
||||
},
|
||||
{
|
||||
"context": "ui",
|
||||
"key": "Klicken Sie auf einen Ausgang, dann auf einen Eingang",
|
||||
"value": ""
|
||||
},
|
||||
{
|
||||
"context": "ui",
|
||||
"key": "Klicken Sie auf einen Eingang, um die Verbindung zu erstellen",
|
||||
"value": ""
|
||||
},
|
||||
{
|
||||
"context": "ui",
|
||||
"key": "Kommentar (optional)",
|
||||
"value": ""
|
||||
},
|
||||
{
|
||||
"context": "ui",
|
||||
"key": "Kommentar bearbeiten",
|
||||
"value": ""
|
||||
},
|
||||
{
|
||||
"context": "ui",
|
||||
"key": "Knoten duplizieren",
|
||||
"value": ""
|
||||
},
|
||||
{
|
||||
"context": "ui",
|
||||
"key": "Rückgängig",
|
||||
"value": ""
|
||||
},
|
||||
{
|
||||
"context": "ui",
|
||||
"key": "Verbindungen zeichnen",
|
||||
"value": ""
|
||||
},
|
||||
{
|
||||
"context": "ui",
|
||||
"key": "Vergrößern",
|
||||
"value": ""
|
||||
},
|
||||
{
|
||||
"context": "ui",
|
||||
"key": "Verkleinern",
|
||||
"value": ""
|
||||
},
|
||||
{
|
||||
"context": "ui",
|
||||
"key": "Wiederholen",
|
||||
"value": ""
|
||||
},
|
||||
{
|
||||
"context": "ui",
|
||||
"key": "Zoom-Voreinstellungen",
|
||||
"value": ""
|
||||
},
|
||||
{
|
||||
"context": "ui",
|
||||
"key": "Zoomstufe (Prozent)",
|
||||
"value": ""
|
||||
},
|
||||
{
|
||||
"context": "ui",
|
||||
"key": "Doppelklick zum Bearbeiten",
|
||||
"value": ""
|
||||
},
|
||||
{
|
||||
"context": "ui",
|
||||
"key": "Kommentar auf dem Canvas einfügen",
|
||||
"value": ""
|
||||
},
|
||||
{
|
||||
"context": "ui",
|
||||
"key": "Kommentar eingeben …",
|
||||
"value": ""
|
||||
},
|
||||
{
|
||||
"context": "ui",
|
||||
"key": "Canvas-Notiz verschieben",
|
||||
"value": ""
|
||||
},
|
||||
{
|
||||
"context": "ui",
|
||||
"key": "Notizfarbe",
|
||||
"value": ""
|
||||
},
|
||||
{
|
||||
"context": "ui",
|
||||
"key": "Notizgröße ändern",
|
||||
"value": ""
|
||||
},
|
||||
{
|
||||
"context": "ui",
|
||||
"key": "✓ Mandat eingereicht",
|
||||
|
|
@ -6776,6 +6886,116 @@
|
|||
"key": "Warnschwelle",
|
||||
"value": "Warnschwelle"
|
||||
},
|
||||
{
|
||||
"context": "ui",
|
||||
"key": "Ansicht an Fenster anpassen",
|
||||
"value": "Ansicht an Fenster anpassen"
|
||||
},
|
||||
{
|
||||
"context": "ui",
|
||||
"key": "Ansicht zurücksetzen",
|
||||
"value": "Ansicht zurücksetzen"
|
||||
},
|
||||
{
|
||||
"context": "ui",
|
||||
"key": "Auswahl löschen",
|
||||
"value": "Auswahl löschen"
|
||||
},
|
||||
{
|
||||
"context": "ui",
|
||||
"key": "Canvas bearbeiten",
|
||||
"value": "Canvas bearbeiten"
|
||||
},
|
||||
{
|
||||
"context": "ui",
|
||||
"key": "Klicken Sie auf einen Ausgang, dann auf einen Eingang",
|
||||
"value": "Klicken Sie auf einen Ausgang, dann auf einen Eingang"
|
||||
},
|
||||
{
|
||||
"context": "ui",
|
||||
"key": "Klicken Sie auf einen Eingang, um die Verbindung zu erstellen",
|
||||
"value": "Klicken Sie auf einen Eingang, um die Verbindung zu erstellen"
|
||||
},
|
||||
{
|
||||
"context": "ui",
|
||||
"key": "Kommentar (optional)",
|
||||
"value": "Kommentar (optional)"
|
||||
},
|
||||
{
|
||||
"context": "ui",
|
||||
"key": "Kommentar bearbeiten",
|
||||
"value": "Kommentar bearbeiten"
|
||||
},
|
||||
{
|
||||
"context": "ui",
|
||||
"key": "Knoten duplizieren",
|
||||
"value": "Knoten duplizieren"
|
||||
},
|
||||
{
|
||||
"context": "ui",
|
||||
"key": "Rückgängig",
|
||||
"value": "Rückgängig"
|
||||
},
|
||||
{
|
||||
"context": "ui",
|
||||
"key": "Verbindungen zeichnen",
|
||||
"value": "Verbindungen zeichnen"
|
||||
},
|
||||
{
|
||||
"context": "ui",
|
||||
"key": "Vergrößern",
|
||||
"value": "Vergrößern"
|
||||
},
|
||||
{
|
||||
"context": "ui",
|
||||
"key": "Verkleinern",
|
||||
"value": "Verkleinern"
|
||||
},
|
||||
{
|
||||
"context": "ui",
|
||||
"key": "Wiederholen",
|
||||
"value": "Wiederholen"
|
||||
},
|
||||
{
|
||||
"context": "ui",
|
||||
"key": "Zoom-Voreinstellungen",
|
||||
"value": "Zoom-Voreinstellungen"
|
||||
},
|
||||
{
|
||||
"context": "ui",
|
||||
"key": "Zoomstufe (Prozent)",
|
||||
"value": "Zoomstufe (Prozent)"
|
||||
},
|
||||
{
|
||||
"context": "ui",
|
||||
"key": "Doppelklick zum Bearbeiten",
|
||||
"value": "Doppelklick zum Bearbeiten"
|
||||
},
|
||||
{
|
||||
"context": "ui",
|
||||
"key": "Kommentar auf dem Canvas einfügen",
|
||||
"value": "Kommentar auf dem Canvas einfügen"
|
||||
},
|
||||
{
|
||||
"context": "ui",
|
||||
"key": "Kommentar eingeben …",
|
||||
"value": "Kommentar eingeben …"
|
||||
},
|
||||
{
|
||||
"context": "ui",
|
||||
"key": "Canvas-Notiz verschieben",
|
||||
"value": "Zum Verschieben greifen"
|
||||
},
|
||||
{
|
||||
"context": "ui",
|
||||
"key": "Notizfarbe",
|
||||
"value": "Notizfarbe"
|
||||
},
|
||||
{
|
||||
"context": "ui",
|
||||
"key": "Notizgröße ändern",
|
||||
"value": "Notizgröße ändern"
|
||||
},
|
||||
{
|
||||
"context": "ui",
|
||||
"key": "✓ Mandat eingereicht",
|
||||
|
|
@ -9994,6 +10214,116 @@
|
|||
"key": "Warnschwelle",
|
||||
"value": "Warning threshold"
|
||||
},
|
||||
{
|
||||
"context": "ui",
|
||||
"key": "Ansicht an Fenster anpassen",
|
||||
"value": "Fit to window"
|
||||
},
|
||||
{
|
||||
"context": "ui",
|
||||
"key": "Ansicht zurücksetzen",
|
||||
"value": "Reset view"
|
||||
},
|
||||
{
|
||||
"context": "ui",
|
||||
"key": "Auswahl löschen",
|
||||
"value": "Delete selection"
|
||||
},
|
||||
{
|
||||
"context": "ui",
|
||||
"key": "Canvas bearbeiten",
|
||||
"value": "Edit canvas"
|
||||
},
|
||||
{
|
||||
"context": "ui",
|
||||
"key": "Klicken Sie auf einen Ausgang, dann auf einen Eingang",
|
||||
"value": "Click an output, then an input"
|
||||
},
|
||||
{
|
||||
"context": "ui",
|
||||
"key": "Klicken Sie auf einen Eingang, um die Verbindung zu erstellen",
|
||||
"value": "Click an input to create the connection"
|
||||
},
|
||||
{
|
||||
"context": "ui",
|
||||
"key": "Kommentar (optional)",
|
||||
"value": "Comment (optional)"
|
||||
},
|
||||
{
|
||||
"context": "ui",
|
||||
"key": "Kommentar bearbeiten",
|
||||
"value": "Edit comment"
|
||||
},
|
||||
{
|
||||
"context": "ui",
|
||||
"key": "Knoten duplizieren",
|
||||
"value": "Duplicate node"
|
||||
},
|
||||
{
|
||||
"context": "ui",
|
||||
"key": "Rückgängig",
|
||||
"value": "Undo"
|
||||
},
|
||||
{
|
||||
"context": "ui",
|
||||
"key": "Verbindungen zeichnen",
|
||||
"value": "Draw connections"
|
||||
},
|
||||
{
|
||||
"context": "ui",
|
||||
"key": "Vergrößern",
|
||||
"value": "Zoom in"
|
||||
},
|
||||
{
|
||||
"context": "ui",
|
||||
"key": "Verkleinern",
|
||||
"value": "Zoom out"
|
||||
},
|
||||
{
|
||||
"context": "ui",
|
||||
"key": "Wiederholen",
|
||||
"value": "Redo"
|
||||
},
|
||||
{
|
||||
"context": "ui",
|
||||
"key": "Zoom-Voreinstellungen",
|
||||
"value": "Zoom presets"
|
||||
},
|
||||
{
|
||||
"context": "ui",
|
||||
"key": "Zoomstufe (Prozent)",
|
||||
"value": "Zoom level (percent)"
|
||||
},
|
||||
{
|
||||
"context": "ui",
|
||||
"key": "Doppelklick zum Bearbeiten",
|
||||
"value": "Double-click to edit"
|
||||
},
|
||||
{
|
||||
"context": "ui",
|
||||
"key": "Kommentar auf dem Canvas einfügen",
|
||||
"value": "Add comment on canvas"
|
||||
},
|
||||
{
|
||||
"context": "ui",
|
||||
"key": "Kommentar eingeben …",
|
||||
"value": "Enter a comment…"
|
||||
},
|
||||
{
|
||||
"context": "ui",
|
||||
"key": "Canvas-Notiz verschieben",
|
||||
"value": "Drag to move note"
|
||||
},
|
||||
{
|
||||
"context": "ui",
|
||||
"key": "Notizfarbe",
|
||||
"value": "Note color"
|
||||
},
|
||||
{
|
||||
"context": "ui",
|
||||
"key": "Notizgröße ändern",
|
||||
"value": "Resize note"
|
||||
},
|
||||
{
|
||||
"context": "ui",
|
||||
"key": "✓ Mandat eingereicht",
|
||||
|
|
|
|||
|
|
@ -58,14 +58,32 @@ def _getUserMandateIds(userId: str) -> list[str]:
|
|||
|
||||
|
||||
def _getAdminMandateIds(userId: str, mandateIds: list) -> list:
|
||||
"""Batch-check which mandates the user is admin for (2 SQL queries total)."""
|
||||
"""Batch-check which mandates the user is admin for (UserMandate → UserMandateRole → Role)."""
|
||||
if not mandateIds:
|
||||
return []
|
||||
rootIface = getRootInterface()
|
||||
from modules.datamodels.datamodelMembership import UserMandateRole
|
||||
allRoles = rootIface.db.getRecordset(UserMandateRole, recordFilter={
|
||||
"userId": userId, "mandateId": mandateIds,
|
||||
})
|
||||
from modules.datamodels.datamodelMembership import UserMandate, UserMandateRole
|
||||
|
||||
memberships = rootIface.db.getRecordset(
|
||||
UserMandate,
|
||||
recordFilter={"userId": userId, "mandateId": mandateIds, "enabled": True},
|
||||
)
|
||||
if not memberships:
|
||||
return []
|
||||
|
||||
umIdToMandateId: dict[str, str] = {}
|
||||
for m in memberships:
|
||||
row = m if isinstance(m, dict) else m.__dict__
|
||||
um_id = row.get("id")
|
||||
mid = row.get("mandateId")
|
||||
if um_id and mid:
|
||||
umIdToMandateId[str(um_id)] = str(mid)
|
||||
|
||||
userMandateIds = list(umIdToMandateId.keys())
|
||||
allRoles = rootIface.db.getRecordset(
|
||||
UserMandateRole,
|
||||
recordFilter={"userMandateId": userMandateIds},
|
||||
)
|
||||
if not allRoles:
|
||||
return []
|
||||
|
||||
|
|
@ -74,23 +92,26 @@ def _getAdminMandateIds(userId: str, mandateIds: list) -> list:
|
|||
for r in allRoles:
|
||||
row = r if isinstance(r, dict) else r.__dict__
|
||||
rid = row.get("roleId")
|
||||
mid = row.get("mandateId")
|
||||
if rid:
|
||||
um_id = row.get("userMandateId")
|
||||
mid = umIdToMandateId.get(str(um_id)) if um_id else None
|
||||
if rid and mid:
|
||||
roleIds.add(rid)
|
||||
roleToMandate.setdefault(rid, set()).add(mid)
|
||||
|
||||
if not roleIds:
|
||||
return []
|
||||
|
||||
from modules.datamodels.datamodelRbac import MandateRole
|
||||
roleRecords = rootIface.db.getRecordset(MandateRole, recordFilter={"id": list(roleIds)})
|
||||
from modules.datamodels.datamodelRbac import Role
|
||||
roleRecords = rootIface.db.getRecordset(Role, recordFilter={"id": list(roleIds)})
|
||||
adminMandates: set = set()
|
||||
for role in (roleRecords or []):
|
||||
row = role if isinstance(role, dict) else role.__dict__
|
||||
if row.get("isAdmin"):
|
||||
rid = row.get("id")
|
||||
if rid and rid in roleToMandate:
|
||||
adminMandates.update(roleToMandate[rid])
|
||||
rid = row.get("id")
|
||||
if not rid or rid not in roleToMandate:
|
||||
continue
|
||||
# Same rule as routeBilling._isAdminOfMandate / notifyMandateAdmins
|
||||
if row.get("roleLabel") == "admin" and not row.get("featureInstanceId"):
|
||||
adminMandates.update(roleToMandate[rid])
|
||||
|
||||
return [mid for mid in mandateIds if mid in adminMandates]
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue