Skip to content
Snippets Groups Projects
Commit 124169d5 authored by Nadja Geisler's avatar Nadja Geisler :sunny:
Browse files

Merge branch 'features-availabilities' into 'main'

Default availability for new AKs

Closes #129

See merge request !124
parents e1cebf37 a2cb5722
No related branches found
No related tags found
No related merge requests found
...@@ -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