diff --git a/src/onegov/pas/collections/attendence.py b/src/onegov/pas/collections/attendence.py index 2f46780362..6ae4544d84 100644 --- a/src/onegov/pas/collections/attendence.py +++ b/src/onegov/pas/collections/attendence.py @@ -161,13 +161,10 @@ def for_commission_president( (Attendence.commission_id.in_(active_commission_ids)) ) - def view_for_parliamentarian( + def query_for_current_user( self, request: PasRequest ) -> list[Attendence]: - """ - Returns filtered attendances based on user role and permissions. - This encapsulates the filtering logic previously in the view. - """ + """Returns attendances filtered by the current user's role.""" user = request.current_user if not request.is_parliamentarian: diff --git a/src/onegov/pas/layouts/attendence.py b/src/onegov/pas/layouts/attendence.py index f6817cf7d9..49161ad79d 100644 --- a/src/onegov/pas/layouts/attendence.py +++ b/src/onegov/pas/layouts/attendence.py @@ -120,6 +120,27 @@ def breadcrumbs(self) -> list[Link]: @cached_property def editbar_links(self) -> list[Link] | None: + if self.model.bulk_edit_id: + name = ( + 'edit-plenary-bulk-attendences' + if self.model.type == 'plenary' + else 'edit-commission-bulk-attendences' + ) + if self.request.is_admin or ( + self.request.is_parliamentarian + and self.request.current_parliamentarian + and str(self.request.current_parliamentarian.id) + == str(self.model.parliamentarian_id) + ): + return [ + Link( + text=_('Edit bulk'), + url=self.request.link(self.model, name), + attrs={'class': 'edit-link'}, + ) + ] + return None + if self.request.is_admin: return [ Link( diff --git a/src/onegov/pas/locale/de_CH/LC_MESSAGES/onegov.pas.po b/src/onegov/pas/locale/de_CH/LC_MESSAGES/onegov.pas.po index 3594fabb3b..4269e99863 100644 --- a/src/onegov/pas/locale/de_CH/LC_MESSAGES/onegov.pas.po +++ b/src/onegov/pas/locale/de_CH/LC_MESSAGES/onegov.pas.po @@ -395,6 +395,9 @@ msgstr "Massenbuchung Plenarsitzung" msgid "Commission session (bulk)" msgstr "Massenbuchung Kommissionssitzung" +msgid "Edit bulk" +msgstr "Massenbuchung bearbeiten" + msgid "Edit" msgstr "Bearbeiten" @@ -589,12 +592,15 @@ msgstr "Dauer" msgid "No meeting defined yet." msgstr "Noch keine Sitzung erfasst." -msgid "Bulk edits" -msgstr "Massenbuchungen" +msgid "Session date" +msgstr "Sitzungsdatum" msgid "edited" msgstr "bearbeitet" +msgid "Bulk edits" +msgstr "Massenbuchungen" + msgid "Timestamp" msgstr "Zeitpunkt" @@ -908,8 +914,8 @@ msgstr "Sitzung hinzugefügt" msgid "You do not have permission to edit plenary sessions." msgstr "Sie haben keine Berechtigung, Plenarsitzungen zu bearbeiten." -msgid "Edit plenary session" -msgstr "Plenarsitzung bearbeiten" +msgid "Edit bulk: plenary session" +msgstr "Massenbuchung: Plenarsitzung bearbeiten" msgid "Edited attendences" msgstr "Anwesenheiten bearbeitet" @@ -924,8 +930,8 @@ msgid "Delete Attendencess" msgstr "Anwesenheiten löschen" #, python-format -msgid "Edit ${type}" -msgstr "${type} bearbeiten" +msgid "Edit bulk: ${type}" +msgstr "Massenbuchung: ${type} bearbeiten" #, python-format msgid "Cannot edit attendance - abschluss already set for: ${names}" @@ -950,6 +956,9 @@ msgstr "" msgid "Your changes were saved" msgstr "Änderungen gespeichert" +msgid "Cannot delete individual bulk attendance." +msgstr "Einzelne Massenbuchung kann nicht gelöscht werden." + msgid "Cannot delete attendance in closed settlement run." msgstr "" "Anwesenheit in geschlossenem Abrechnungslauf kann nicht gelöscht werden." @@ -1096,12 +1105,33 @@ msgstr "" "Geschlossener Abrechnungslauf kann nicht gelöscht werden. Bitte zuerst " "öffnen." +#~ msgid "Edit plenary session" +#~ msgstr "Plenarsitzung bearbeiten" + +#, python-format +#~ msgid "Edit ${type}" +#~ msgstr "${type} bearbeiten" + +#~ msgid "User Account Sync" +#~ msgstr "Benutzerkonto-Synchronisation" + +#~ msgid "Synced" +#~ msgstr "Synchronisiert" + +#~ msgid "Skipped" +#~ msgstr "Übersprungen" + +#~ msgid "Created" +#~ msgstr "Erstellt" + +#~ msgid "New accounts" +#~ msgstr "Neue Konten" + #~ msgid "No president or vice president found" #~ msgstr "Kein Präsident oder Vizepräsident gefunden" #~ msgid "President: ${name} (CHF ${amount})" #~ msgstr "Präsident/in: ${name} (CHF ${amount})" - #~ msgid "Vice president: ${name} (CHF ${amount})" #~ msgstr "Vizepräsident/in: ${name} (CHF ${amount})" diff --git a/src/onegov/pas/templates/attendences.pt b/src/onegov/pas/templates/attendences.pt index 988e7594d6..cfd23ae822 100644 --- a/src/onegov/pas/templates/attendences.pt +++ b/src/onegov/pas/templates/attendences.pt @@ -9,7 +9,7 @@