[IMP] Form: only save record when there's something to save. Use <instance>.log()

bzr revid: fme@openerp.com-20111109151239-um65xcy0ryf4czn1
This commit is contained in:
Fabien Meghazi 2011-11-09 16:12:39 +01:00
parent b3733a5f4c
commit 762445ba01
1 changed files with 15 additions and 9 deletions

View File

@ -102,7 +102,7 @@ openerp.web.FormView = openerp.web.View.extend( /** @lends openerp.web.FormView#
self.on_pager_action(action);
});
this.$form_header.find('button.oe_form_button_save').click(this.do_save_then_readonly);
this.$form_header.find('button.oe_form_button_save').click(this.on_button_save);
this.$form_header.find('button.oe_form_button_new').click(this.on_button_new);
this.$form_header.find('button.oe_form_button_duplicate').click(this.on_button_duplicate);
this.$form_header.find('button.oe_form_button_delete').click(this.on_button_delete);
@ -294,7 +294,7 @@ openerp.web.FormView = openerp.web.View.extend( /** @lends openerp.web.FormView#
return self.on_processed_onchange(response, processed);
});
} else {
console.log("Wrong on_change format", on_change);
console.warn("Wrong on_change format", on_change);
}
}
} catch(e) {
@ -345,6 +345,9 @@ openerp.web.FormView = openerp.web.View.extend( /** @lends openerp.web.FormView#
return $.Deferred().reject();
}
},
on_button_save: function() {
return this.do_save().then(this.do_set_readonly);
},
on_button_new: function() {
var self = this;
var def = $.Deferred();
@ -403,9 +406,6 @@ openerp.web.FormView = openerp.web.View.extend( /** @lends openerp.web.FormView#
* @param {Function} success callback on save success
* @param {Boolean} [prepend_on_create=false] if ``do_save`` creates a new record, should that record be inserted at the start of the dataset (by default, records are added at the end)
*/
do_save_then_readonly: function(success, prepend_on_create) {
return this.do_save(success, prepend_on_create).then(this.do_set_readonly);
},
do_save: function(success, prepend_on_create) {
var self = this;
var action = function() {
@ -434,12 +434,18 @@ openerp.web.FormView = openerp.web.View.extend( /** @lends openerp.web.FormView#
self.on_invalid();
return $.Deferred().reject();
} else {
console.log("About to save", values);
if (!self.datarecord.id) {
openerp.log("FormView(", self, ") : About to create", values);
return self.dataset.create(values).pipe(function(r) {
return self.on_created(r, undefined, prepend_on_create);
}).then(success);
} else if (_.isEmpty(values)) {
openerp.log("FormView(", self, ") : Nothing to save");
if (success) {
success();
}
} else {
openerp.log("FormView(", self, ") : About to save", values);
return self.dataset.write(self.datarecord.id, values, {}).pipe(function(r) {
return self.on_saved(r);
}).then(success);
@ -502,7 +508,7 @@ openerp.web.FormView = openerp.web.View.extend( /** @lends openerp.web.FormView#
if (this.sidebar) {
this.sidebar.attachments.do_update();
}
console.debug("The record has been created with id #" + this.datarecord.id);
openerp.log("The record has been created with id #" + this.datarecord.id);
this.reload();
return $.when(_.extend(r, {created: true})).then(success);
}
@ -696,7 +702,7 @@ openerp.web.form.compute_domain = function(expr, fields) {
stack.push(!_(val).contains(field_value));
break;
default:
console.log("Unsupported operator in modifiers :", op);
console.warn("Unsupported operator in modifiers :", op);
}
}
return _.all(stack, _.identity);
@ -1096,7 +1102,7 @@ openerp.web.form.WidgetLabel = openerp.web.form.Widget.extend({
var self = this;
this.$element.find("label").dblclick(function() {
var widget = self['for'] || self;
console.log(widget.element_class , widget);
openerp.log(widget.element_class , widget);
window.w = widget;
});
}