from django.contrib import admin from django import forms from django.contrib.gis.admin import OSMGeoAdmin from django.contrib.contenttypes.admin import GenericStackedInline from utils.widgets import AdminImageWidget, LGEntryForm from .models import Post from utils.util import get_latlon @admin.register(Post) class PostAdmin(OSMGeoAdmin): form = LGEntryForm def get_queryset(self, request): test_model_qs = super(PostAdmin, self).get_queryset(request) test_model_qs = test_model_qs.prefetch_related('related').prefetch_related('books') return test_model_qs def render_change_form(self, request, context, *args, **kwargs): #context['adminform'].form.fields['featured_image'].queryset = LuxImage.objects.all()[:200] return super(PostAdmin, self).render_change_form(request, context, *args, **kwargs) def formfield_for_dbfield(self, db_field, **kwargs): if db_field.name == 'thumbnail' or db_field.name == 'image': field = forms.FileField(widget=AdminImageWidget) elif db_field.name == 'meta_description': field = forms.CharField(widget=forms.Textarea(attrs={'rows': 4, 'cols': 75})) field.required = False else: field = super(PostAdmin, self).formfield_for_dbfield(db_field, **kwargs) return field list_display = ('title', 'post_type', 'pub_date', 'status',) search_fields = ['title', 'body_markdown'] prepopulated_fields = {"slug": ('title',)} list_filter = ('post_type', 'pub_date', 'enable_comments', 'status') filter_horizontal = ('related', 'books',) fieldsets = ( ('Entry', { 'fields': ( ('title', 'short_title'), 'subtitle', 'body_markdown', ('pub_date', 'status', 'post_type'), ('slug', 'enable_comments',), 'dek', 'meta_description', 'issue', ('featured_image', 'featured_audio', 'related'), ), 'classes': ( 'show', 'extrapretty', 'wide' ) } ), ('Extras', { 'fields': ( 'books', ('has_video', 'disclaimer',), 'topics', 'prologue_markdown', 'epilogue_markdown', 'originally_published_by', 'originally_published_by_url', ), 'classes': ( 'collapse', ) }), ) class Media: js = ('image-loader.js', 'product-loader.js', 'next-prev-links.js') css = { "all": ("my_styles.css",) }