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
1 merge request!124Default availability for new AKs
Pipeline #95955 passed
......@@ -235,6 +235,15 @@ class Availability(models.Model):
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")}'
@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:
verbose_name = _('Availability')
verbose_name_plural = _('Availabilities')
......
......@@ -6,6 +6,7 @@ from django.core.exceptions import ValidationError
from django.utils.translation import ugettext_lazy as _
from AKModel.availability.forms import AvailabilitiesFormMixin
from AKModel.availability.models import Availability
from AKModel.models import AK, AKOwner, AKCategory, AKRequirement, AKSlot, AKOrgaMessage, Event
......@@ -133,6 +134,13 @@ class AKSubmissionForm(AKForm):
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):
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment