Stats for audiobooks
[wolnelektury.git] / src / social / admin.py
old mode 100755 (executable)
new mode 100644 (file)
index 258e522..91ebcdb
@@ -2,29 +2,51 @@
 # Copyright © Fundacja Nowoczesna Polska. See NOTICE for more information.
 #
 from django.contrib import admin
 # Copyright © Fundacja Nowoczesna Polska. See NOTICE for more information.
 #
 from django.contrib import admin
+from django.forms import ModelForm
+from django.forms.widgets import TextInput
 from django.utils.translation import ugettext_lazy as _
 from admin_ordering.admin import OrderableAdmin
 from social.models import Cite, BannerGroup, Carousel, CarouselItem
 
 
 from django.utils.translation import ugettext_lazy as _
 from admin_ordering.admin import OrderableAdmin
 from social.models import Cite, BannerGroup, Carousel, CarouselItem
 
 
+class CiteForm(ModelForm):
+    class Meta:
+        model = Cite
+        fields = '__all__'
+        widgets = {
+            'background_color': TextInput(attrs={'type': 'color'}),
+        }
+
 class CiteAdmin(admin.ModelAdmin):
 class CiteAdmin(admin.ModelAdmin):
+    form = CiteForm
     list_display = ['nonempty_text', 'created_at', 'sticky', 'vip', 'small', 'has_image']
     list_filter = ['group']
     list_display = ['nonempty_text', 'created_at', 'sticky', 'vip', 'small', 'has_image']
     list_filter = ['group']
+    readonly_fields = ['created_at']
+    autocomplete_fields = ['book']
     fieldsets = (
     fieldsets = (
-        (None, {'fields': ('group', 'sticky')}),
-        (_('Content'), {'fields': ('book', 'text', 'small', 'vip', 'link', 'video', 'picture', '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': (
         (
             _('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
         )
     )
 
     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):
     nonempty_text.short_description = _('text')
 
     def has_image(self, cite):
@@ -35,7 +57,13 @@ class CiteAdmin(admin.ModelAdmin):
 
 admin.site.register(Cite, CiteAdmin)
 
 
 admin.site.register(Cite, CiteAdmin)
 
-admin.site.register(BannerGroup)
+
+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):
 
 
 class CarouselItemInline(OrderableAdmin, admin.TabularInline):
@@ -44,6 +72,7 @@ class CarouselItemInline(OrderableAdmin, admin.TabularInline):
 
 
 class CarouselAdmin(admin.ModelAdmin):
 
 
 class CarouselAdmin(admin.ModelAdmin):
+    list_display = ['placement', 'priority', 'language']
     inlines = [CarouselItemInline]
 
 
     inlines = [CarouselItemInline]