[FIX] Fixed on_created.
authorvta vta@openerp.com <>
Wed, 10 Oct 2012 12:33:51 +0000 (14:33 +0200)
committervta vta@openerp.com <>
Wed, 10 Oct 2012 12:33:51 +0000 (14:33 +0200)
bzr revid: vta@openerp.com-20121010123351-gq8mr73z5avh79nd

addons/web/static/src/js/view_form.js

index dc57212..009de5a 100644 (file)
@@ -131,7 +131,6 @@ instance.web.FormView = instance.web.View.extend(instance.web.form.FieldManagerM
                 e.preventDefault();
             }
         });
-        self.on('record_created', self, self.update_dataset);
     },
     destroy: function() {
         _.each(this.get_widgets(), function(w) {
@@ -779,7 +778,7 @@ instance.web.FormView = instance.web.View.extend(instance.web.form.FieldManagerM
         var def = $.Deferred();
         $.when(this.has_been_loaded).then(function() {
             self.dataset.call('copy', [self.datarecord.id, {}, self.dataset.context]).then(function(new_id) {
-                return self.trigger('record_created', { result : new_id });
+                return self.record_created({ result : new_id });
             }).then(function() {
                 return self.to_edit_mode();
             }).then(function() {
@@ -860,7 +859,7 @@ instance.web.FormView = instance.web.View.extend(instance.web.form.FieldManagerM
                 if (!self.datarecord.id) {
                     // Creation save
                     save_deferral = self.dataset.create(values).pipe(function(r) {
-                        return self.trigger('record_created', r, prepend_on_create);
+                        return self.record_created(r, prepend_on_create);
                     }, null);
                 } else if (_.isEmpty(values) && ! self.force_dirty) {
                     // Not dirty, noop save
@@ -919,9 +918,11 @@ instance.web.FormView = instance.web.View.extend(instance.web.form.FieldManagerM
      * @param {Boolean} [prepend_on_create=false] adds the newly created record
      * at the beginning of the dataset instead of the end
      */
-    update_dataset: function(r, prepend_on_create) {
+    record_created: function(r, prepend_on_create) {
+        var self = this;
         if (!r) {
             // should not happen in the server, but may happen for internal purpose
+            this.trigger('record_created', r);
             return $.Deferred().reject();
         } else {
             this.datarecord.id = r;
@@ -935,9 +936,10 @@ instance.web.FormView = instance.web.View.extend(instance.web.form.FieldManagerM
             this.do_update_pager();
             if (this.sidebar) {
                 this.sidebar.do_attachement_update(this.dataset, this.datarecord.id);
-            }
+            }            
             //openerp.log("The record has been created with id #" + this.datarecord.id);
             return $.when(this.reload()).pipe(function () {
+                self.trigger('record_created', r);
                 return _.extend(r, {created: true});
             });
         }