Skip to content
Snippets Groups Projects
Commit 2d2b0245 authored by Ernesto Rico Schmidt's avatar Ernesto Rico Schmidt
Browse files

Fix query to get timeslots in time rage, add type annotations

parent 61543621
No related branches found
No related tags found
No related merge requests found
......@@ -28,7 +28,7 @@ from versatileimagefield.fields import PPOIField, VersatileImageField
from django.contrib.auth.models import User
from django.core.exceptions import ObjectDoesNotExist
from django.db import models
from django.db.models import Q
from django.db.models import Q, QuerySet
from django.forms.models import model_to_dict
from django.utils import timezone
from django.utils.translation import gettext_lazy as _
......@@ -1062,11 +1062,17 @@ class TimeSlotManager(models.Manager):
)
@staticmethod
def get_timerange_timeslots(start: datetime, end: datetime):
"""get the timeslots in the timerange between start and end"""
def get_timerange_timeslots(start_timerange: datetime, end_timerange: datetime) -> QuerySet:
"""get the timeslots between start_timerange and end_timerange"""
return TimeSlot.objects.filter(
Q(start__lte=start, end__gte=start) | Q(start__gt=start, start__lt=end)
).exclude(end=start)
# start before start_timerange, end after start_timerange
Q(start__lt=start_timerange, end__gt=start_timerange)
# start after/at start_timerange, end before/at end_timerange
| Q(start__gte=start_timerange, end__lte=end_timerange)
# start before end_timerange, end after/at end_timerange
| Q(start__lt=end_timerange, end__gte=end_timerange)
)
@staticmethod
def get_colliding_timeslots(timeslot):
......
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