odoo/addons/base_import_module/models/ir_ui_view.py

29 lines
1015 B
Python

# -*- coding: utf-8 -*-
# Part of Odoo. See LICENSE file for full copyright and licensing details.
from operator import itemgetter
from openerp import api, models
class IrUiView(models.Model):
_inherit = 'ir.ui.view'
@api.model
def _validate_custom_views(self, model):
# views from imported modules should be considered as custom views
result = super(IrUiView, self)._validate_custom_views(model)
self._cr.execute("""
SELECT max(v.id)
FROM ir_ui_view v
LEFT JOIN ir_model_data md ON (md.model = 'ir.ui.view' AND md.res_id = v.id)
LEFT JOIN ir_module_module m ON (m.name = md.module)
WHERE m.imported = true
AND v.model = %s
AND v.active = true
GROUP BY coalesce(v.inherit_id, v.id)
""", [model])
ids = map(itemgetter(0), self._cr.fetchall())
views = self.with_context(load_all_views=True).browse(ids)
return views._check_xml() and result