Fixed problem with m2mtags
authorniv-openerp <nicolas.vanhoren@openerp.com>
Wed, 25 Jul 2012 14:31:50 +0000 (16:31 +0200)
committerniv-openerp <nicolas.vanhoren@openerp.com>
Wed, 25 Jul 2012 14:31:50 +0000 (16:31 +0200)
bzr revid: nicolas.vanhoren@openerp.com-20120725143150-x6u8pfira3wbc8mg

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

index 5ba4dfc..6d55ad4 100644 (file)
@@ -94,8 +94,8 @@ instance.web.FormView = instance.web.View.extend(instance.web.form.FieldManagerM
         this.on("change:mode", this, this._check_mode);
         this.set({mode: "view"});
         this.has_been_loaded.then(function() {
-            self.switch_mode();
-            self.on("change:actual_mode", self, self.switch_mode);
+            self.check_actual_mode();
+            self.on("change:actual_mode", self, self.check_actual_mode);
             self.set({mode: self.options.initial_mode});
         });
     },
@@ -112,7 +112,7 @@ instance.web.FormView = instance.web.View.extend(instance.web.form.FieldManagerM
      */
     _check_mode: function() {
         var mode = this.get("mode");
-        if (mode === "edit" && ! this.datarecord.id)
+        if (! this.datarecord.id)
             mode = "create";
         this.set({actual_mode: mode});
     },
@@ -600,7 +600,7 @@ instance.web.FormView = instance.web.View.extend(instance.web.form.FieldManagerM
             return $.Deferred().reject();
         }
     },
-    switch_mode: function(source, options) {
+    check_actual_mode: function(source, options) {
         var self = this;
         if(this.get("actual_mode") === "view") {
             self.$element.removeClass('oe_form_editable').addClass('oe_form_readonly');
@@ -3563,12 +3563,13 @@ instance.web.form.FieldMany2ManyTags = instance.web.form.AbstractField.extend(in
     render_value: function() {
         var self = this;
         var dataset = new instance.web.DataSetStatic(this, this.field.relation, self.view.dataset.get_context());
+        var values = self.get("value")
         var handle_names = function(data) {
             var indexed = {};
             _.each(data, function(el) {
                 indexed[el[0]] = el;
             });
-            data = _.map(self.get("value"), function(el) { return indexed[el]; });
+            data = _.map(values, function(el) { return indexed[el]; });
             if (! self.get("effective_readonly")) {
                 self.tags.containerElement().children().remove();
                 $("textarea", self.$element).css("padding-left", "3px");
@@ -3577,8 +3578,8 @@ instance.web.form.FieldMany2ManyTags = instance.web.form.AbstractField.extend(in
                 self.$element.html(QWeb.render("FieldMany2ManyTag", {elements: data}));
             }
         };
-        if (! self.get('values') || self.get('values').length > 0) {
-            this._display_orderer.add(dataset.name_get(self.get("value"))).then(handle_names);
+        if (! values || values.length > 0) {
+            this._display_orderer.add(dataset.name_get(values)).then(handle_names);
         } else {
             handle_names([]);
         }