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.py103
1 files changed, 103 insertions, 0 deletions
diff --git a/app/posts/admin.py b/app/posts/admin.py
new file mode 100644
index 0000000..ad8f509
--- /dev/null
+++ b/app/posts/admin.py
@@ -0,0 +1,103 @@
+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 photos.forms import GalleryForm
+from photos.models import LuxImage
+from utils.util import get_latlon
+
+
+@admin.register(Post)
+class EntryAdmin(OSMGeoAdmin):
+ form = LGEntryForm
+
+ def get_queryset(self, request):
+ test_model_qs = super(EntryAdmin, 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(EntryAdmin, 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(EntryAdmin, self).formfield_for_dbfield(db_field, **kwargs)
+ return field
+
+ list_display = ('title', 'post_type', 'pub_date', 'template_name', 'status', 'category')
+ search_fields = ['title', 'body_markdown']
+ prepopulated_fields = {"slug": ('title',)}
+ list_filter = ('pub_date', 'enable_comments', 'status', 'category')
+ filter_horizontal = ('related',)
+ fieldsets = (
+ ('Entry', {
+ 'fields': (
+ 'title',
+ 'subtitle',
+ 'body_markdown',
+ ('pub_date', 'status', 'post_type', 'old_id',),
+ 'slug',
+ ),
+ 'classes': (
+ 'show',
+ 'extrapretty',
+ 'wide'
+ )
+ }
+ ),
+ ('Metadata', {
+ 'fields': (
+ 'point',
+ 'dek',
+ 'meta_description',
+ ('category', 'tags'),
+ 'template_name',
+ 'enable_comments',
+ 'featured_image',
+ 'related',
+ ('has_video', 'disclaimer',),
+ ),
+ }),
+ ('Extras', {
+ 'fields': (
+ 'books',
+ 'field_notes',
+ 'jrnl',
+ 'prologue_markdown',
+ 'epilogue_markdown',
+ 'originally_published_by',
+ 'originally_published_by_url',
+ ),
+ }),
+ )
+ # options for OSM map Using custom ESRI topo map
+ lat, lon = get_latlon()
+ default_lon = lon
+ default_lat = lat
+ default_zoom = 10
+ units = True
+ scrollable = False
+ map_width = 700
+ map_height = 425
+ map_template = 'gis/admin/osm.html'
+ openlayers_url = '/static/admin/js/OpenLayers.js'
+
+ class Media:
+ js = ('image-loader.js', 'next-prev-links.js')
+ css = {
+ "all": ("my_styles.css",)
+ }
+
+
+