Source code for town6.views.payment

from __future__ import annotations

from onegov.core.security import Private
from onegov.form import merge_forms
from onegov.org.views.payment import (
    export_payments, handle_batch_set_payment_state,
    view_invoices, view_payments)
from onegov.org.forms import (
    DateRangeForm, ExportForm, PaymentSearchForm, TicketInvoiceSearchForm)
from onegov.pay import PaymentCollection
from onegov.ticket import TicketInvoiceCollection
from onegov.town6 import TownApp
from onegov.town6.layout import (
    PaymentCollectionLayout, TicketInvoiceCollectionLayout)


from typing import TYPE_CHECKING
if TYPE_CHECKING:
    from webob import Response
    from onegov.core.types import RenderData
    from onegov.org.views.payment import PaymentExportForm
    from onegov.server.types import JSON_ro
    from onegov.town6.request import TownRequest


@TownApp.form(
    model=PaymentCollection,
    template='payments.pt',
    form=PaymentSearchForm,
    permission=Private
)
[docs] def town_view_payments( self: PaymentCollection, request: TownRequest, form: PaymentSearchForm ) -> RenderData | Response: layout = PaymentCollectionLayout(self, request) return view_payments(self, request, form, layout)
@TownApp.form( model=TicketInvoiceCollection, template='invoices.pt', form=TicketInvoiceSearchForm, permission=Private )
[docs] def town_view_invoices( self: TicketInvoiceCollection, request: TownRequest, form: TicketInvoiceSearchForm ) -> RenderData | Response: layout = TicketInvoiceCollectionLayout(self, request) return view_invoices(self, request, form, layout)
@TownApp.json( model=PaymentCollection, name='batch-set-payment-state', request_method='POST', permission=Private )
[docs] def town_handle_batch_set_payment_state( self: PaymentCollection, request: TownRequest ) -> JSON_ro: return handle_batch_set_payment_state(self, request)
@TownApp.form( model=PaymentCollection, name='export', template='form.pt', permission=Private, form=merge_forms(DateRangeForm, ExportForm) )
[docs] def town_export_payments( self: PaymentCollection, request: TownRequest, form: PaymentExportForm ) -> RenderData | Response: return export_payments( self, request, form, PaymentCollectionLayout(self, request))