From 2d296cb77922d33be2dc45b900191fac34bda429 Mon Sep 17 00:00:00 2001 From: Antony Lesuisse Date: Sun, 31 Aug 2014 16:56:44 +0200 Subject: [PATCH] [MERGE] ir-ui-view split active and show_customize Split the ternary field application in active and show_customize, all four possible value are now needed for the customize theme popup. --- addons/report_webkit/convert.py | 2 +- addons/website/controllers/main.py | 15 ++++---- addons/website/models/ir_ui_view.py | 11 +++--- addons/website/views/themes.xml | 24 ++++++------ addons/website/views/website_templates.xml | 6 +-- .../views/website_blog_templates.xml | 24 ++++++------ addons/website_crm/views/website_crm.xml | 4 +- .../views/website_crm_partner_assign.xml | 2 +- .../views/website_customer.xml | 4 +- addons/website_event/views/website_event.xml | 12 +++--- .../views/website_event_sale.xml | 2 +- .../views/website_event.xml | 6 +-- addons/website_hr/views/website_hr.xml | 2 +- .../views/templates.xml | 6 +-- .../views/website_membership.xml | 4 +- .../website_quote/views/website_quotation.xml | 6 +-- addons/website_sale/views/templates.xml | 26 ++++++------- openerp/addons/base/ir/ir_ui_view.py | 30 ++++----------- openerp/addons/base/ir/ir_ui_view_view.xml | 5 ++- openerp/addons/base/tests/test_views.py | 16 ++++---- openerp/import_xml.rng | 10 +---- openerp/tools/convert.py | 37 +++++++++++-------- 22 files changed, 120 insertions(+), 134 deletions(-) diff --git a/addons/report_webkit/convert.py b/addons/report_webkit/convert.py index e30209a77dc..bfc1100c3ad 100644 --- a/addons/report_webkit/convert.py +++ b/addons/report_webkit/convert.py @@ -41,7 +41,7 @@ class WebkitXMLImport(original_xml_import): # The solution is not meant to be long term solution, but at least # allows chaining of several overrides of the _tag_report method, # and does not require a copy/paste of the original code. - def _tag_report(self, cr, rec, data_node=None): + def _tag_report(self, cr, rec, data_node=None, mode=None): report_id = super(WebkitXMLImport, self)._tag_report(cr, rec, data_node) if rec.get('report_type') == 'webkit': header = rec.get('webkit_header') diff --git a/addons/website/controllers/main.py b/addons/website/controllers/main.py index 11fed713fbd..d5d9b7582e5 100644 --- a/addons/website/controllers/main.py +++ b/addons/website/controllers/main.py @@ -186,19 +186,18 @@ class Website(openerp.addons.web.controllers.main.Home): request.cr, request.uid, 'website', 'theme') views = Views.search(request.cr, request.uid, [ ('inherit_id', '=', theme_template_id), - ('application', '=', 'enabled'), ], context=request.context) Views.write(request.cr, request.uid, views, { - 'application': 'disabled', - }, context=request.context) + 'active': False, + }, context=dict(request.context or {}, active_test=True)) if theme_id: module, xml_id = theme_id.split('.') _, view_id = imd.get_object_reference( request.cr, request.uid, module, xml_id) Views.write(request.cr, request.uid, [view_id], { - 'application': 'enabled' - }, context=request.context) + 'active': True + }, context=dict(request.context or {}, active_test=True)) return request.render('website.themes', {'theme_changed': True}) @@ -242,13 +241,13 @@ class Website(openerp.addons.web.controllers.main.Home): user_groups = set(user.groups_id) views = request.registry["ir.ui.view"]\ - ._views_get(request.cr, request.uid, xml_id, context=request.context) + ._views_get(request.cr, request.uid, xml_id, context=dict(request.context or {}, active_test=False)) done = set() result = [] for v in views: if not user_groups.issuperset(v.groups_id): continue - if full or (v.application != 'always' and v.inherit_id.id != view_theme_id): + if full or (v.customize_show and v.inherit_id.id != view_theme_id): if v.inherit_id not in done: result.append({ 'name': v.inherit_id.name, @@ -265,7 +264,7 @@ class Website(openerp.addons.web.controllers.main.Home): 'xml_id': v.xml_id, 'inherit_id': v.inherit_id.id, 'header': False, - 'active': v.application in ('always', 'enabled'), + 'active': v.active, }) return result diff --git a/addons/website/models/ir_ui_view.py b/addons/website/models/ir_ui_view.py index 9c7ec56d186..da9de182eb8 100644 --- a/addons/website/models/ir_ui_view.py +++ b/addons/website/models/ir_ui_view.py @@ -1,8 +1,5 @@ # -*- coding: utf-8 -*- import copy -import re -import simplejson -import werkzeug from lxml import etree, html @@ -18,9 +15,11 @@ class view(osv.osv): 'website_meta_title': fields.char("Website meta title", size=70, translate=True), 'website_meta_description': fields.text("Website meta description", size=160, translate=True), 'website_meta_keywords': fields.char("Website meta keywords", translate=True), + 'customize_show': fields.boolean("Show As Optional Inherit"), } _defaults = { 'page': False, + 'customize_show': False, } @@ -68,15 +67,14 @@ class view(osv.osv): extensions = view.inherit_children_ids if not options: # only active children - extensions = (v for v in view.inherit_children_ids - if v.application in ('always', 'enabled')) + extensions = (v for v in view.inherit_children_ids if v.active) # Keep options in a deterministic order regardless of their applicability for extension in sorted(extensions, key=lambda v: v.id): for r in self._views_get( cr, uid, extension, # only return optional grandchildren if this child is enabled - options=extension.application in ('always', 'enabled'), + options=extension.active, context=context, root=False): if r not in result: result.append(r) @@ -214,3 +212,4 @@ class view(osv.osv): view = self.browse(cr, SUPERUSER_ID, res_id, context=context) if view.model_data_id: view.model_data_id.write({'noupdate': True}) + diff --git a/addons/website/views/themes.xml b/addons/website/views/themes.xml index a2408133207..bfa0bd2e4b5 100644 --- a/addons/website/views/themes.xml +++ b/addons/website/views/themes.xml @@ -203,82 +203,82 @@ All Default Themes --> -