Skip to content
Snippets Groups Projects
Benjamin Hättasch's avatar
Benjamin Hättasch authored
Use One2One relationship instead of inheritance
This allows to add and also remove the virtual features of a room

Introduce new model
Create migrations to migrate from existing to new model + a squashed version knowing only about the new model for fresh installations
Adapt admin views
Add django-betterforms as dependency to simply create a form allowing to generate rooms with optionally a virtual component in a single view and create that form
Add view to create rooms in that view and use instead of default django creation form
Use the new name/structure in templates
Move RoomForm to forms.py to make imports easier
Update batch creation of rooms

This resolves #150 and also resolves #179 since now rooms and virtual rooms (rooms with virtual features) are created using the same view
f894e1a8
History

AK Planning

Description

AKPlanning is a tool used for modeling, submitting, scheduling and displaying AKs (German: Arbeitskreise), meaning workshops, talks or similar slot-based events.

It was built for KIF (German: Konferenz der deutschsprachigen Informatikfachschaften), refer to the wiki for more Information.

Structure

This repository contains a Django project called AKPlanning. The functionality is encapsulated into Django apps:

  1. AKModel: This app contains the general Django models used to represent events, users, rooms, scheduling constraints etc. This app is a basic requirements for the other apps. Data Import/Export also goes here.
  2. AKDashboard: This app provides a landing page for the project. Per Event it provides links to all relevant functionalities and views.
  3. AKSubmission: This app provides forms to submit all kinds of AKs, edit or delete them, as well as a list of all submitted AKs for an event.
  4. AKScheduling: This app allows organizers to schedule AKs, i.e. assigning rooms, slots, etc. It marks conflicts of all modeled constraints and assists in creating a suitable schedule.
  5. AKPlan: This app displays AKs and where/when they will take place for each event. Views are optimised according to usage/purpose.

Setup instructions

See INSTALL.md for detailed instructions on development and production setups.

To update the setup to the current version on the main branch of the repository use the update script Utils/update.sh or Utils/update.sh --prod in production.

Afterwards, you may check your setup by executing Utils/check.sh or Utils/check.sh --prod in production.

Developer Notes

  • to regenerate translations use python manage.py makemessages -l de_DE --ignore venv
  • to create a data backup use python manage.py dumpdata --indent=2 > db.json --traceback
  • to export all database items belonging to a certain event use ./Utils/json_export.sh <event_id> <export_prefix> [--prod]. The results will be saved in backups/<export_prefix>.json