from functools import cached_property
from onegov.core.elements import Link
from onegov.wtfs import _
from onegov.wtfs.layouts.default import DefaultLayout
from typing import TYPE_CHECKING
if TYPE_CHECKING:
from onegov.core.elements import Element
[docs]
class ReportLayout(DefaultLayout):
@cached_property
[docs]
def title(self) -> str:
return _('Report')
@cached_property
[docs]
def breadcrumbs(self) -> list['Element']:
return [
Link(_('Homepage'), self.homepage_url),
Link(self.title, self.request.link(self.model))
]
@cached_property
[docs]
def dates(self) -> str:
return '{}-{}'.format(
self.format_date(self.model.start, 'date'),
self.format_date(self.model.end, 'date')
)
[docs]
class SpecificReportBaseLayout(DefaultLayout):
@cached_property
[docs]
def subtitle(self) -> str:
return '{}-{}'.format(
self.format_date(self.model.start, 'date'),
self.format_date(self.model.end, 'date')
)
@cached_property
[docs]
def editbar_links(self) -> list['Element']:
return [
Link(
text=_('Print'),
url='#',
attrs={
'class': 'print-icon',
}
)
]
@cached_property
[docs]
def breadcrumbs(self) -> list['Element']:
return [
Link(_('Homepage'), self.homepage_url),
Link(_('Report'), self.report_url),
Link(self.title, '#'),
Link(self.subtitle, self.request.link(self.model)),
]
[docs]
class ReportBoxesLayout(SpecificReportBaseLayout):
@cached_property
[docs]
def title(self) -> str:
return _('Report boxes')