X-Git-Url: https://git.mdrn.pl/wolnelektury.git/blobdiff_plain/f5129e7c47fa5fcf0a20f04249b90afcbc54cb9c..14e08cfc833a63ad2c51aa3ac0ce60960d4ace0d:/src/annoy/admin.py diff --git a/src/annoy/admin.py b/src/annoy/admin.py index 7a82d6867..74a4dbc49 100644 --- a/src/annoy/admin.py +++ b/src/annoy/admin.py @@ -1,19 +1,60 @@ +from django.db.models import Q 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 wolnelektury.utils import YesNoFilter 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): - 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) +class DTITForm(forms.ModelForm): + class Meta: + model = models.DynamicTextInsertText + fields = '__all__' + widgets = { + 'background_color': forms.TextInput(attrs={"type": "color"}), + 'text_color': forms.TextInput(attrs={"type": "color"}), + } + + class DynamicTextInsertTextInline(admin.TabularInline): model = models.DynamicTextInsertText - fields = ['text', 'image', 'background_color', 'text_color'] + form = DTITForm + fields = ['text', 'image', 'own_colors', 'background_color', 'text_color'] + extra = 0 + min_num = 1 + class DynamicTextInsertAdmin(admin.ModelAdmin): @@ -22,3 +63,16 @@ class DynamicTextInsertAdmin(admin.ModelAdmin): 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']