from django.contrib import admin from django.contrib.gis.admin import OSMGeoAdmin from projects.models.base import Project from projects.models.fiveby import FiveBy from projects.models.natparks import NationalParks from projects.models.gifs import AnimatedGif from projects.models.self_experiments import Experiment class ProjectAdmin(OSMGeoAdmin): list_display = ('title', 'pub_date', 'status',) search_fields = ['title', 'body_markdown'] prepopulated_fields = {"slug": ('title',)} list_filter = ('pub_date', 'status') fieldsets = ( ('Project', { 'fields': ( 'title', 'subtitle', 'lede', 'pub_date', 'model_name', ('status', 'image'), 'slug', ), 'classes': ( 'show', 'extrapretty', 'wide' ) }), ) class Media: js = ['/media/admin/custom/model.js'] class FiveByAdmin(OSMGeoAdmin): list_display = ('title', 'pub_date', 'status',) search_fields = ['title'] prepopulated_fields = {"slug": ('title',)} list_filter = ('pub_date', 'status') fieldsets = ( ('Project', {'fields': ('title', 'lede', 'pub_date', 'status', ('image', 'videoh264', 'videoogg'), 'slug', ('vimeo_link', 'youtube_link'), ('point', 'location', 'region')), 'classes': ('show', 'extrapretty', 'wide')}), ) # options for OSM map Using custom ESRI topo map default_lon = -9285175 default_lat = 4025046 default_zoom = 6 units = True scrollable = False map_width = 700 map_height = 425 map_template = 'gis/admin/osm.html' class NationalParksAdmin(OSMGeoAdmin): list_display = ('unit_name', 'type', 'state', 'name', 'visited', 'size') list_filter = ('state', 'type') search_fields = ['name'] fieldsets = ( ('Project', { 'fields': ( 'name', 'tag_line', ('state', 'visited'), 'dek', 'date_visited_begin', 'date_visited_end', 'mpoly', 'image', ('post', 'gallery'), ('url', 'size', 'fee', 'camping_fee', 'date_park_created'), 'zoom' ), 'classes': ( 'show', 'extrapretty', 'wide' ) }), ) # options for OSM map Using custom ESRI topo map default_lon = -9285175 default_lat = 4025046 default_zoom = 6 units = True scrollable = False map_width = 700 map_height = 425 map_template = 'gis/admin/osm.html' class AnimatedGifAdmin(admin.ModelAdmin): list_display = ('title', 'date_created') search_fields = ['title'] fieldsets = ( (None, { 'fields': ( 'title', 'gif', 'date_created', 'slug', 'music_ogg', 'music_mp3' ) }), ) class ExperimentAdmin(admin.ModelAdmin): list_display = ('title', 'date_start', 'date_end_projected', 'days_remaining') search_fields = ['title'] fieldsets = ( (None, { 'fields': ( 'title', 'slug', 'body_markdown', ('date_start', 'duration', 'date_end_projected'), 'date_end_actual', 'status' ) }), ) admin.site.register(Experiment, ExperimentAdmin) admin.site.register(AnimatedGif, AnimatedGifAdmin) admin.site.register(Project, ProjectAdmin) admin.site.register(FiveBy, FiveByAdmin) admin.site.register(NationalParks, NationalParksAdmin)