pas.views.abschlussliste ======================== .. py:module:: pas.views.abschlussliste Classes ------- .. autoapisummary:: pas.views.abschlussliste.BookingRowData Functions --------- .. autoapisummary:: pas.views.abschlussliste.get_party_lookup pas.views.abschlussliste.get_abschlussliste_data pas.views.abschlussliste.generate_abschlussliste_xlsx pas.views.abschlussliste.generate_buchungen_abrechnungslauf_xlsx Module Contents --------------- .. py:class:: BookingRowData Bases: :py:obj:`TypedDict` dict() -> new empty dictionary dict(mapping) -> new dictionary initialized from a mapping object's (key, value) pairs dict(iterable) -> new dictionary initialized as if via: d = {} for k, v in iterable: d[k] = v dict(**kwargs) -> new dictionary initialized with the name=value pairs in the keyword argument list. For example: dict(one=1, two=2) .. py:attribute:: date :type: BookingRowData.date .. py:attribute:: person :type: str .. py:attribute:: party :type: str .. py:attribute:: wahlkreis :type: str .. py:attribute:: booking_type :type: str .. py:attribute:: value :type: decimal.Decimal .. py:attribute:: chf :type: decimal.Decimal .. py:attribute:: chf_with_cola :type: decimal.Decimal .. py:function:: get_party_lookup(session: sqlalchemy.orm.Session, parliamentarian_ids: set[str], start_date: datetime.date, end_date: datetime.date) -> dict[str, onegov.pas.models.party.Party | None] Bulk fetch party information for parliamentarians during a period. Returns a lookup dictionary to avoid N+1 queries. .. py:function:: get_abschlussliste_data(settlement_run: onegov.pas.models.settlement_run.SettlementRun, request: onegov.town6.request.TownRequest) -> list[dict[str, Any]] .. py:function:: generate_abschlussliste_xlsx(settlement_run: onegov.pas.models.settlement_run.SettlementRun, request: onegov.town6.request.TownRequest) -> io.BytesIO .. py:function:: generate_buchungen_abrechnungslauf_xlsx(settlement_run: onegov.pas.models.settlement_run.SettlementRun, request: onegov.town6.request.TownRequest) -> io.BytesIO Generate XLSX export for 'Buchungen Abrechnungslauf' with individual booking entries. Creates an Excel file with columns: - Datum: Date of attendance - Person: Full name of parliamentarian - Partei: Party name - Wahlkreis: Electoral district (TODO: determine data source) - BuchungsTyp: Type of attendance/booking - Wert: Duration/value in hours - CHF: Base rate in CHF - CHF + TZ: Rate with cost-of-living adjustment in CHF Data is sorted by date then person name.