move progress to campaigns
[wolnelektury.git] / src / annoy / admin.py
index 24e977e..74a4dbc 100644 (file)
@@ -1,11 +1,38 @@
+from django.db.models import Q
 from django.contrib import admin
 from django import forms
 from django.contrib import admin
 from django import forms
+from django.utils.timezone import now
+from admin_ordering.admin import OrderableAdmin
 from modeltranslation.admin import TranslationAdmin
 from modeltranslation.admin import TranslationAdmin
+from wolnelektury.utils import YesNoFilter
 from . import models
 
 
 from . import models
 
 
+
+admin.site.register(models.Campaign)
+
+
+class IsCurrentFilter(YesNoFilter):
+    title = 'Aktualny'
+    parameter_name = 'current'
+
+    @property
+    def q(self):
+        n = now()
+        return ~(Q(since__gt=n) | Q(until__lt=n) | Q(campaign__start__gt=n) | Q(campaign__end__lt=n))
+
+
 class BannerAdmin(TranslationAdmin):
 class BannerAdmin(TranslationAdmin):
-    list_display = ['place', 'text', 'priority', 'since', 'until', 'show_members', 'staff_preview']
+    list_display = [
+            'place', 'text',
+            'campaign',
+            'since', 'until',
+            'show_members', 'staff_preview', 'only_authenticated']
+    list_filter = [
+        'campaign',
+        IsCurrentFilter,
+    ]
+    autocomplete_fields = ['books']
 
 
 admin.site.register(models.Banner, BannerAdmin)
 
 
 admin.site.register(models.Banner, BannerAdmin)
@@ -36,3 +63,16 @@ class DynamicTextInsertAdmin(admin.ModelAdmin):
 
 
 admin.site.register(models.DynamicTextInsert, DynamicTextInsertAdmin)
 
 
 admin.site.register(models.DynamicTextInsert, DynamicTextInsertAdmin)
+
+
+class MediaInsertTextInline(OrderableAdmin, admin.TabularInline):
+    model = models.MediaInsertText
+    extra = 0
+    min_num = 1
+
+
+@admin.register(models.MediaInsertSet)
+class MediaInsertSetAdmin(admin.ModelAdmin):
+    list_display = ['file_format', 'etag']
+    inlines = [MediaInsertTextInline]
+    readonly_fields = ['etag']