From b3b0f7a8965b48bba36c6b230f0666d2dbfe2d2c Mon Sep 17 00:00:00 2001 From: = <=> Date: Wed, 5 Sep 2012 22:26:09 +0100 Subject: [PATCH] Fixed non-upload of mix image in edit --- spa/api/v1/MixResource.py | 1 - spa/models/Mix.py | 5 ++++ static/js/app/views/mix.js | 48 +++++++++++++++++++++++--------------- 3 files changed, 34 insertions(+), 20 deletions(-) diff --git a/spa/api/v1/MixResource.py b/spa/api/v1/MixResource.py index 85afe83..7ee8db8 100644 --- a/spa/api/v1/MixResource.py +++ b/spa/api/v1/MixResource.py @@ -51,4 +51,3 @@ class MixResource(BackboneCompatibleResource): bundle.data['liked'] = bundle.obj.is_liked(bundle.request.user) bundle.data['favourited'] = bundle.obj.is_favourited(bundle.request.user) return bundle - diff --git a/spa/models/Mix.py b/spa/models/Mix.py index 88bb835..af55b97 100644 --- a/spa/models/Mix.py +++ b/spa/models/Mix.py @@ -1,6 +1,7 @@ from datetime import datetime from django.db import models from django.db.models import Count +from django.forms import save_instance import os from core.utils.file import generate_save_file_name from dss import settings @@ -35,6 +36,10 @@ class Mix(_BaseModel): return self.title def save(self, force_insert=False, force_update=False, using=None): + #turn away now - horrid hack to strip media root url + #from image - will sort when I've figured backbone out better + if self.mix_image.name.startswith(settings.MEDIA_URL): + self.mix_image.name = self.mix_image.name[len(settings.MEDIA_URL):len(self.mix_image.name)] super(Mix, self).save(force_insert, force_update, using) def get_absolute_url(self): diff --git a/static/js/app/views/mix.js b/static/js/app/views/mix.js index 0cc1426..143cf15 100644 --- a/static/js/app/views/mix.js +++ b/static/js/app/views/mix.js @@ -130,7 +130,8 @@ window.MixCreateView = Backbone.View.extend({ events:{ "click #save-changes":"saveChanges", "change input":"changed", - "change textarea":"changed" + "change textarea":"changed", + "change #mix_image":"imageChanged" }, checkRedirect:function () { if (this.state == 2) { @@ -143,6 +144,7 @@ window.MixCreateView = Backbone.View.extend({ this.render(); }, render:function () { + this.sendImage = false; $(this.el).html(this.template({"item":this.model.toJSON()})); var parent = this; if (this.model.id == undefined) { @@ -192,27 +194,32 @@ window.MixCreateView = Backbone.View.extend({ this.model.save( null, { success:function () { - $.ajaxFileUpload({ - url:'ajax/upload_image/' + model.get('id') + '/', - secureuri:false, - fileElementId:'mix_image', - success:function (data, status) { - if (typeof(data.error) != 'undefined') { - if (data.error != '') { - alert(data.error); + if (parent.sendImage) { + $.ajaxFileUpload({ + url:'ajax/upload_image/' + model.get('id') + '/', + secureuri:false, + fileElementId:'mix_image', + success:function (data, status) { + if (typeof(data.error) != 'undefined') { + if (data.error != '') { + alert(data.error); + } else { + alert(data.msg); + } } else { - alert(data.msg); + $('#mix-details', this.el).hide(); + parent.state++; + parent.checkRedirect(); } - } else { - $('#mix-details', this.el).hide(); - parent.state++; - parent.checkRedirect(); + }, + error:function (data, status, e) { + alert(e); } - }, - error:function (data, status, e) { - alert(e); - } - }); + }); + }else{ + parent.state++; + parent.checkRedirect(); + } }, error:function () { com.podnoms.utils.showAlert("Error", "Something went wrong", "alert-info", false); @@ -226,5 +233,8 @@ window.MixCreateView = Backbone.View.extend({ var obj = "{\"" + changed.id + "\":\"" + value + "\"}"; var objInst = JSON.parse(obj); this.model.set(objInst); + }, + imageChanged:function (evt) { + this.sendImage = true; } }); \ No newline at end of file