Fixed non-upload of mix image in edit

This commit is contained in:
=
2012-09-05 22:26:09 +01:00
parent 9c25cfa7e4
commit b3b0f7a896
3 changed files with 34 additions and 20 deletions

View File

@@ -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

View File

@@ -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):

View File

@@ -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;
}
});