[FIX] website: do not restore page views
authorChristophe Simonis <chs@odoo.com>
Wed, 30 Jul 2014 13:10:22 +0000 (15:10 +0200)
committerChristophe Simonis <chs@odoo.com>
Wed, 30 Jul 2014 13:10:22 +0000 (15:10 +0200)
addons/website/controllers/main.py
addons/website/models/ir_http.py

index 856ab6e..4f2a2a3 100644 (file)
@@ -141,14 +141,19 @@ class Website(openerp.addons.web.controllers.main.Home):
         modules_to_update = []
         for temp_id in templates:
             view = request.registry['ir.ui.view'].browse(request.cr, request.uid, int(temp_id), context=request.context)
+            if view.page:
+                continue
             view.model_data_id.write({
                 'noupdate': False
             })
             if view.model_data_id.module not in modules_to_update:
                 modules_to_update.append(view.model_data_id.module)
-        module_obj = request.registry['ir.module.module']
-        module_ids = module_obj.search(request.cr, request.uid, [('name', 'in', modules_to_update)], context=request.context)
-        module_obj.button_immediate_upgrade(request.cr, request.uid, module_ids, context=request.context)
+
+        if modules_to_update:
+            module_obj = request.registry['ir.module.module']
+            module_ids = module_obj.search(request.cr, request.uid, [('name', 'in', modules_to_update)], context=request.context)
+            if module_ids:
+                module_obj.button_immediate_upgrade(request.cr, request.uid, module_ids, context=request.context)
         return request.redirect(redirect)
 
     @http.route('/website/customize_template_toggle', type='json', auth='user', website=True)
index be6b498..a73e33c 100644 (file)
@@ -137,7 +137,7 @@ class ir_http(orm.AbstractModel):
                 if 'qweb_exception' in values:
                     view = request.registry.get("ir.ui.view")
                     views = view._views_get(request.cr, request.uid, exception.qweb['template'], request.context)
-                    to_reset = [v for v in views if v.model_data_id.noupdate is True]
+                    to_reset = [v for v in views if v.model_data_id.noupdate is True and not v.page]
                     values['views'] = to_reset
             elif code == 403:
                 logger.warn("403 Forbidden:\n\n%s", values['traceback'])