from django.conf import settings
from django.contrib import admin
from django.utils.translation import ugettext_lazy as _
-from migdal.models import Entry, Attachment
+from migdal.models import Entry, Attachment, Photo
from migdal import app_settings
from fnpdjango.utils.models import filtered_model
from fnpdjango.utils.models.translation import translated_fields
readonly_fields = ['url']
+class PhotoInline(admin.TabularInline):
+ model = Photo
+ readonly_fields = ['url']
+
+
def filtered_entry_admin(typ):
class EntryAdmin(admin.ModelAdmin):
- def queryset(self, request):
+ def get_queryset(self, request):
return self.model.objects.filter(type=typ.db)
def has_add_permission(self, request):
return field
date_hierarchy = 'date'
- readonly_fields = ('date', 'changed_at', 'first_published_at') + \
- translated_fields(('published_at',))
+ readonly_fields = ('date', 'changed_at') + translated_fields(('published_at',), app_settings.LANGUAGES)
+ if app_settings.PUBLISH_DATE_EDITABLE:
+ readonly_fields += ('first_published_at',)
_promo_if_necessary = ('promo',) if typ.promotable else ()
fieldsets = (
'slug_%s' % lc,
'lead_%s' % lc,
'body_%s' % lc,
+ 'place_%s' % lc,
+ 'time_%s' % lc,
)})
for lc, ln in app_settings.OBLIGATORY_LANGUAGES
) + tuple(
'slug_%s' % lc,
'lead_%s' % lc,
'body_%s' % lc,
+ 'place_%s' % lc,
+ 'time_%s' % lc,
)})
for lc, ln in app_settings.OPTIONAL_LANGUAGES
)
)
prepopulated_fields = dict([
("slug_%s" % lang_code, ("title_%s" % lang_code,))
- for lang_code, lang_name in settings.LANGUAGES
+ for lang_code, lang_name in app_settings.LANGUAGES
])
- list_display = translated_fields(('title',),
- app_settings.OBLIGATORY_LANGUAGES) + \
- ('date', 'author') + \
- _promo_if_necessary + \
- ('in_stream', 'first_published_at',) + \
- translated_fields(('published_at',)) + \
- translated_fields(('needed',), app_settings.OPTIONAL_LANGUAGES)
+ list_display = translated_fields(('title',), app_settings.OBLIGATORY_LANGUAGES) + \
+ ('date', 'author') + \
+ _promo_if_necessary + \
+ ('in_stream', 'first_published_at',) + \
+ translated_fields(('published_at',), app_settings.LANGUAGES) + \
+ translated_fields(('needed',), app_settings.OPTIONAL_LANGUAGES)
list_filter = _promo_if_necessary + \
- translated_fields(('published',)) + \
- translated_fields(('needed',), app_settings.OPTIONAL_LANGUAGES)
- inlines = (AttachmentInline,)
+ translated_fields(('published',), app_settings.LANGUAGES) + \
+ translated_fields(('needed',), app_settings.OPTIONAL_LANGUAGES)
+ inlines = (PhotoInline, AttachmentInline)
search_fields = ('title_pl', 'title_en')
return EntryAdmin
from migdal.models import Category
class CategoryAdmin(admin.ModelAdmin):
- list_display = translated_fields(('title', 'slug')) + ('taxonomy',)
+ list_display = translated_fields(('title', 'slug'), app_settings.LANGUAGES) + ('taxonomy',)
prepopulated_fields = dict([
("slug_%s" % lang_code, ("title_%s" % lang_code,))
- for lang_code, lang_name in settings.LANGUAGES
+ for lang_code, lang_name in app_settings.LANGUAGES
])
admin.site.register(Category, CategoryAdmin)