Skip to content
Snippets Groups Projects

Add API documentation

Merged Konrad Mohrfeldt requested to merge feature/api-docs into master
1 file
+ 20
10
Compare changes
  • Side-by-side
  • Inline
+ 20
10
@@ -3,7 +3,6 @@ import datetime
from django_filters import rest_framework as filters
from django_filters import widgets
from django import forms
from django.contrib.auth.models import User
from django.db.models import Q, QuerySet
from django.utils import timezone
@@ -182,16 +181,10 @@ class TimeSlotFilterSet(filters.FilterSet):
queryset = self.filter_surrounding(queryset, "surrounding", timezone.now())
return queryset
class Meta:
model = models.TimeSlot
fields = [
"order",
"start",
"end",
"surrounding",
]
def get_form_class(self):
form_cls = super().get_form_class()
class form(forms.Form):
class TimeSlotFilterSetFormWithDefaults(form_cls):
def clean_start(self):
start = self.cleaned_data.get("start", None)
return start or timezone.now().date()
@@ -200,6 +193,23 @@ class TimeSlotFilterSet(filters.FilterSet):
end = self.cleaned_data.get("end", None)
return end or self.cleaned_data["start"] + datetime.timedelta(days=60)
# We only want defaults to apply in the context of the list action.
# When accessing individual timeslots we don’t want the queryset to be restricted
# to the default range of 60 days as get_object would yield a 404 otherwise.
if self.request.parser_context["view"].action == "list":
return TimeSlotFilterSetFormWithDefaults
else:
return form_cls
class Meta:
model = models.TimeSlot
fields = [
"order",
"start",
"end",
"surrounding",
]
class NoteFilterSet(StaticFilterHelpTextMixin, filters.FilterSet):
ids = ModelMultipleChoiceFilter(
Loading