Volunteering system
The volunteering system allows us to manage volunteers at EMF. You can find more detail on these models are used in the volunteering app docs.
Volunteer
Roles
- class models.volunteer.role.Role(**kwargs)[source]
A role which a volunteer can perform.
- slug: Mapped[str][source]
A short, stable, urlsafe, identifier used for de-duplication during data seeding.
- name: Mapped[str][source]
The name used to present a role. Should be kept short as it gets used in lists.
- full_description_md: Mapped[str | None][source]
A longer description of the role, supports Markdown.
Shifts
- class models.volunteer.shift.Shift(**kwargs)[source]
An available shift for one or more volunteers to perform.
- venue: Mapped[VolunteerVenue][source]
Venue where the shift occurs
- occurrence: Mapped[Occurrence][source]
Optional Occurrence (talk/workshop) related to this shift
- entries: Mapped[list[ShiftEntry]][source]
Entries (volunteers) for this shift
- is_clash(other)[source]
Calculate whether this shift clashes with another.
We use this to determine if we should allow a volunteer to sign up for both shifts, which is only permitted if the other shift is filling the same role in the same venue. In all other cases a volunteer can’t sign up for two shifts at the same time.
This is needed because contiguous shifts often have a slight overlap.