summaryrefslogtreecommitdiff
path: root/app/posts/admin.py
diff options
context:
space:
mode:
Diffstat (limited to 'app/posts/admin.py')
-rw-r--r--app/posts/admin.py77
1 files changed, 77 insertions, 0 deletions
diff --git a/app/posts/admin.py b/app/posts/admin.py
new file mode 100644
index 0000000..af39162
--- /dev/null
+++ b/app/posts/admin.py
@@ -0,0 +1,77 @@
+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 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', 'site', 'post_type', 'pub_date', 'template_name', 'status',)
+ search_fields = ['title', 'body_markdown']
+ prepopulated_fields = {"slug": ('title',)}
+ list_filter = ('site', 'post_type', 'pub_date', 'enable_comments', 'status')
+ fieldsets = (
+ ('Entry', {
+ 'fields': (
+ ('title', 'short_title'),
+ 'subtitle',
+ 'body_markdown',
+ ('pub_date', 'status', 'post_type'),
+ ('slug', 'enable_comments',),
+ 'dek',
+ 'meta_description',
+ 'template_name',
+ ('featured_image','related'),
+ 'site'
+ ),
+ 'classes': (
+ 'show',
+ 'extrapretty',
+ 'wide'
+ )
+ }
+ ),
+ ('Extras', {
+ 'fields': (
+ ('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",)
+ }
+
+
+