diff --git a/biscuit/apps/chronos/models.py b/biscuit/apps/chronos/models.py index f68610159806d6d5e4eec0476cbf430f96460fcb..7654c18df8498ed892a1b35e61747e3d10819ad7 100644 --- a/biscuit/apps/chronos/models.py +++ b/biscuit/apps/chronos/models.py @@ -50,6 +50,15 @@ class LessonPeriodQuerySet(models.QuerySet): select={'_week': week.week} ) + def at_time(self, when: Optional[datetime] = None): + now = when or datetime.now() + + return self.filter(lesson__date_start__lte=now.date(), + lesson__date_end__gte=now.date(), + period__weekday=now.isoweekday(), + period__time_start__lte=now.time(), + period__time_end__gte=now.time()) + def filter_group(self, group: Union[Group, int]): return self.filter( Q(lesson__groups=group) | Q(lesson__groups__parent_groups=group)) diff --git a/biscuit/apps/chronos/util.py b/biscuit/apps/chronos/util.py index da22485d01a112c34f3dbcdabc78b7574e28989e..f79bdf2748af3955bf0f1730012a2a1b08d547ed 100644 --- a/biscuit/apps/chronos/util.py +++ b/biscuit/apps/chronos/util.py @@ -91,17 +91,6 @@ class CalendarWeek: return self.__class__.from_date(self[0] - timedelta(days=weeks * 7)) -def current_lesson_periods(when: Optional[datetime] = None) -> models.query.QuerySet: - now = when or datetime.now() - - LessonPeriod = apps.get_model('chronos.LessonPeriod') - return LessonPeriod.objects.filter(lesson__date_start__lte=now.date(), - lesson__date_end__gte=now.date(), - period__weekday=now.isoweekday(), - period__time_start__lte=now.time(), - period__time_end__gte=now.time()) - - def week_weekday_from_date(when: date) -> Tuple[CalendarWeek, int]: return (CalendarWeek.from_date(when), when.isoweekday())