Fundraising in PDF.
[wolnelektury.git] / src / funding / admin.py
index 5f552c4..7402c2a 100644 (file)
@@ -1,20 +1,21 @@
-# -*- 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.
+# This file is part of Wolne Lektury, licensed under GNU Affero GPLv3 or later.
+# Copyright © Fundacja Wolne Lektury. See NOTICE for more information.
 #
-from django.utils.translation import ugettext_lazy as _
 from django.contrib import admin
+from modeltranslation.admin import TranslationAdmin
+from fnpdjango.actions import export_as_csv_action
 from .models import Offer, Perk, Funding, Spent
 
 
-class OfferAdmin(admin.ModelAdmin):
+class OfferAdmin(TranslationAdmin):
     model = Offer
     list_display = ['title', 'author', 'target', 'sum', 'is_win', 'start', 'end']
     search_fields = ['title', 'author']
     readonly_fields = ('cover_img_tag',)
+    autocomplete_fields = ['book']
 
 
-class PerkAdmin(admin.ModelAdmin):
+class PerkAdmin(TranslationAdmin):
     model = Perk
     search_fields = ['name', 'long_name']
     list_display = ['name', 'long_name', 'price', 'end_date', 'offer']
@@ -22,30 +23,30 @@ class PerkAdmin(admin.ModelAdmin):
 
 
 class PayedFilter(admin.SimpleListFilter):
-    title = _('payment complete')
+    title = 'płatność doszła do skutku'
     parameter_name = 'payed'
 
     def lookups(self, request, model_admin):
         return (
-            ('yes', _('Yes')),
-            ('no', _('No')),
+            ('yes', 'Tak'),
+            ('no', 'Nie'),
         )
 
     def queryset(self, request, queryset):
         if self.value() == 'yes':
-            return queryset.exclude(payed_at=None)
+            return queryset.exclude(completed_at=None)
         elif self.value() == 'no':
-            return queryset.filter(payed_at=None)
+            return queryset.filter(completed_at=None)
 
 
 class PerksFilter(admin.SimpleListFilter):
-    title = _('perks')
+    title = 'prezenty'
     parameter_name = 'perks'
 
     def lookups(self, request, model_admin):
         return (
-            ('yes', _('Yes')),
-            ('no', _('No')),
+            ('yes', 'Tak'),
+            ('no', 'Nie'),
         )
 
     def queryset(self, request, queryset):
@@ -57,15 +58,22 @@ class PerksFilter(admin.SimpleListFilter):
 
 class FundingAdmin(admin.ModelAdmin):
     model = Funding
-    list_display = ['payed_at', 'offer', 'amount', 'name', 'email', 'perk_names']
+    list_display = ['created_at', 'completed_at', 'offer', 'amount', 'name', 'email', 'perk_names']
     search_fields = ['name', 'email', 'offer__title', 'offer__author']
     list_filter = [PayedFilter, 'offer', PerksFilter]
+    actions = [export_as_csv_action(
+        fields=[
+            'id', 'offer', 'name', 'email', 'amount', 'completed_at',
+            'notifications', 'notify_key', 'wl_optout_url'
+        ]
+    )]
 
 
 class SpentAdmin(admin.ModelAdmin):
     model = Spent
     list_display = ['book', 'amount', 'timestamp']
     search_fields = ['book__title']
+    autocomplete_fields = ['book']
 
 
 admin.site.register(Offer, OfferAdmin)