X-Git-Url: https://git.mdrn.pl/wolnelektury.git/blobdiff_plain/93da6796796d43def17c8adde0f194489cc14b01..243ac5a586da9e5abb87698306794b6cc173ded1:/src/social/admin.py diff --git a/src/social/admin.py b/src/social/admin.py old mode 100755 new mode 100644 index c53ff893f..cc1943262 --- a/src/social/admin.py +++ b/src/social/admin.py @@ -1,29 +1,53 @@ -# -*- 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.contrib import admin -from django.utils.translation import ugettext_lazy as _ +from django.forms import ModelForm +from django.forms.widgets import TextInput +from django.utils.translation import gettext_lazy as _ +from admin_ordering.admin import OrderableAdmin +from social.models import Cite, BannerGroup, Carousel, CarouselItem -from social.models import Cite +class CiteForm(ModelForm): + class Meta: + model = Cite + fields = '__all__' + widgets = { + 'background_color': TextInput(attrs={'type': 'color'}), + } class CiteAdmin(admin.ModelAdmin): - list_display = ['nonempty_text', 'sticky', 'vip', 'small', 'has_image'] + form = CiteForm + list_display = ['nonempty_text', 'created_at', 'sticky', 'vip', 'small', 'has_image'] + list_filter = ['group'] + readonly_fields = ['created_at'] + autocomplete_fields = ['book'] + search_fields = ['text', 'link', 'picture_alt', 'picture_author', 'picture_link', 'image_title', 'image_author', 'image_link'] fieldsets = ( - (None, {'fields': ('book', 'text', 'small', 'vip', 'link', 'sticky', 'banner')}), + (None, {'fields': ('group', 'sticky', 'created_at', 'book')}), + (_('Content'), {'fields': ('link', 'vip', 'text', 'small')}), + (_('Media box'), {'fields': ( + 'video', + 'picture', 'picture_alt', + 'picture_title', 'picture_author', 'picture_link', + 'picture_license', 'picture_license_link' + )}), ( _('Background'), {'fields': ( - 'image', 'image_shift', 'image_title', 'image_author', - 'image_link', 'image_license', 'image_license_link')}, + ('background_plain', 'background_color'), + 'image', + 'image_title', 'image_author', 'image_link', + 'image_license', 'image_license_link' + )}, ) ) def nonempty_text(self, cite): if cite.text.strip(): return cite.text - return "(%s)" % (cite.image_title.strip() or cite.link) + return "(%s)" % (cite.image_title or cite.link or '-').strip() nonempty_text.short_description = _('text') def has_image(self, cite): @@ -33,3 +57,26 @@ class CiteAdmin(admin.ModelAdmin): admin.site.register(Cite, CiteAdmin) + + +class BannerGroupAdmin(admin.ModelAdmin): + list_display = ['name', 'created_at'] + fields = ['name', 'created_at'] + readonly_fields = ['created_at'] + +admin.site.register(BannerGroup, BannerGroupAdmin) + + +class CarouselItemInline(OrderableAdmin, admin.TabularInline): + model = CarouselItem + ordering_field = 'order' + autocomplete_fields = ['banner'] + + +class CarouselAdmin(admin.ModelAdmin): + list_display = ['placement', 'priority', 'language'] + inlines = [CarouselItemInline] + + +admin.site.register(Carousel, CarouselAdmin) +