translator_directory.collections.time_report

Classes

TimeReportCollection

Abstract base class for generic types.

Module Contents

class translator_directory.collections.time_report.TimeReportCollection(app: onegov.translator_directory.app.TranslatorDirectoryApp, page: int = 0, archive: bool = False)[source]

Bases: onegov.core.collection.GenericCollection[onegov.translator_directory.models.time_report.TranslatorTimeReport], onegov.core.collection.Pagination[onegov.translator_directory.models.time_report.TranslatorTimeReport]

Abstract base class for generic types.

A generic type is typically declared by inheriting from this class parameterized with one or more type variables. For example, a generic mapping type might be defined as:

class Mapping(Generic[KT, VT]):
    def __getitem__(self, key: KT) -> VT:
        ...
    # Etc.

This class can then be used as follows:

def lookup_name(mapping: Mapping[KT, VT], key: KT, default: VT) -> VT:
    try:
        return mapping[key]
    except KeyError:
        return default
batch_size = 20[source]
app[source]
page = 0[source]
archive = False[source]
__eq__(other: object) bool[source]

Returns True if the current and the other Pagination instance are equal. Used to find the current page in a list of pages.

query() sqlalchemy.orm.Query[onegov.translator_directory.models.time_report.TranslatorTimeReport][source]
property page_index: int[source]

Returns the current page index (starting at 0).

subset() sqlalchemy.orm.Query[onegov.translator_directory.models.time_report.TranslatorTimeReport][source]

Returns an SQLAlchemy query containing all records that should be considered for pagination.

page_by_index(index: int) Self[source]

Returns the page at the given index. A page here means an instance of the class inheriting from the Pagination base class.

property batch: tuple[onegov.translator_directory.models.time_report.TranslatorTimeReport, Ellipsis][source]

Returns the elements on the current page.

_get_user_finanzstelles(request: onegov.translator_directory.request.TranslatorAppRequest) list[str][source]

Get finanzstelles where user is listed as accountant.

Returns finanzstelles regardless of admin status - if an admin is in a user group with finanzstelle, that should be honored.

_apply_finanzstelle_filter(query: sqlalchemy.orm.Query[onegov.translator_directory.models.time_report.TranslatorTimeReport], request: onegov.translator_directory.request.TranslatorAppRequest) sqlalchemy.orm.Query[onegov.translator_directory.models.time_report.TranslatorTimeReport][source]

Apply finanzstelle filter based on user’s group membership.

If user is in finanzstelle groups: filter by those finanzstelles. If user is not in any groups but is admin: show all (no filter).

for_accounting_export(request: onegov.translator_directory.request.TranslatorAppRequest | None = None) sqlalchemy.orm.Query[onegov.translator_directory.models.time_report.TranslatorTimeReport][source]

Query confirmed but not yet exported time reports.

Filters by user’s finanzstelle groups if they are in any. If user is in finanzstelle groups (admin or not): filter applied. If user is admin but not in any groups: show all.