Vidhin Mehta  (OpenERP) has proposed merging 
lp:~openerp-dev/openerp-web/trunk-timesheet-vme 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-timesheet-vme/+merge/134853

# 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-timesheet-vme/+merge/134853
Your team OpenERP R&D Team is subscribed to branch 
lp:~openerp-dev/openerp-web/trunk-timesheet-vme.
=== modified file 'addons/web/static/src/js/views.js'
--- addons/web/static/src/js/views.js	2012-11-16 10:08:40 +0000
+++ addons/web/static/src/js/views.js	2012-11-19 09:35:39 +0000
@@ -446,6 +446,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
@@ -513,7 +514,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 || {});
@@ -556,7 +557,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-16 10:08:40 +0000
+++ addons/web/static/src/xml/base.xml	2012-11-19 09:35:39 +0000
@@ -488,7 +488,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     : openerp-dev-gtk@lists.launchpad.net
Unsubscribe : https://launchpad.net/~openerp-dev-gtk
More help   : https://help.launchpad.net/ListHelp

Reply via email to