diff --git a/jdav_web/material/admin.py b/jdav_web/material/admin.py index 782b960..986ab8d 100644 --- a/jdav_web/material/admin.py +++ b/jdav_web/material/admin.py @@ -1,4 +1,6 @@ from django.contrib import admin +from django.utils. translation import ugettext_lazy as translate +from django.contrib.admin import SimpleListFilter from .models import MaterialPart, Ownership @@ -13,10 +15,30 @@ class OwnershipInline(admin.StackedInline): extra = 0 +class NotTooOldFilter(SimpleListFilter): + title = translate('Age') + parameter_name = 'age' + + def lookups(self, request, model_admin): + return ( + ('too_old', translate('Not Too Old')), + ('not_too_old', translate('Too old')), + ) + + def queryset(self, request, queryset): + if self.value() == 'too_old': + return queryset.filter(pk__in=[x.pk for x in queryset.all() if x.not_too_old()]) + if self.value() == 'not_too_old': + return queryset.filter(pk__in=[x.pk for x in queryset.all() if not x.not_too_old()]) + + + class MaterialAdmin(admin.ModelAdmin): """Edit view of a MaterialPart""" list_display = ('name', 'buy_date', 'lifetime', 'not_too_old', 'photo') inlines = [OwnershipInline] + list_filter = (NotTooOldFilter,) + -admin.site.register(MaterialPart, MaterialAdmin) +admin.site.register(MaterialPart, MaterialAdmin) \ No newline at end of file