aircox-radiocampus/aircox_web/plugins/timetable.py
2019-07-01 05:03:43 +02:00

38 lines
1.3 KiB
Python

import datetime
from django.db import models
from django.templatetags.static import static
from django.utils.translation import ugettext_lazy as _
from aircox import models as aircox
from aircox_web.fields import PositiveSmallMinMaxField
class Timetable(models.Model):
station = models.ForeignKey(
aircox.Station, models.CASCADE, verbose_name=_('station'),
)
days_before = models.PositiveSmallMinMaxField(
_('days before'), min=0, max=6,
help_text=_('Count of days displayed current date'),
)
days_after = models.PositiveSmallMinMaxField(
_('days after'), min=0, max=6,
help_text=_('Count of days displayed current date'),
)
def get_queryset(self, date=None):
date = date if date is not None else datetime.date.today()
qs = aircox.Diffusion.objects.station(self.station)
if self.days_before is None and self.days_after is None:
return qs.at(date)
start = date - datetime.timedelta(days=self.days_before) \
if self.days_before else date
stop = date + datetime.timedelta(days=self.days_after) \
if self.days_after else date
return aircox.Diffusion.objects.station(self.station) \
.after(start).before(stop)