Merge branch 'master' into rwd
[wolnelektury.git] / apps / funding / admin.py
index 44e94ad..d70aef6 100644 (file)
@@ -1,23 +1,62 @@
+# -*- coding: utf-8 -*-
+# This file is part of Wolnelektury, licensed under GNU Affero GPLv3 or later.
+# Copyright © Fundacja Nowoczesna Polska. See NOTICE for more information.
+#
+from django.utils.translation import ugettext_lazy as _
 from django.contrib import admin
 from .models import Offer, Perk, Funding, Spent
 
 
 class OfferAdmin(admin.ModelAdmin):
     model = Offer
-    list_display = ['title', 'author', 'target', 'sum', 'is_win', 'start', 'end', 'due']
+    list_display = ['title', 'author', 'target', 'sum', 'is_win', 'start', 'end']
     search_fields = ['title', 'author']
     readonly_fields = ('cover_img_tag',)
 
 
 class PerkAdmin(admin.ModelAdmin):
     model = Perk
-    list_display = ['name', 'price', 'end_date', 'offer']
+    search_fields = ['name', 'long_name']
+    list_display = ['name', 'long_name', 'price', 'end_date', 'offer']
+    list_filter = ['offer']
+
+
+
+class PayedFilter(admin.SimpleListFilter):
+    title = _('payment complete')
+    parameter_name = 'payed'
+    def lookups(self, request, model_admin):
+        return (
+            ('yes', _('Yes')),
+            ('no', _('No')),
+        )
+    def queryset(self, request, queryset):
+        if self.value() == 'yes':
+            return queryset.exclude(payed_at=None)
+        elif self.value() == 'no':
+            return queryset.filter(payed_at=None)
+
+class PerksFilter(admin.SimpleListFilter):
+    title = _('perks')
+    parameter_name = 'perks'
+    def lookups(self, request, model_admin):
+        return (
+            ('yes', _('Yes')),
+            ('no', _('No')),
+        )
+    def queryset(self, request, queryset):
+        if self.value() == 'yes':
+            return queryset.exclude(perks=None)
+        elif self.value() == 'no':
+            return queryset.filter(perks=None)
 
 
 class FundingAdmin(admin.ModelAdmin):
     model = Funding
-    list_display = ['payed_at', 'offer', 'amount', 'name', 'email']
+    list_display = ['payed_at', 'offer', 'amount', 'name', 'email', 'perk_names']
     search_fields = ['name', 'email', 'offer__title', 'offer__author']
+    list_filter = [PayedFilter, 'offer', PerksFilter]
+
 
 
 class SpentAdmin(admin.ModelAdmin):