class MediaFileAdmin(admin.ModelAdmin): save_on_top = True form = MediaFileAdminForm date_hierarchy = 'created' inlines = [admin_translationinline(MediaFileTranslation)] list_display = [admin_thumbnail, '__unicode__', 'file_info', 'formatted_created'] list_display_links = ['__unicode__'] list_filter = ['type', 'categories'] list_per_page = 25 search_fields = ['copyright', 'file', 'translations__caption'] filter_horizontal = ("categories",) actions = [assign_category, save_as_zipfile] def get_urls(self): from django.conf.urls.defaults import url, patterns urls = super(MediaFileAdmin, self).get_urls() my_urls = patterns('', url(r'^mediafile-bulk-upload/$', self.admin_site.admin_view(MediaFileAdmin.bulk_upload), {}, name='mediafile_bulk_upload') ) return my_urls + urls def changelist_view(self, request, extra_context=None): if extra_context is None: extra_context = {} extra_context['categories'] = Category.objects.order_by('title') return super(MediaFileAdmin, self).changelist_view(request, extra_context=extra_context) @staticmethod @csrf_protect @permission_required('medialibrary.add_mediafile') def bulk_upload(request): from .zip import import_zipfile if request.method == 'POST' and 'data' in request.FILES: try: count = import_zipfile(request.POST.get('category'), request.POST.get('overwrite', False), request.FILES['data']) messages.info(request, _("%d files imported") % count) except Exception, e: messages.error(request, _("ZIP import failed: %s") % str(e)) else:
class EventAdmin(admin.ModelAdmin): form = EventAdminForm save_on_top = True list_display = ('__unicode__', 'start_date', 'start_time', 'end_date', 'end_time', 'type', 'active', 'address', 'country', 'admin_thumbnail') fieldsets = [ (None, { 'fields': ('active', ('start_date', 'start_time'), ('end_date', 'end_time'), ('image', 'feincms_page'), ('address', 'country'), 'categories') }), ] list_filter = ('start_date', 'active') raw_id_fields = ('feincms_page', 'image') inlines = [ admin_translationinline(EventTranslation, prepopulated_fields={'slug': ('title', )}, form=EventTranslationForm), ] def admin_thumbnail(self, instance): if not instance.image: return u'' image = admin_thumbnail(instance.image) if image: return mark_safe(u""" <a href="%(url)s" target="_blank"> <img src="%(image)s" alt="" /> </a>""" % { 'url': instance.image.url, 'image': image, }) return u'' admin_thumbnail.short_description = _('Image') admin_thumbnail.allow_tags = True
# -*- coding: utf-8 -*- from django.contrib import admin from .models import Category, Forum, Topic, Post, Profile, Ban from feincms.translations import admin_translationinline from .models import CategoryTranslation, ForumTranslation CategoryTranslationInline = admin_translationinline( CategoryTranslation, prepopulated_fields={'slug': ('title', )}) class CategoryAdmin(admin.ModelAdmin): inlines = [CategoryTranslationInline] list_display = [ '__unicode__', ] search_fields = ['translations__title'] ForumTranslationInline = admin_translationinline( ForumTranslation, prepopulated_fields={'slug': ('title', )}) class ForumAdmin(admin.ModelAdmin): inlines = [ForumTranslationInline] list_display = [ '__unicode__', ] search_fields = ['translations__title']
# -*- coding: utf-8 -*- from django.contrib import admin from .models import Category, Forum, Topic, Post, Profile, Ban from feincms.translations import admin_translationinline from .models import CategoryTranslation, ForumTranslation CategoryTranslationInline = admin_translationinline(CategoryTranslation, prepopulated_fields={'slug': ('title',)}) class CategoryAdmin(admin.ModelAdmin): inlines = [CategoryTranslationInline] list_display = ['__unicode__',] search_fields = ['translations__title'] ForumTranslationInline = admin_translationinline(ForumTranslation, prepopulated_fields={'slug': ('title',)}) class ForumAdmin(admin.ModelAdmin): inlines = [ForumTranslationInline] list_display = ['__unicode__',] search_fields = ['translations__title'] class TopicAdmin(admin.ModelAdmin): list_display = ['name', 'forum', 'created', 'head', 'post_count'] search_fields = ['name'] raw_id_fields = ['user', 'subscribers'] class PostAdmin(admin.ModelAdmin): list_display = ['topic', 'user', 'created', 'updated', 'summary'] search_fields = ['body']
class MediaFileAdmin(ExtensionModelAdmin): form = MediaFileAdminForm save_on_top = True date_hierarchy = 'created' inlines = [admin_translationinline(MediaFileTranslation)] list_display = [ 'admin_thumbnail', '__str__', 'file_info', 'formatted_created' ] list_display_links = ['__str__'] list_filter = ['type', 'categories'] list_per_page = 25 search_fields = ['copyright', 'file', 'translations__caption'] filter_horizontal = ("categories", ) actions = [assign_category, save_as_zipfile] def get_urls(self): from django.conf.urls import patterns, url urls = super(MediaFileAdmin, self).get_urls() my_urls = patterns( '', url( r'^mediafile-bulk-upload/$', self.admin_site.admin_view(MediaFileAdmin.bulk_upload), {}, name='mediafile_bulk_upload', ), ) return my_urls + urls def changelist_view(self, request, extra_context=None): if extra_context is None: extra_context = {} extra_context['categories'] = Category.objects.order_by('title') return super(MediaFileAdmin, self).changelist_view(request, extra_context=extra_context) def admin_thumbnail(self, obj): image = admin_thumbnail(obj) if image: return mark_safe(""" <a href="%(url)s" target="_blank"> <img src="%(image)s" alt="" /> </a>""" % { 'url': obj.file.url, 'image': image }) return '' admin_thumbnail.short_description = _('Preview') admin_thumbnail.allow_tags = True def formatted_file_size(self, obj): return filesizeformat(obj.file_size) formatted_file_size.short_description = _("file size") formatted_file_size.admin_order_field = 'file_size' def formatted_created(self, obj): return obj.created.strftime("%Y-%m-%d") formatted_created.short_description = _("created") formatted_created.admin_order_field = 'created' def file_type(self, obj): t = obj.filetypes_dict[obj.type] if obj.type == 'image': # get_image_dimensions is expensive / slow if the storage is not # local filesystem (indicated by availability the path property) try: obj.file.path except NotImplementedError: return t try: d = get_image_dimensions(obj.file.file) if d: t += " %d×%d" % (d[0], d[1]) except (IOError, ValueError) as e: t += " (%s)" % e return t file_type.admin_order_field = 'type' file_type.short_description = _('file type') file_type.allow_tags = True def file_info(self, obj): """ Method for showing the file name in admin. Note: This also includes a hidden field that can be used to extract the file name later on, this can be used to access the file name from JS, like for example a TinyMCE connector shim. """ return ('<input type="hidden" class="medialibrary_file_path"' ' name="_media_path_%d" value="%s" id="_refkey_%d" />' ' %s <br />%s, %s') % ( obj.id, obj.file.name, obj.id, shorten_string(os.path.basename(obj.file.name), max_length=40), self.file_type(obj), self.formatted_file_size(obj), ) file_info.admin_order_field = 'file' file_info.short_description = _('file info') file_info.allow_tags = True @staticmethod @csrf_protect @permission_required('medialibrary.add_mediafile') def bulk_upload(request): if request.method == 'POST' and 'data' in request.FILES: try: count = import_zipfile(request.POST.get('category'), request.POST.get('overwrite', False), request.FILES['data']) messages.info(request, _("%d files imported") % count) except Exception as e: messages.error(request, _("ZIP import failed: %s") % e) else: messages.error(request, _("No input file given")) return HttpResponseRedirect( reverse('admin:medialibrary_mediafile_changelist')) def queryset(self, request): return super(MediaFileAdmin, self).queryset(request).transform(lookup_translations()) def save_model(self, request, obj, form, change): obj.purge_translation_cache() return super(MediaFileAdmin, self).save_model(request, obj, form, change)
from django.contrib import admin from feincms.translations import admin_translationinline from .models import Thing, ThingValue from valueladder.models import ThingTranslation ThingTranslationInline = admin_translationinline(ThingTranslation, prepopulated_fields={'slug': ('title',)}) class ThingAdmin(admin.ModelAdmin): inlines = [ThingTranslationInline] list_display = ['__unicode__', 'code'] search_fields = ['translations__title', 'code'] class ThingValueAdmin(admin.ModelAdmin): search_fields = ['thingA', 'thingB'] list_display = ['thingA', 'thingB', 'ratio'] admin.site.register(Thing, ThingAdmin) admin.site.register(ThingValue, ThingValueAdmin)
from django.contrib import admin from django.utils.translation import ugettext_lazy as _ from elephantblog.models import Entry, EntryAdmin, Category, CategoryTranslation from feincms.translations import admin_translationinline, short_language_code CategoryTranslationInline = admin_translationinline(CategoryTranslation, prepopulated_fields={"slug": ("title",)}) class CategoryAdmin(admin.ModelAdmin): inlines = [CategoryTranslationInline] list_display = ["__unicode__", "entries"] search_fields = ["translations__title"] def entries(self, obj): return Entry.objects.filter(categories=obj) entries.short_description = _("Blog entries in category") admin.site.register(Entry, EntryAdmin) admin.site.register(Category, CategoryAdmin)
from __future__ import absolute_import, unicode_literals from django.contrib import admin from django.utils.encoding import force_text from django.utils.translation import gettext_lazy as _ from feincms.admin import item_editor from feincms.translations import admin_translationinline from elephantblog.models import CategoryTranslation, Entry CategoryTranslationInline = admin_translationinline( CategoryTranslation, prepopulated_fields={"slug": ("title", )}) class CategoryAdmin(admin.ModelAdmin): inlines = [CategoryTranslationInline] list_display = ["__str__", "ordering", "entries"] list_editable = ["ordering"] search_fields = ["translations__title"] def entries(self, obj): return (", ".join( force_text(entry) for entry in Entry.objects.filter(categories=obj)) or "-") entries.short_description = _("Blog entries in category") class EntryAdmin(item_editor.ItemEditor): actions = []
from django.contrib import admin from django.utils.translation import ugettext_lazy as _ from elephantblog import models from feincms.translations import admin_translationinline CategoryTranslationInline = admin_translationinline( models.CategoryTranslation, prepopulated_fields={ 'slug': ('title',) }) class CategoryAdmin(admin.ModelAdmin): inlines = [CategoryTranslationInline] list_display = ['__unicode__', 'ordering', 'entries'] list_editable = ['ordering'] search_fields = ['translations__title'] def entries(self, obj): return u', '.join(unicode(entry) for entry in models.Entry.objects.filter(categories=obj)) or '-' entries.short_description = _('Blog entries in category') admin.site.register(models.Entry, models.EntryAdmin) admin.site.register(models.Category, CategoryAdmin)
from django.contrib import admin from django.utils.translation import ugettext_lazy as _ from elephantblog import models from feincms.translations import admin_translationinline CategoryTranslationInline = admin_translationinline( models.CategoryTranslation, prepopulated_fields={'slug': ('title', )}) class CategoryAdmin(admin.ModelAdmin): inlines = [CategoryTranslationInline] list_display = ['__unicode__', 'ordering', 'entries'] list_editable = ['ordering'] search_fields = ['translations__title'] def entries(self, obj): return u', '.join( unicode(entry) for entry in models.Entry.objects.filter(categories=obj)) or '-' entries.short_description = _('Blog entries in category') admin.site.register(models.Entry, models.EntryAdmin) admin.site.register(models.Category, CategoryAdmin)
class AppPromoAdmin(admin.ModelAdmin): list_display = ('title', 'download_count') prepopulated_fields = {"slug": ("title", )} inlines = [admin_translationinline(AppPromoTranslation)]