Prepare tool for preference polling
This MR prepares the tool to include preference polling, i.e. the JSON export works as expected if all preferences are entered by hand in the admin panel. The preference polling frontend is covered by a different MR.
For that matter, two new models are added:
-
AKModel::EventParticipant: modelling a participant of the event that has entered their preferences. We store their name and institution (both optional) -
AKModel::AKPreference: the preference that a participant has to visit a particular AKSlot
Both models are used to populate the participants list of a JSON export.
Further changes:
- At JSON export, we create a 'dummy' participant representing each AKOwner. This dummy has no constraints and only the owner's AKs as required preferences. This change ensures, that even if an owner does not participate in the preference polling their AKs are not scheduled overlappingly.
- We add
participantas another ForeignKey to the Availability object
Edited by Felix Blanke