Skip to content
Snippets Groups Projects
Commit a2cb5722 authored by Benjamin Hättasch's avatar Benjamin Hättasch
Browse files

Automatically create availability when user doesn't specify them during submission

This implements #129
parent e1cebf37
Branches
No related tags found
1 merge request!124Default availability for new AKs
Pipeline #95953 passed
...@@ -235,6 +235,15 @@ class Availability(models.Model): ...@@ -235,6 +235,15 @@ class Availability(models.Model):
def simplified(self): def simplified(self):
return f'{self.start.astimezone(self.event.timezone).strftime("%a %H:%M")}-{self.end.astimezone(self.event.timezone).strftime("%a %H:%M")}' return f'{self.start.astimezone(self.event.timezone).strftime("%a %H:%M")}-{self.end.astimezone(self.event.timezone).strftime("%a %H:%M")}'
@classmethod
def with_event_length(cls, event, person=None, room=None, ak=None, ak_category=None):
timeframe_start = event.start # adapt to our event model
# add 1 day, not 24 hours, https://stackoverflow.com/a/25427822/2486196
timeframe_end = event.end # adapt to our event model
timeframe_end = timeframe_end + datetime.timedelta(days=1)
return Availability(start=timeframe_start, end=timeframe_end, event=event, person=person,
room=room, ak=ak, ak_category=ak_category)
class Meta: class Meta:
verbose_name = _('Availability') verbose_name = _('Availability')
verbose_name_plural = _('Availabilities') verbose_name_plural = _('Availabilities')
......
...@@ -6,6 +6,7 @@ from django.core.exceptions import ValidationError ...@@ -6,6 +6,7 @@ from django.core.exceptions import ValidationError
from django.utils.translation import ugettext_lazy as _ from django.utils.translation import ugettext_lazy as _
from AKModel.availability.forms import AvailabilitiesFormMixin from AKModel.availability.forms import AvailabilitiesFormMixin
from AKModel.availability.models import Availability
from AKModel.models import AK, AKOwner, AKCategory, AKRequirement, AKSlot, AKOrgaMessage, Event from AKModel.models import AK, AKOwner, AKCategory, AKRequirement, AKSlot, AKOrgaMessage, Event
...@@ -133,6 +134,13 @@ class AKSubmissionForm(AKForm): ...@@ -133,6 +134,13 @@ class AKSubmissionForm(AKForm):
self.initial.get('event').default_slot self.initial.get('event').default_slot
) )
def clean_availabilities(self):
availabilities = super().clean_availabilities()
# If the user did not specify availabilities assume the full event duration is possible
if len(availabilities) == 0:
availabilities.append(Availability.with_event_length(event=self.cleaned_data["event"]))
return availabilities
class AKEditForm(AKForm): class AKEditForm(AKForm):
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment