fsi.models.course_event

Attributes

EventStatusType

COURSE_EVENT_STATUSES

COURSE_EVENT_STATUSES_TRANSLATIONS

Classes

CourseEvent

Mixin providing created/modified timestamps for all records.

Functions

course_status_choices(…)

Module Contents

type fsi.models.course_event.EventStatusType = Literal['created', 'confirmed', 'canceled', 'planned'][source]
fsi.models.course_event.COURSE_EVENT_STATUSES: tuple[EventStatusType, Ellipsis] = ('created', 'confirmed', 'canceled', 'planned')[source]
fsi.models.course_event.COURSE_EVENT_STATUSES_TRANSLATIONS[source]
fsi.models.course_event.course_status_choices(request: onegov.fsi.request.FsiRequest | None = None, as_dict: Literal[False] = False) list[wtforms.fields.choices._Choice][source]
fsi.models.course_event.course_status_choices(request: onegov.fsi.request.FsiRequest | None, as_dict: Literal[True]) list[dict[str, str]]
fsi.models.course_event.course_status_choices(request: onegov.fsi.request.FsiRequest | None = None, *, as_dict: Literal[True]) list[dict[str, str]]
class fsi.models.course_event.CourseEvent[source]

Bases: onegov.core.orm.Base, onegov.core.orm.mixins.TimestampMixin, onegov.search.ORMSearchable

Mixin providing created/modified timestamps for all records.

The columns are deferred loaded as this is primarily for logging and future forensics.

default_reminder_before[source]
__tablename__ = 'fsi_course_events'[source]
es_properties[source]
id: sqlalchemy.Column[uuid.UUID][source]
course_id: sqlalchemy.Column[uuid.UUID][source]
course: sqlalchemy.orm.relationship[fsi.models.course.Course][source]
property es_public: bool[source]

Returns True if the model is available to be found by the public. If false, only editors/admins will see this object in the search results.

property title: str[source]
property name: str[source]
property lead: str[source]
property description: markupsafe.Markup[source]
__str__() str[source]
property localized_start: datetime.datetime[source]
property localized_end: datetime.datetime[source]
location: sqlalchemy.Column[str][source]
start: sqlalchemy.Column[datetime.datetime][source]
end: sqlalchemy.Column[datetime.datetime][source]
presenter_name: sqlalchemy.Column[str][source]
presenter_company: sqlalchemy.Column[str][source]
presenter_email: sqlalchemy.Column[str | None][source]
min_attendees: sqlalchemy.Column[int][source]
max_attendees: sqlalchemy.Column[int | None][source]
status: sqlalchemy.Column[EventStatusType][source]
attendees: sqlalchemy.orm.relationship[onegov.core.types.AppenderQuery[onegov.fsi.models.course_attendee.CourseAttendee]][source]
subscriptions: sqlalchemy.orm.relationship[onegov.core.types.AppenderQuery[onegov.fsi.models.course_subscription.CourseSubscription]][source]
notification_templates: sqlalchemy.orm.relationship[list[fsi.models.course_notification_template.CourseNotificationTemplate]][source]
info_template: sqlalchemy.orm.relationship[fsi.models.course_notification_template.InfoTemplate][source]
reservation_template: sqlalchemy.orm.relationship[fsi.models.course_notification_template.SubscriptionTemplate][source]
cancellation_template: sqlalchemy.orm.relationship[fsi.models.course_notification_template.CancellationTemplate][source]
reminder_template: sqlalchemy.orm.relationship[fsi.models.course_notification_template.ReminderTemplate][source]
hidden_from_public: sqlalchemy.Column[bool][source]
locked_for_subscriptions: sqlalchemy.Column[bool | None][source]
schedule_reminder_before: sqlalchemy.Column[datetime.timedelta][source]
property description_html: markupsafe.Markup[source]

Returns the portrait that is saved as HTML from the redactor js plugin.

scheduled_reminder() datetime.datetime[source]
next_event_start() datetime.datetime[source]
property duration: datetime.timedelta[source]
property hidden: bool[source]
property cached_reservation_count: int[source]
property available_seats: int | None[source]
property booked: bool[source]
property bookable: bool[source]
property is_past: bool[source]
property locked: bool[source]
property duplicate_dict: dict[str, Any][source]
property duplicate: Self[source]
has_reservation(attendee_id: uuid.UUID) bool[source]
excluded_subscribers(year: int | None = None, as_uids: Literal[True] = True, exclude_inactive: bool = True) sqlalchemy.orm.Query[tuple[uuid.UUID]][source]
excluded_subscribers(year: int | None, as_uids: Literal[False], exclude_inactive: bool = True) sqlalchemy.orm.Query[onegov.fsi.models.course_attendee.CourseAttendee]
excluded_subscribers(year: int | None = None, *, as_uids: Literal[False], exclude_inactive: bool = True) sqlalchemy.orm.Query[onegov.fsi.models.course_attendee.CourseAttendee]
excluded_subscribers(year: int | None, as_uids: bool, exclude_inactive: bool = True) sqlalchemy.orm.Query[tuple[uuid.UUID]] | sqlalchemy.orm.Query[onegov.fsi.models.course_attendee.CourseAttendee]

Returns a list of attendees / names tuple of UIDS of attendees that have booked one of the events of a course in the given year.

possible_subscribers(external_only: bool = False, year: int | None = None, as_uids: Literal[False] = False, exclude_inactive: bool = True, auth_attendee: onegov.fsi.models.course_attendee.CourseAttendee | None = None) sqlalchemy.orm.Query[onegov.fsi.models.course_attendee.CourseAttendee][source]
possible_subscribers(external_only: bool, year: int | None, as_uids: Literal[True], exclude_inactive: bool = True, auth_attendee: onegov.fsi.models.course_attendee.CourseAttendee | None = None) sqlalchemy.orm.Query[tuple[uuid.UUID]]
possible_subscribers(external_only: bool = False, year: int | None = None, *, as_uids: Literal[True], exclude_inactive: bool = True, auth_attendee: onegov.fsi.models.course_attendee.CourseAttendee | None = None) sqlalchemy.orm.Query[tuple[uuid.UUID]]

Returns the list of possible bookers. Attendees that already have a subscription for the parent course in the same year are excluded.

property email_recipients: collections.abc.Iterator[str][source]
as_ical(event_url: str | None = None) bytes[source]
as_ical_attachment(url: str | None = None) onegov.core.mail.Attachment[source]
can_book(attendee_or_id: onegov.fsi.models.course_attendee.CourseAttendee | uuid.UUID | str, year: int | None = None) bool[source]
exceeds_six_year_limit(attendee_id: str | onegov.core.orm.types.UUID, request: onegov.fsi.request.FsiRequest) bool[source]