from django.contrib import admin from django import forms from django.contrib.gis.admin import OSMGeoAdmin from utils.widgets import AdminImageWidget, LGEntryForm from .models import Entry, HomepageCurrator from photos.forms import GalleryForm from utils.util import get_latlon @admin.register(Entry) class EntryAdmin(OSMGeoAdmin): form = LGEntryForm def formfield_for_dbfield(self, db_field, **kwargs): if db_field.name == 'thumbnail' or db_field.name == 'image': field = forms.FileField(widget=AdminImageWidget) else: field = super(EntryAdmin, self).formfield_for_dbfield(db_field, **kwargs) return field list_display = ('title', 'pub_date', 'template_name', 'status', 'location', 'photo_gallery') search_fields = ['title', 'body_markdown'] prepopulated_fields = {"slug": ('title',)} list_filter = ('pub_date', 'enable_comments', 'status', 'location__state__country__lux_region') filter_horizontal = ('field_notes',) fieldsets = ( ('Entry', { 'fields': ( 'title', 'body_markdown', 'body_html', ('pub_date', 'status'), 'slug', 'point' ), 'classes': ( 'show', 'extrapretty', 'wide' ) } ), ('Formatting data', { 'fields': ( 'dek', 'meta_description', ('image', 'thumbnail'), 'template_name', 'enable_comments', 'field_notes', ), }), ) # 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') @admin.register(HomepageCurrator) class HomepageCurratorAdmin(admin.ModelAdmin): form = GalleryForm filter_horizontal = ('popular',) pass