medicine-mts/appa/admin_filters.py

38 lines
1.0 KiB
Python

import datetime
from django.conf import settings
from django.contrib import admin
from django.utils import timezone
from django.utils.dateformat import format as django_dateformat
from dateutil import rrule
__all__ = [
'DateListFilter'
]
class DateListFilter(admin.SimpleListFilter):
title = 'Дата'
parameter_name = 'date'
def lookups(self, request, model_admin):
today = datetime.datetime.today()
date_start = today - datetime.timedelta(days=3)
date_end = today + datetime.timedelta(days=2)
lookups = []
for date in rrule.rrule(rrule.DAILY, dtstart=date_start, until=date_end):
postfix = ''
if date.date() == today.date():
postfix = ' (сегодня)'
lookups.append([
date.strftime('%Y-%m-%d'), f"{django_dateformat(date, 'D d E')}{postfix}"
])
return lookups
def queryset(self, request, queryset):
if self.value():
return queryset.filter(date=self.value())