1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
|
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')
|