feriennet.views.booking

Attributes

DELETABLE_STATES

Classes

RelatedAttendeeRow

Functions

all_bookings(collection) → list[onegov.activity.Booking]

Loads all bookings together with the linked occasions, attendees and

group_bookings_merge_denied_and_blocked(period, bookings) → dict[onegov.activity.Attendee, dict[onegov.activity.models.booking.BookingState, sortedcontainers.SortedList[onegov.activity.Booking]]]

Takes a (small) list of bookings and groups them by attendee and state

total_by_bookings(period, bookings) → decimal.Decimal

related_attendees(session, occasion_ids) → dict[uuid.UUID, list[RelatedAttendeeRow]]

attendees_by_username(request, username) → list[onegov.activity.Attendee]

Loads the given attendees linked to the given username, sorted by

get_booking_title(layout, booking) → str

actions_by_booking(layout, period, booking) → list[onegov.core.elements.Link]

show_error_on_attendee(request, attendee, message) → None

view_my_bookings(self, request) → onegov.core.types.RenderData

delete_booking(self, request) → None

cancel_booking(self, request) → None

toggle_star(self, request) → str

toggle_nobble(self, request) → str

render_css(content, request) → morepath.Response

view_mask(self, request) → str

create_invite(self, request) → webob.Response

Creates a group_code on the booking, if one doesn't exist already

view_group_invite(self, request) → onegov.core.types.RenderData

join_group(self, request) → None

leave_group(self, request) → None

Module Contents

class feriennet.views.booking.RelatedAttendeeRow[source]

Bases: NamedTuple

occasion_id: uuid.UUID[source]
attendee_count: int[source]
parent: str[source]
parent_username: str[source]
children: int[source]
phone: str | None[source]
place: str | None[source]
email: str[source]
booking_state: onegov.activity.models.booking.BookingState[source]
feriennet.views.booking.DELETABLE_STATES = ('open', 'cancelled', 'denied', 'blocked')[source]
feriennet.views.booking.all_bookings(collection: onegov.activity.BookingCollection) → list[onegov.activity.Booking][source]

Loads all bookings together with the linked occasions, attendees and activities. This is somewhat of a heavy query, but it beats having to load all these things separately.

feriennet.views.booking.group_bookings_merge_denied_and_blocked(period: onegov.activity.models.BookingPeriod | onegov.activity.models.BookingPeriodMeta, bookings: collections.abc.Iterable[onegov.activity.Booking]) → dict[onegov.activity.Attendee, dict[onegov.activity.models.booking.BookingState, sortedcontainers.SortedList[onegov.activity.Booking]]][source]

Takes a (small) list of bookings and groups them by attendee and state and sorting them by date.

feriennet.views.booking.total_by_bookings(period: onegov.activity.models.BookingPeriod | onegov.activity.models.BookingPeriodMeta | None, bookings: collections.abc.Collection[onegov.activity.Booking]) → decimal.Decimal[source]
feriennet.views.booking.related_attendees(session: sqlalchemy.orm.Session, occasion_ids: collections.abc.Collection[uuid.UUID]) → dict[uuid.UUID, list[RelatedAttendeeRow]][source]
feriennet.views.booking.attendees_by_username(request: onegov.feriennet.request.FeriennetRequest, username: str) → list[onegov.activity.Attendee][source]

Loads the given attendees linked to the given username, sorted by their name.

feriennet.views.booking.get_booking_title(layout: onegov.feriennet.layout.DefaultLayout, booking: onegov.activity.Booking) → str[source]
feriennet.views.booking.actions_by_booking(layout: onegov.feriennet.layout.DefaultLayout, period: onegov.activity.models.BookingPeriod | onegov.activity.models.BookingPeriodMeta | None, booking: onegov.activity.Booking) → list[onegov.core.elements.Link][source]
feriennet.views.booking.show_error_on_attendee(request: onegov.feriennet.request.FeriennetRequest, attendee: onegov.activity.Attendee, message: str) → None[source]
feriennet.views.booking.view_my_bookings(self: onegov.activity.BookingCollection, request: onegov.feriennet.request.FeriennetRequest) → onegov.core.types.RenderData[source]
feriennet.views.booking.delete_booking(self: onegov.activity.Booking, request: onegov.feriennet.request.FeriennetRequest) → None[source]
feriennet.views.booking.cancel_booking(self: onegov.activity.Booking, request: onegov.feriennet.request.FeriennetRequest) → None[source]
feriennet.views.booking.toggle_star(self: onegov.activity.Booking, request: onegov.feriennet.request.FeriennetRequest) → str[source]
feriennet.views.booking.toggle_nobble(self: onegov.activity.Booking, request: onegov.feriennet.request.FeriennetRequest) → str[source]
feriennet.views.booking.render_css(content: str, request: onegov.feriennet.request.FeriennetRequest) → morepath.Response[source]
feriennet.views.booking.view_mask(self: onegov.activity.BookingCollection, request: onegov.feriennet.request.FeriennetRequest) → str[source]
feriennet.views.booking.create_invite(self: onegov.activity.Booking, request: onegov.feriennet.request.FeriennetRequest) → webob.Response[source]

Creates a group_code on the booking, if one doesn’t exist already and redirects to the GroupInvite view.

feriennet.views.booking.view_group_invite(self: onegov.feriennet.models.GroupInvite, request: onegov.feriennet.request.FeriennetRequest) → onegov.core.types.RenderData[source]
feriennet.views.booking.join_group(self: onegov.feriennet.models.GroupInvite, request: onegov.feriennet.request.FeriennetRequest) → None[source]
feriennet.views.booking.leave_group(self: onegov.feriennet.models.GroupInvite, request: onegov.feriennet.request.FeriennetRequest) → None[source]