Пример #1
0
 def get_births(self, year=None, month=None, day=None):
     if day:
         date = datetime.datetime(year, month, day)
         return self.births.filter(date=date).select_related()
     elif month:
         initial_date = datetime.datetime(year, month, 1)
         end_date = get_last_day_of_month(initial_date)
         return self.births.filter(date__gte=initial_date, date__lte=end_date).select_related()
     elif year:
         return self.births.filter(date__year=year).select_related()
     else:
         return self.births.all()
Пример #2
0
 def get_animals(self, year=None, month=None, day=None):
     if day:
         date = datetime.datetime(year, month, day)
         return self.animals.filter(
             Q(entry_date__lte=date), Q(exit_date__gte=date) | Q(exit_date__isnull=True)).select_related()
     elif month:
         initial = datetime.datetime(year, month, 1)
         end = get_last_day_of_month(initial)
         return self.animals.filter(
             Q(entry_date__lte=initial, exit_date__gte=end) | Q(entry_date__lte=initial, exit_date__isnull=True)
             | Q(entry_date__range=[initial, end]) | Q(exit_date__range=[initial, end])).select_related().distinct()
     elif year:
         initial = datetime.datetime(year, 1, 1)
         end = datetime.datetime(year, 12, 31)
         return self.animals.select_related().filter(
             Q(entry_date__lte=initial, exit_date__gte=end) | Q(entry_date__lte=initial, exit_date__isnull=True)
             | Q(entry_date__range=[initial, end]) | Q(exit_date__range=[initial, end])).select_related().distinct()
     else:
         date = datetime.datetime.now()
         return self.animals.select_related().filter(entry_date__lte=date, exit_date__isnull=True)