diff --git a/src/onegov/pas/homepage.py b/src/onegov/pas/homepage.py new file mode 100644 index 0000000000..25e51611a2 --- /dev/null +++ b/src/onegov/pas/homepage.py @@ -0,0 +1,26 @@ +from __future__ import annotations + +from onegov.user.auth.core import Auth +from onegov.pas.app import PasApp +from onegov.core.security import Public +from onegov.org.models import Organisation +from morepath import redirect + + +from typing import TYPE_CHECKING +if TYPE_CHECKING: + from onegov.town6.request import TownRequest + from webob import Response + + +@PasApp.view(model=Organisation, permission=Public) +def view_org( + self: Organisation, + request: TownRequest +) -> Response: + """ Renders the homepage. """ + + if not request.is_logged_in: + return redirect(request.class_link(Auth, name='login')) + + return redirect(request.class_link(Organisation, name='pas')) diff --git a/src/onegov/pas/layouts/default.py b/src/onegov/pas/layouts/default.py index fdf39cd50f..d742d5db86 100644 --- a/src/onegov/pas/layouts/default.py +++ b/src/onegov/pas/layouts/default.py @@ -3,10 +3,21 @@ from functools import cached_property from onegov.pas import _ from onegov.town6.layout import DefaultLayout as BaseDefaultLayout +from onegov.pas.models.settlement_run import SettlementRun class DefaultLayout(BaseDefaultLayout): + @cached_property + def current_settlement_run(self) -> SettlementRun | None: + try: + session = self.request.session + query = session.query(SettlementRun) + query = query.filter(SettlementRun.active == True) + return query.first() if query.count() == 1 else None + except Exception: # layout.pt checks for None + return None + @cached_property def pas_settings_url(self) -> str: return self.request.link(self.app.org, 'pas-settings') 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 cec41f8f54..3e949aa3f0 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 @@ -1,7 +1,7 @@ msgid "" msgstr "" "Project-Id-Version: OneGov Cloud 1.0\n" -"POT-Creation-Date: 2025-09-02 16:15+0200\n" +"POT-Creation-Date: 2025-09-04 12:14+0200\n" "PO-Revision-Date: 2021-03-03 16:24+0100\n" "Language-Team: German\n" "Language: de_CH\n" @@ -544,6 +544,12 @@ msgstr "Keine Import Logs gefunden" msgid "Skip navigation" msgstr "Navigation überspringen" +msgid "Settlement Run" +msgstr "Abrechnungslauf" + +msgid "(not active)" +msgstr "(Keiner aktiv)" + msgid "Search term" msgstr "Suchbegriff" diff --git a/src/onegov/pas/templates/layout.pt b/src/onegov/pas/templates/layout.pt index 55510da75c..fd5d559777 100644 --- a/src/onegov/pas/templates/layout.pt +++ b/src/onegov/pas/templates/layout.pt @@ -77,6 +77,14 @@
+