summaryrefslogtreecommitdiff
path: root/app/photos
diff options
context:
space:
mode:
Diffstat (limited to 'app/photos')
-rw-r--r--app/photos/admin.py2
-rw-r--r--app/photos/models.py17
-rw-r--r--app/photos/static/image-preview.js13
-rw-r--r--app/photos/views.py10
4 files changed, 26 insertions, 16 deletions
diff --git a/app/photos/admin.py b/app/photos/admin.py
index d0f28d7..a052169 100644
--- a/app/photos/admin.py
+++ b/app/photos/admin.py
@@ -52,7 +52,7 @@ class LuxImageAdmin(OSMGeoAdmin):
)
class Media:
- js = ('image-preview.js','next-prev-links.js')
+ js = ('image-preview.js',)
admin.site.register(LuxImage, LuxImageAdmin)
diff --git a/app/photos/models.py b/app/photos/models.py
index d68cd09..91ac15d 100644
--- a/app/photos/models.py
+++ b/app/photos/models.py
@@ -145,18 +145,21 @@ class LuxImage(models.Model):
return self.get_previous_by_pub_date()
@property
- def get_previous_admin_url(self):
- n = self.get_previous_by_pub_date()
- return "/admin/photos/luximage/%s/change/" % n.pk
-
- @property
def get_next_published(self):
return self.get_next_by_pub_date()
@property
+ def get_previous_admin_url(self):
+ n = self.get_previous_by_pub_date()
+ return reverse('admin:%s_%s_change' %(self._meta.app_label, self._meta.model_name), args=[n.id] )
+
+ @property
def get_next_admin_url(self):
- n = self.get_next_by_pub_date()
- return "/admin/photos/luximage/%s/change/" % n.pk
+ model = apps.get_model(app_label=self._meta.app_label, model_name=self._meta.model_name)
+ try:
+ return reverse('admin:%s_%s_change' %(self._meta.app_label, self._meta.model_name), args=[self.get_next_by_pub_date().pk] )
+ except model.DoesNotExist:
+ return ''
@property
def is_portait(self):
diff --git a/app/photos/static/image-preview.js b/app/photos/static/image-preview.js
index 13445f2..aac9c0b 100644
--- a/app/photos/static/image-preview.js
+++ b/app/photos/static/image-preview.js
@@ -1,7 +1,7 @@
function build_image_preview () {
- var style = document.createElement('style');
var url = window.location.href
var cur = url.split('/')[6];
+ if (cur) {
var container = document.createElement("div");
container.className = "form-row field-image";
var wrapper = document.createElement("div");
@@ -9,13 +9,14 @@ function build_image_preview () {
label.textContent = "Image:";
var pwrap = document.createElement("p");
var img = document.createElement("img");
+
var request = new XMLHttpRequest();
- request.open('GET', '/photos/data/admin/preview/'+cur+'/', true);
+ request.open('GET', '/photos/luximage/data/admin/preview/'+cur+'/', true);
request.onload = function() {
if (request.status >= 200 && request.status < 400) {
- resp = request.responseText;
+ var data = JSON.parse(request.responseText);
//console.log(resp);
- img.src = resp;
+ img.src = data['url'];
} else {
console.log("server error");
}
@@ -24,6 +25,7 @@ function build_image_preview () {
console.log("error on request");
};
request.send();
+
pwrap.appendChild(img);
wrapper.appendChild(label);
wrapper.appendChild(pwrap);
@@ -31,6 +33,9 @@ function build_image_preview () {
parent = document.getElementById("luximage_form");
node = parent.children[1].children[0];
node.parentNode.insertBefore(container, node.previousSibling);
+ } else {
+ return;
+ }
}
document.addEventListener("DOMContentLoaded", function(event) {
build_image_preview();
diff --git a/app/photos/views.py b/app/photos/views.py
index fd32828..c0daf4d 100644
--- a/app/photos/views.py
+++ b/app/photos/views.py
@@ -69,14 +69,16 @@ def photo_json(request, slug):
p = PhotoGallery.objects.filter(set_slug=slug)
return HttpResponse(serializers.serialize('json', p), mimetype='application/json')
+import simplejson
def photo_preview_json(request, pk):
p = LuxImage.objects.get(pk=pk)
- data = ()
+ data = {}
data['url'] = p.get_admin_image()
- data['prev'] = p.get_previous_admin_url()
- data['next'] = p.get_next_admin_url()
- return HttpResponse(serializers.serialize('json', data), mimetype='application/json')
+ data['prev'] = p.get_previous_admin_url
+ data['next'] = p.get_next_admin_url
+ data = simplejson.dumps(data)
+ return HttpResponse(data)
def gallery_list_by_area(request, slug, page):