258e522c052f05814766e80a2302c9ad516a194d
[wolnelektury.git] / src / social / admin.py
1 # This file is part of Wolnelektury, licensed under GNU Affero GPLv3 or later.
2 # Copyright © Fundacja Nowoczesna Polska. See NOTICE for more information.
3 #
4 from django.contrib import admin
5 from django.utils.translation import ugettext_lazy as _
6 from admin_ordering.admin import OrderableAdmin
7 from social.models import Cite, BannerGroup, Carousel, CarouselItem
8
9
10 class CiteAdmin(admin.ModelAdmin):
11     list_display = ['nonempty_text', 'created_at', 'sticky', 'vip', 'small', 'has_image']
12     list_filter = ['group']
13     fieldsets = (
14         (None, {'fields': ('group', 'sticky')}),
15         (_('Content'), {'fields': ('book', 'text', 'small', 'vip', 'link', 'video', 'picture', 'banner')}),
16         (
17             _('Background'),
18             {'fields': (
19                 'image', 'image_shift', 'image_title', 'image_author',
20                 'image_link', 'image_license', 'image_license_link')},
21         )
22     )
23
24     def nonempty_text(self, cite):
25         if cite.text.strip():
26             return cite.text
27         return "(%s)" % (cite.image_title.strip() or cite.link)
28     nonempty_text.short_description = _('text')
29
30     def has_image(self, cite):
31         return bool(cite.image)
32     has_image.short_description = _('image')
33     has_image.boolean = True
34
35
36 admin.site.register(Cite, CiteAdmin)
37
38 admin.site.register(BannerGroup)
39
40
41 class CarouselItemInline(OrderableAdmin, admin.TabularInline):
42     model = CarouselItem
43     ordering_field = 'order'
44
45
46 class CarouselAdmin(admin.ModelAdmin):
47     inlines = [CarouselItemInline]
48
49
50 admin.site.register(Carousel, CarouselAdmin)
51