Source code for chrysalio.views.home

"""Home view callables."""

from __future__ import annotations

from pyramid.request import Request
from pyramid.httpexceptions import HTTPFound

from ..lib.i18n import _
from ..lib.form import button
from ..lib.panel import Panel


# =============================================================================
[docs] def home_view(request: Request, title: str | None = None) -> dict: """Home view. :type request: pyramid.request.Request :param request: Current request. :param str title: (optional) Alternative title of the home page. """ # Previous route route_id = request.params.get('route') if route_id: return HTTPFound(request.route_path(route_id, **request.params)) # Custom home if 'home' in request.session and request.session['home'] != 'home' \ and request.session['home'] in request.registry['homes']: return HTTPFound( request.route_path(request.session['home'], **request.params)) # Panel Panel.manage_panels(request) # Breadcrumbs & documentation request.breadcrumbs(title or _('Home'), 1) request.documentation = '/home' return {'button': button}