45 lines
1.1 KiB
Python
45 lines
1.1 KiB
Python
# -*- coding: utf-8 -*-
|
|
|
|
|
|
import logging
|
|
import os
|
|
|
|
from lxml import etree
|
|
|
|
from odoo.loglevels import ustr
|
|
from odoo.tools import misc, view_validation
|
|
|
|
_logger = logging.getLogger(__name__)
|
|
|
|
_map_view_validator = None
|
|
|
|
@view_validation.validate('map')
|
|
def schema_map_view(arch, **kwargs):
|
|
global _map_view_validator
|
|
|
|
if _map_view_validator is None:
|
|
with misc.file_open('odex30_web_map/views/odex30_web_map.rng') as f:
|
|
_map_view_validator = etree.RelaxNG(etree.parse(f))
|
|
|
|
if _map_view_validator.validate(arch):
|
|
return True
|
|
|
|
for error in _map_view_validator.error_log:
|
|
_logger.error(ustr(error))
|
|
return False
|
|
|
|
# @view_validation.validate('map')
|
|
# def schema_map_view(arch, **kwargs):
|
|
# global _map_view_validator
|
|
#
|
|
# if _map_view_validator is None:
|
|
# with misc.file_open(os.path.join('odex30_web_map', 'views', 'odex30_web_map.rng')) as f:
|
|
# _map_view_validator = etree.RelaxNG(etree.parse(f))
|
|
#
|
|
# if _map_view_validator.validate(arch):
|
|
# return True
|
|
#
|
|
# for error in _map_view_validator.error_log:
|
|
# _logger.error(ustr(error))
|
|
# return False
|