pas.views.abschlussliste

Classes

BookingRowData

dict() -> new empty dictionary

Functions

get_party_lookup(→ dict[str, ...)

Bulk fetch party information for parliamentarians during a period.

get_abschlussliste_data(→ list[dict[str, Any]])

generate_abschlussliste_xlsx(→ io.BytesIO)

generate_buchungen_abrechnungslauf_xlsx(→ io.BytesIO)

Generate XLSX export for 'Buchungen Abrechnungslauf' with individual

Module Contents

class pas.views.abschlussliste.BookingRowData[source]

Bases: 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)

date: BookingRowData.date[source]
person: str[source]
party: str[source]
wahlkreis: str[source]
booking_type: str[source]
value: decimal.Decimal[source]
chf: decimal.Decimal[source]
chf_with_cola: decimal.Decimal[source]
pas.views.abschlussliste.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][source]

Bulk fetch party information for parliamentarians during a period. Returns a lookup dictionary to avoid N+1 queries.

pas.views.abschlussliste.get_abschlussliste_data(settlement_run: onegov.pas.models.settlement_run.SettlementRun, request: onegov.town6.request.TownRequest) list[dict[str, Any]][source]
pas.views.abschlussliste.generate_abschlussliste_xlsx(settlement_run: onegov.pas.models.settlement_run.SettlementRun, request: onegov.town6.request.TownRequest) io.BytesIO[source]
pas.views.abschlussliste.generate_buchungen_abrechnungslauf_xlsx(settlement_run: onegov.pas.models.settlement_run.SettlementRun, request: onegov.town6.request.TownRequest) io.BytesIO[source]

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.