Beispiel #1
0
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:
Beispiel #2
0
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
Beispiel #3
0
# -*- 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']

Beispiel #4
0
# -*- 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']
Beispiel #5
0
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&times;%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)
Beispiel #6
0
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 = []
Beispiel #9
0
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)
Beispiel #10
0
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)
Beispiel #11
0
class AppPromoAdmin(admin.ModelAdmin):
    list_display = ('title', 'download_count')
    prepopulated_fields = {"slug": ("title", )}
    inlines = [admin_translationinline(AppPromoTranslation)]