← Back to team overview

openerp-dev-web team mailing list archive

[Merge] lp:~openerp-dev/openobject-client-web/6.0-opw-4547-sma into lp:openobject-client-web/6.0

 

Sananaz (Open ERP) has proposed merging lp:~openerp-dev/openobject-client-web/6.0-opw-4547-sma into lp:openobject-client-web/6.0.

Requested reviews:
  OpenERP Core Team (openerp)
Related bugs:
  Bug #699960 in OpenERP Web Client: "[Trunk] many2many with many records doesn't load"
  https://bugs.launchpad.net/openobject-client-web/+bug/699960

For more details, see:
https://code.launchpad.net/~openerp-dev/openobject-client-web/6.0-opw-4547-sma/+merge/55322

Hello xavier,

I am already discuss this problem with you.

In listview when records are 500/unlimited then firefox does not load the records.
Due to firefox headers issue. I have injecting cherrypy.request.terp_concurrency_info in the json responses instead of using headers for ListView.

Thank you.
-- 
https://code.launchpad.net/~openerp-dev/openobject-client-web/6.0-opw-4547-sma/+merge/55322
Your team OpenERP R&D Team is subscribed to branch lp:~openerp-dev/openobject-client-web/6.0-opw-4547-sma.
=== modified file 'addons/openerp/controllers/listgrid.py'
--- addons/openerp/controllers/listgrid.py	2011-02-02 12:11:36 +0000
+++ addons/openerp/controllers/listgrid.py	2011-03-29 11:53:27 +0000
@@ -299,7 +299,10 @@
 
         if frm.logs and frm.screen.view_type == 'tree':
             server_logs = ustr(frm.logs.render())
-        return dict(ids=ids, count=count, view=view, logs=server_logs)
+
+        concurrency_info = getattr(cherrypy.request, 'terp_concurrency_info', None)
+
+        return dict(ids=ids, count=count, view=view, logs=server_logs, concurrency_info=concurrency_info)
 
     @expose('json')
     def button_action(self, **kw):

=== modified file 'addons/openerp/static/javascript/listgrid.js'
--- addons/openerp/static/javascript/listgrid.js	2011-02-17 12:15:43 +0000
+++ addons/openerp/static/javascript/listgrid.js	2011-03-29 11:53:27 +0000
@@ -33,6 +33,7 @@
     this.__init__(name);
 };
 
+
 ListView.prototype = {
 
     __init__: function(name) {
@@ -844,6 +845,7 @@
                                 : 'arrow_up.gif'
                             )}));
                 }
+                update_concurrency_info(obj.concurrency_info)
             }
         });
     }
@@ -924,3 +926,9 @@
         }
     }
 }
+
+function update_concurrency_info(concurrencyInfo) {
+    if (!concurrencyInfo)
+    	return;
+    updateConcurrencyInfo(concurrencyInfo);
+}

=== modified file 'addons/openerp/widgets/listgrid.py'
--- addons/openerp/widgets/listgrid.py	2011-03-16 10:03:57 +0000
+++ addons/openerp/widgets/listgrid.py	2011-03-29 11:53:27 +0000
@@ -182,10 +182,13 @@
                 data = proxy.read(ids, fields.keys() + ['__last_update'], ctx)
             except:
                 pass
-            
+
             ConcurrencyInfo.update(self.model, data)
+            if cherrypy.response.headers.has_key('X-Concurrency-Info'):
+                # Delete 'X-Concurrency-Info' from header fixed firefox header problem #699960.
+                del cherrypy.response.headers['X-Concurrency-Info']
             self.concurrency_info = ConcurrencyInfo(self.model, ids)
-            
+
             order_data = [(d['id'], d) for d in data]
             orderer = dict(zip(ids, count()))
             ordering = sorted(order_data, key=lambda object: orderer[object[0]])


Follow ups