diff options
Diffstat (limited to 'app/photos')
-rw-r--r-- | app/photos/admin.py | 2 | ||||
-rw-r--r-- | app/photos/models.py | 17 | ||||
-rw-r--r-- | app/photos/static/image-preview.js | 13 | ||||
-rw-r--r-- | app/photos/views.py | 10 |
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): |