Vidhin Mehta  (OpenERP) has proposed merging 
lp:~openerp-dev/openerp-web/trunk-ViewManager-fix into lp:openerp-web.

Requested reviews:
  OpenERP R&D Web Team (openerp-dev-web)

For more details, see:
https://code.launchpad.net/~openerp-dev/openerp-web/trunk-ViewManager-fix/+merge/133620

# In *instance.web.ViewManager* it selects only first element to render view 
and not the accurate element.

Test Case:
# goto Human Resources -> My Current Timesheet and switch between form-list.

Solution:
# Given unique "id" to each ViewManager template's *div.oe_view_manager_view*, 
find that "id" and "view_type" to select element.
-- 
https://code.launchpad.net/~openerp-dev/openerp-web/trunk-ViewManager-fix/+merge/133620
Your team OpenERP R&D Team is subscribed to branch 
lp:~openerp-dev/openerp-web/trunk-ViewManager-fix.
=== modified file 'addons/web/static/src/js/views.js'
--- addons/web/static/src/js/views.js	2012-11-08 17:59:10 +0000
+++ addons/web/static/src/js/views.js	2012-11-09 07:42:19 +0000
@@ -441,6 +441,7 @@
         this.flags = flags || {};
         this.registry = instance.web.views;
         this.views_history = [];
+        this.uniqueid_dom = _.uniqueId('view_manager');
     },
     /**
      * @returns {jQuery.Deferred} initial view loading promise
@@ -508,7 +509,7 @@
             _.each(_.keys(self.views), function(view_name) {
                 var controller = self.views[view_name].controller;
                 if (controller) {
-                    var container = self.$el.find(".oe_view_manager_view_" + view_name + ":first");
+                    var container = self.$el.find("#" + self.uniqueid_dom + ".oe_view_manager_view_" + view_name);
                     if (view_name === view_type) {
                         container.show();
                         controller.do_show(view_options || {});
@@ -552,7 +553,7 @@
         controller.on('switch_mode', self, this.switch_mode);
         controller.on('previous_view', self, this.prev_view);
         
-        var container = this.$el.find(".oe_view_manager_view_" + view_type);
+        var container = this.$el.find("#" + this.uniqueid_dom + ".oe_view_manager_view_" + view_type);
         var view_promise = controller.appendTo(container);
         this.views[view_type].controller = controller;
         this.views[view_type].deferred.resolve(view_type);

=== modified file 'addons/web/static/src/xml/base.xml'
--- addons/web/static/src/xml/base.xml	2012-11-07 15:19:54 +0000
+++ addons/web/static/src/xml/base.xml	2012-11-09 07:42:19 +0000
@@ -461,7 +461,7 @@
 
         <div class="oe_view_manager_body">
             <t t-foreach="widget.views_src" t-as="view">
-                <div t-attf-class="oe_view_manager_view_#{view.view_type}"/>
+                <div t-attf-class="oe_view_manager_view_#{view.view_type}" t-att-id = "widget.uniqueid_dom"/>
             </t>
         </div>
     </div>

_______________________________________________
Mailing list: https://launchpad.net/~openerp-dev-gtk
Post to     : [email protected]
Unsubscribe : https://launchpad.net/~openerp-dev-gtk
More help   : https://help.launchpad.net/ListHelp

Reply via email to