Source code for pas.layouts.import_log

from __future__ import annotations

from functools import cached_property
from onegov.core.elements import Link
from onegov.core.elements import Confirm
from onegov.pas import _
from onegov.pas.layouts.default import DefaultLayout
from onegov.core.elements import Intercooler


from typing import TYPE_CHECKING
if TYPE_CHECKING:
    from onegov.pas.collections import ImportLogCollection
    from onegov.pas.models import ImportLog


[docs] class ImportLogCollectionLayout(DefaultLayout): if TYPE_CHECKING:
[docs] model: ImportLogCollection
@cached_property
[docs] def title(self) -> str: return _('Import History')
@cached_property
[docs] def breadcrumbs(self) -> list[Link]: return [ Link(_('Homepage'), self.homepage_url), Link(self.title, self.request.link(self.model)) ]
@cached_property
[docs] def kub_token_configured(self) -> bool: return bool( getattr(self.request.app, 'kub_test_api_token', None) or getattr(self.request.app, 'kub_api_token', None) )
@cached_property @cached_property
[docs] def last_import_log(self) -> ImportLog | None: from sqlalchemy.orm import load_only return ( self.model.query() .options(load_only(self.model.model_class.created)) .order_by(self.model.model_class.created.desc()) .first() )
@property
[docs] def last_import_time(self) -> str | None: if log := self.last_import_log: return self.format_date(log.created, 'relative') return None
[docs] class ImportLogLayout(DefaultLayout): if TYPE_CHECKING:
[docs] model: ImportLog
@cached_property
[docs] def collection(self) -> ImportLogCollection: from onegov.pas.collections import ImportLogCollection return ImportLogCollection(self.request.session)
@cached_property
[docs] def title(self) -> str: return _('Import Log Details')
@cached_property
[docs] def breadcrumbs(self) -> list[Link]: return [ Link(_('Homepage'), self.homepage_url), Link( _('Import History'), self.request.link(self.collection) ), Link(self.title, self.request.link(self.model)) ]