from django.contrib import admin from django.contrib.gis.admin import OSMGeoAdmin from utils.widgets import LGEntryForm from .models import CheckIn, Daily, Weather class WeatherAdmin(OSMGeoAdmin): pass class DailyAdmin(OSMGeoAdmin): form = LGEntryForm list_display = ('date', 'user', 'location') list_filter = ( 'date', ('location', admin.RelatedOnlyFieldListFilter), ) fieldsets = ( (None, { 'fields': ( 'user', 'body_markdown', 'weather_human', ) }), ('Details', { 'fields': ( 'location', 'weather', 'date' ), 'classes': ('collapse',), }), ) def get_form(self, request, obj=None, **kwargs): form = super(DailyAdmin, self).get_form(request, **kwargs) form.current_user = request.user return form def get_queryset(self, request): qs = super(DailyAdmin, self).get_queryset(request) if request.user.is_superuser: return qs return qs.filter(user=request.user) class CheckInAdmin(OSMGeoAdmin): list_display = ('date', 'location') default_lon = -9285175 default_lat = 4025046 default_zoom = 15 units = True scrollable = False map_width = 700 map_height = 425 map_template = 'gis/admin/osm.html' openlayers_url = '/static/admin/js/OpenLayers.js' admin.site.register(CheckIn, CheckInAdmin) admin.site.register(Weather, WeatherAdmin) admin.site.register(Daily, DailyAdmin)