from django.contrib import admin from django import forms from django.contrib.gis.admin import OSMGeoAdmin from django.conf.urls import url from django.utils.translation import ungettext, ugettext_lazy as _ from .models import LuxImage, LuxGallery, LuxImageSize, LuxVideo from django.shortcuts import render from django.contrib.admin import helpers from django.http import HttpResponseRedirect @admin.register(LuxImageSize) class LuxImageSizeAdmin(OSMGeoAdmin): list_display = ('name','slug', 'width', 'height', 'quality') @admin.register(LuxVideo) class LuxVideoAdmin(OSMGeoAdmin): pass @admin.register(LuxImage) class LuxImageAdmin(OSMGeoAdmin): list_display = ('pk', 'admin_thumbnail', 'pub_date', 'caption', 'location') list_filter = ('pub_date', 'location') search_fields = ['title', 'caption', 'alt'] list_editable = ('location',) # 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' openlayers_url = '/static/admin/js/OpenLayers.js' fieldsets = ( (None, { 'fields': ( 'image', 'alt', 'sizes', 'caption', 'pub_date', 'title', ) }), ('Exif and Other Data', { 'classes': ('collapse',), 'fields': ( 'point', ('is_public'), ('photo_credit_source', 'photo_credit_url'), 'exif_raw', 'exif_aperture', 'exif_make', 'exif_model', 'exif_exposure', 'exif_iso', 'exif_focal_length', 'exif_lens', 'exif_date', 'height', 'width'), }), ) def save_related(self, request, form, formsets, change): super(LuxImageAdmin, self).save_related(request, form, formsets, change) if not form.instance.sizes.all(): print("there are no sizes") form.instance.sizes.add(*LuxImageSize.objects.filter(slug__in=["picwide-sm", "picwide-med", "picwide"])) class Media: js = ('image-preview.js', 'next-prev-links.js')