[IMP] Support for One2Many
authorFabien Meghazi <fme@openerp.com>
Wed, 15 Feb 2012 10:34:05 +0000 (11:34 +0100)
committerFabien Meghazi <fme@openerp.com>
Wed, 15 Feb 2012 10:34:05 +0000 (11:34 +0100)
bzr revid: fme@openerp.com-20120215103405-svbhpnu3hyx2q8rb

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

index 02a4204..9bd566b 100644 (file)
@@ -213,10 +213,7 @@ openerp.web.FormView = openerp.web.View.extend( /** @lends openerp.web.FormView#
             self.$element.removeClass('oe_form_dirty');
         });
     },
-    on_form_changed: function(changed_by_user) {
-        if (changed_by_user) {
-            this.$element.addClass('oe_form_dirty');
-        }
+    on_form_changed: function() {
         for (var w in this.widgets) {
             w = this.widgets[w];
             w.process_modifiers();
@@ -226,6 +223,9 @@ openerp.web.FormView = openerp.web.View.extend( /** @lends openerp.web.FormView#
             w.update_dom();
         }
     },
+    do_notify_change: function() {
+        this.$element.addClass('oe_form_dirty');
+    },
     on_pager_action: function(action) {
         if (this.can_be_discarded()) {
             switch (action) {
@@ -1418,6 +1418,7 @@ openerp.web.form.Field = openerp.web.form.Widget.extend(/** @lends openerp.web.f
             this.set_value_from_ui();
             this.view.do_onchange(this);
             this.view.on_form_changed(true);
+            this.view.do_notify_change();
         } else {
             this.update_dom(true);
         }
@@ -2612,6 +2613,13 @@ openerp.web.form.One2ManyFormView = openerp.web.FormView.extend({
         this.$form_header.find('button.oe_form_button_create').click(function() {
             self.do_save().then(self.on_button_new);
         });
+    },
+    do_notify_change: function() {
+        if (this.dataset.parent_view) {
+            this.dataset.parent_view.do_notify_change();
+        } else {
+            this._super.apply(this, arguments);
+        }
     }
 });