diff options
| author | Raphael Collet <rco@openerp.com> | 2016-09-02 16:16:50 +0200 |
|---|---|---|
| committer | Raphael Collet <rco@openerp.com> | 2016-09-02 17:28:12 +0200 |
| commit | 4a700d0ad9eecb00233f734042a96c3959aa7e83 (patch) | |
| tree | 7dffd79a4d3d7e19110a0f509e37ff8ff9eedc36 /odoo/tools | |
| parent | 9e64f9f9514194d74e166b032add8511182f2677 (diff) | |
[FIX] odoo: rename imports and adapt import hooks
Diffstat (limited to 'odoo/tools')
| -rw-r--r-- | odoo/tools/amount_to_text_en.py | 2 | ||||
| -rw-r--r-- | odoo/tools/cache.py | 4 | ||||
| -rw-r--r-- | odoo/tools/config.py | 36 | ||||
| -rw-r--r-- | odoo/tools/convert.py | 16 | ||||
| -rw-r--r-- | odoo/tools/mail.py | 8 | ||||
| -rw-r--r-- | odoo/tools/misc.py | 30 | ||||
| -rw-r--r-- | odoo/tools/osutil.py | 2 | ||||
| -rw-r--r-- | odoo/tools/safe_eval.py | 16 | ||||
| -rw-r--r-- | odoo/tools/test_reports.py | 14 | ||||
| -rw-r--r-- | odoo/tools/translate.py | 30 | ||||
| -rw-r--r-- | odoo/tools/yaml_import.py | 12 |
11 files changed, 85 insertions, 85 deletions
diff --git a/odoo/tools/amount_to_text_en.py b/odoo/tools/amount_to_text_en.py index 46657251701..3dd138f43fa 100644 --- a/odoo/tools/amount_to_text_en.py +++ b/odoo/tools/amount_to_text_en.py @@ -89,7 +89,7 @@ def amount_to_text(nbr, lang='en', currency='euro'): 1654: thousands six cent cinquante-quatre. """ - import openerp.loglevels as loglevels + import odoo.loglevels as loglevels # if nbr > 10000000: # _logger.warning(_("Number too large '%d', can not translate it")) # return str(nbr) diff --git a/odoo/tools/cache.py b/odoo/tools/cache.py index e71ab9dd121..ac776eefa74 100644 --- a/odoo/tools/cache.py +++ b/odoo/tools/cache.py @@ -2,7 +2,7 @@ # Part of Odoo. See LICENSE file for full copyright and licensing details. # decorator makes wrappers that have the same API as their wrapped function; -# this is important for the openerp.api.guess() that relies on signatures +# this is important for the odoo.api.guess() that relies on signatures from collections import defaultdict from decorator import decorator from inspect import formatargspec, getargspec @@ -196,7 +196,7 @@ class dummy_cache(object): def log_ormcache_stats(sig=None, frame=None): """ Log statistics of ormcache usage by database, model, and method. """ - from openerp.modules.registry import Registry + from odoo.modules.registry import Registry import threading me = threading.currentThread() diff --git a/odoo/tools/config.py b/odoo/tools/config.py index 3526b1738de..7c81652b68f 100644 --- a/odoo/tools/config.py +++ b/odoo/tools/config.py @@ -1,15 +1,15 @@ -#openerp.loggers.handlers. -*- coding: utf-8 -*- +#odoo.loggers.handlers. -*- coding: utf-8 -*- # Part of Odoo. See LICENSE file for full copyright and licensing details. import ConfigParser import optparse import os import sys -import openerp -import openerp.conf -import openerp.loglevels as loglevels +import odoo +import odoo.conf +import odoo.loglevels as loglevels import logging -import openerp.release as release +import odoo.release as release import appdirs class MyOption (optparse.Option, object): @@ -154,11 +154,11 @@ class configmanager(object): group.add_option("--logfile", dest="logfile", help="file where the server log will be stored") group.add_option("--logrotate", dest="logrotate", action="store_true", my_default=False, help="enable logfile rotation") group.add_option("--syslog", action="store_true", dest="syslog", my_default=False, help="Send the log to the syslog server") - group.add_option('--log-handler', action="append", default=[], my_default=DEFAULT_LOG_HANDLER, metavar="PREFIX:LEVEL", help='setup a handler at LEVEL for a given PREFIX. An empty PREFIX indicates the root logger. This option can be repeated. Example: "openerp.orm:DEBUG" or "werkzeug:CRITICAL" (default: ":INFO")') - group.add_option('--log-request', action="append_const", dest="log_handler", const="openerp.http.rpc.request:DEBUG", help='shortcut for --log-handler=openerp.http.rpc.request:DEBUG') - group.add_option('--log-response', action="append_const", dest="log_handler", const="openerp.http.rpc.response:DEBUG", help='shortcut for --log-handler=openerp.http.rpc.response:DEBUG') - group.add_option('--log-web', action="append_const", dest="log_handler", const="openerp.http:DEBUG", help='shortcut for --log-handler=openerp.http:DEBUG') - group.add_option('--log-sql', action="append_const", dest="log_handler", const="openerp.sql_db:DEBUG", help='shortcut for --log-handler=openerp.sql_db:DEBUG') + group.add_option('--log-handler', action="append", default=[], my_default=DEFAULT_LOG_HANDLER, metavar="PREFIX:LEVEL", help='setup a handler at LEVEL for a given PREFIX. An empty PREFIX indicates the root logger. This option can be repeated. Example: "odoo.orm:DEBUG" or "werkzeug:CRITICAL" (default: ":INFO")') + group.add_option('--log-request', action="append_const", dest="log_handler", const="odoo.http.rpc.request:DEBUG", help='shortcut for --log-handler=odoo.http.rpc.request:DEBUG') + group.add_option('--log-response', action="append_const", dest="log_handler", const="odoo.http.rpc.response:DEBUG", help='shortcut for --log-handler=odoo.http.rpc.response:DEBUG') + group.add_option('--log-web', action="append_const", dest="log_handler", const="odoo.http:DEBUG", help='shortcut for --log-handler=odoo.http:DEBUG') + group.add_option('--log-sql', action="append_const", dest="log_handler", const="odoo.sql_db:DEBUG", help='shortcut for --log-handler=odoo.sql_db:DEBUG') group.add_option('--log-db', dest='log_db', help="Logging database", my_default=False) group.add_option('--log-db-level', dest='log_db_level', my_default='warning', help="Logging database level") # For backward-compatibility, map the old log levels to something @@ -297,7 +297,7 @@ class configmanager(object): """ Parse the configuration file (if any) and the command-line arguments. - This method initializes openerp.tools.config and openerp.conf (the + This method initializes odoo.tools.config and openerp.conf (the former should be removed in the furture) with library-wide configuration values. @@ -306,11 +306,11 @@ class configmanager(object): Typical usage of this method: - openerp.tools.config.parse_config(sys.argv[1:]) + odoo.tools.config.parse_config(sys.argv[1:]) """ self._parse_config(args) - openerp.netsvc.init_logger() - openerp.modules.module.initialize_sys_path() + odoo.netsvc.init_logger() + odoo.modules.module.initialize_sys_path() def _parse_config(self, args=None): if args is None: @@ -416,7 +416,7 @@ class configmanager(object): elif isinstance(self.options[arg], basestring) and self.casts[arg].type in optparse.Option.TYPE_CHECKER: self.options[arg] = optparse.Option.TYPE_CHECKER[self.casts[arg].type](self.casts[arg], arg, self.options[arg]) - self.options['root_path'] = os.path.abspath(os.path.expanduser(os.path.expandvars(os.path.dirname(openerp.__file__)))) + self.options['root_path'] = os.path.abspath(os.path.expanduser(os.path.expandvars(os.path.dirname(odoo.__file__)))) if not self.options['addons_path'] or self.options['addons_path']=='None': default_addons = [] base_addons = os.path.join(self.options['root_path'], 'addons') @@ -451,11 +451,11 @@ class configmanager(object): if opt.save: self.save() - openerp.conf.addons_paths = self.options['addons_path'].split(',') + odoo.conf.addons_paths = self.options['addons_path'].split(',') if opt.server_wide_modules: - openerp.conf.server_wide_modules = map(lambda m: m.strip(), opt.server_wide_modules.split(',')) + odoo.conf.server_wide_modules = map(lambda m: m.strip(), opt.server_wide_modules.split(',')) else: - openerp.conf.server_wide_modules = ['web','web_kanban'] + odoo.conf.server_wide_modules = ['web','web_kanban'] def _is_addons_path(self, path): for f in os.listdir(path): diff --git a/odoo/tools/convert.py b/odoo/tools/convert.py index e711e3828e3..089210d6f99 100644 --- a/odoo/tools/convert.py +++ b/odoo/tools/convert.py @@ -15,14 +15,14 @@ from dateutil.relativedelta import relativedelta import pytz from lxml import etree, builder -import openerp -import openerp.release +import odoo +import odoo.release from . import assertion_report from .config import config from .misc import file_open, unquote, ustr, SKIPPED_ELEMENT_TYPES from .translate import _ from .yaml_import import convert_yaml_import -from openerp import SUPERUSER_ID +from odoo import SUPERUSER_ID _logger = logging.getLogger(__name__) @@ -62,7 +62,7 @@ def _get_idref(self, env, model_str, idref): datetime=datetime, timedelta=timedelta, relativedelta=relativedelta, - version=openerp.release.major_version, + version=odoo.release.major_version, ref=self.id_get, pytz=pytz) if model_str: @@ -117,7 +117,7 @@ def _eval_xml(self, node, env): try: return unsafe_eval(a_eval, idref2) except Exception: - logging.getLogger('openerp.tools.convert.init').error( + logging.getLogger('odoo.tools.convert.init').error( 'Could not eval(%s) for %s in %s', a_eval, node.get('name'), env.context) raise def _process(s): @@ -191,7 +191,7 @@ def _eval_xml(self, node, env): model = env[node.get('model', '')] method = node.get('name') # this one still depends on the old API - return openerp.api.call_kw(model, method, args, {}) + return odoo.api.call_kw(model, method, args, {}) elif node.tag == "test": return node.text @@ -811,7 +811,7 @@ form: module.record_id""" % (xml_id,) def __init__(self, cr, module, idref, mode, report=None, noupdate=False, xml_filename=None): self.mode = mode self.module = module - self.env = openerp.api.Environment(cr, SUPERUSER_ID, {}) + self.env = odoo.api.Environment(cr, SUPERUSER_ID, {}) self.cr = cr self.uid = SUPERUSER_ID self.idref = idref @@ -892,7 +892,7 @@ def convert_csv_import(cr, module, fname, csvcontent, idref=None, mode='init', 'module': module, 'noupdate': noupdate, } - env = openerp.api.Environment(cr, SUPERUSER_ID, context) + env = odoo.api.Environment(cr, SUPERUSER_ID, context) result = env[model].load(fields, datas) if any(msg['type'] == 'error' for msg in result['messages']): # Report failed import and abort module install diff --git a/odoo/tools/mail.py b/odoo/tools/mail.py index da4ec6fb716..26032f584c2 100644 --- a/odoo/tools/mail.py +++ b/odoo/tools/mail.py @@ -14,8 +14,8 @@ from email.header import decode_header from email.utils import getaddresses, formataddr from lxml import etree -import openerp -from openerp.loglevels import ustr +import odoo +from odoo.loglevels import ustr _logger = logging.getLogger(__name__) @@ -445,13 +445,13 @@ def email_send(email_from, email_to, subject, body, email_cc=None, email_bcc=Non if not cr: db_name = getattr(threading.currentThread(), 'dbname', None) if db_name: - local_cr = cr = openerp.registry(db_name).cursor() + local_cr = cr = odoo.registry(db_name).cursor() else: raise Exception("No database cursor found, please pass one explicitly") # Send Email try: - mail_server_pool = openerp.registry(cr.dbname)['ir.mail_server'] + mail_server_pool = odoo.registry(cr.dbname)['ir.mail_server'] res = False # Pack Message into MIME Object email_msg = mail_server_pool.build_email(email_from, email_to, subject, body, email_cc, email_bcc, reply_to, diff --git a/odoo/tools/misc.py b/odoo/tools/misc.py index 2dbe2bad382..b69ad469e8c 100644 --- a/odoo/tools/misc.py +++ b/odoo/tools/misc.py @@ -40,10 +40,10 @@ from config import config from cache import * from .parse_version import parse_version -import openerp +import odoo # get_encodings, ustr and exception_to_unicode were originally from tools.misc. # There are moved to loglevels until we refactor tools. -from openerp.loglevels import get_encodings, ustr, exception_to_unicode # noqa +from odoo.loglevels import get_encodings, ustr, exception_to_unicode # noqa _logger = logging.getLogger(__name__) @@ -104,14 +104,14 @@ def exec_pg_environ(): See also http://www.postgresql.org/docs/8.4/static/libpq-envars.html """ env = os.environ.copy() - if openerp.tools.config['db_host']: - env['PGHOST'] = openerp.tools.config['db_host'] - if openerp.tools.config['db_port']: - env['PGPORT'] = str(openerp.tools.config['db_port']) - if openerp.tools.config['db_user']: - env['PGUSER'] = openerp.tools.config['db_user'] - if openerp.tools.config['db_password']: - env['PGPASSWORD'] = openerp.tools.config['db_password'] + if odoo.tools.config['db_host']: + env['PGHOST'] = odoo.tools.config['db_host'] + if odoo.tools.config['db_port']: + env['PGPORT'] = str(odoo.tools.config['db_port']) + if odoo.tools.config['db_user']: + env['PGUSER'] = odoo.tools.config['db_user'] + if odoo.tools.config['db_password']: + env['PGPASSWORD'] = odoo.tools.config['db_password'] return env def exec_pg_command(name, *args): @@ -150,7 +150,7 @@ def file_open(name, mode="r", subdir='addons', pathinfo=False): @return fileobject if pathinfo is False else (fileobject, filepath) """ - import openerp.modules as addons + import odoo.modules as addons adps = addons.module.ad_paths rtp = os.path.normcase(os.path.abspath(config['root_path'])) @@ -485,7 +485,7 @@ def scan_languages(): :returns: a list of (lang_code, lang_name) pairs :rtype: [(str, unicode)] """ - csvpath = openerp.modules.module.get_resource_path('base', 'res', 'res.lang.csv') + csvpath = odoo.modules.module.get_resource_path('base', 'res', 'res.lang.csv') try: # read (code, name) from languages in base/res/res.lang.csv result = [] @@ -883,11 +883,11 @@ class mute_logger(object): """Temporary suppress the logging. Can be used as context manager or decorator. - @mute_logger('openerp.plic.ploc') + @mute_logger('odoo.plic.ploc') def do_stuff(): blahblah() - with mute_logger('openerp.foo.bar'): + with mute_logger('odoo.foo.bar'): do_suff() """ @@ -1019,7 +1019,7 @@ def dumpstacks(sig=None, frame=None): for line in extract_stack(stack): code.append(line) - if openerp.evented: + if odoo.evented: # code from http://stackoverflow.com/questions/12510648/in-gevent-how-can-i-dump-stack-traces-of-all-running-greenlets import gc from greenlet import greenlet diff --git a/odoo/tools/osutil.py b/odoo/tools/osutil.py index e7cd0dda4b0..af12c6558b2 100644 --- a/odoo/tools/osutil.py +++ b/odoo/tools/osutil.py @@ -117,7 +117,7 @@ else: CloseHandle(hProcessSnap) from contextlib import contextmanager - from openerp.release import nt_service_name + from odoo.release import nt_service_name def is_running_as_nt_service(): @contextmanager diff --git a/odoo/tools/safe_eval.py b/odoo/tools/safe_eval.py index 2b4a0a07bc7..4d8e5b63d9f 100644 --- a/odoo/tools/safe_eval.py +++ b/odoo/tools/safe_eval.py @@ -23,7 +23,7 @@ import werkzeug from .misc import ustr -import openerp +import odoo unsafe_eval = eval @@ -299,25 +299,25 @@ def safe_eval(expr, globals_dict=None, locals_dict=None, mode="eval", nocopy=Fal c = test_expr(expr, _SAFE_OPCODES, mode=mode) try: return unsafe_eval(c, globals_dict, locals_dict) - except openerp.exceptions.except_orm: + except odoo.exceptions.except_orm: raise - except openerp.exceptions.Warning: + except odoo.exceptions.Warning: raise - except openerp.exceptions.RedirectWarning: + except odoo.exceptions.RedirectWarning: raise - except openerp.exceptions.AccessDenied: + except odoo.exceptions.AccessDenied: raise - except openerp.exceptions.AccessError: + except odoo.exceptions.AccessError: raise except werkzeug.exceptions.HTTPException: raise - except openerp.http.AuthenticationError: + except odoo.http.AuthenticationError: raise except OperationalError: # Do not hide PostgreSQL low-level exceptions, to let the auto-replay # of serialized transactions work its magic raise - except openerp.exceptions.MissingError: + except odoo.exceptions.MissingError: raise except Exception, e: import sys diff --git a/odoo/tools/test_reports.py b/odoo/tools/test_reports.py index ab924b5b4d1..962f84b2ed7 100644 --- a/odoo/tools/test_reports.py +++ b/odoo/tools/test_reports.py @@ -7,17 +7,17 @@ through the code of yaml tests. """ -import openerp -import openerp.report -import openerp.tools as tools +import odoo +import odoo.report +import odoo.tools as tools import logging -from openerp.tools.safe_eval import safe_eval +from odoo.tools.safe_eval import safe_eval from subprocess import Popen, PIPE import os import tempfile _logger = logging.getLogger(__name__) -_test_logger = logging.getLogger('openerp.tests') +_test_logger = logging.getLogger('odoo.tests') def try_report(cr, uid, rname, ids, data=None, context=None, our_module=None, report_type=None): @@ -35,7 +35,7 @@ def try_report(cr, uid, rname, ids, data=None, context=None, our_module=None, re rname_s = rname _test_logger.info(" - Trying %s.create(%r)", rname, ids) - res = openerp.report.render_report(cr, uid, ids, rname_s, data, context=context) + res = odoo.report.render_report(cr, uid, ids, rname_s, data, context=context) if not isinstance(res, tuple): raise RuntimeError("Result of %s.create() should be a (data,format) tuple, now it is a %s" % \ (rname, type(res))) @@ -103,7 +103,7 @@ def try_report_action(cr, uid, action_id, active_model=None, active_ids=None, context = dict(context or {}) # TODO context fill-up - env = openerp.api.Environment(cr, uid, context) + env = odoo.api.Environment(cr, uid, context) def log_test(msg, *args): _test_logger.info(" - " + msg, *args) diff --git a/odoo/tools/translate.py b/odoo/tools/translate.py index 07531254cf1..845b23c44e1 100644 --- a/odoo/tools/translate.py +++ b/odoo/tools/translate.py @@ -20,11 +20,11 @@ from xml.sax.saxutils import escape from babel.messages import extract from lxml import etree -import openerp -from openerp.tools import config -from openerp.tools.misc import file_open, get_iso_codes, SKIPPED_ELEMENT_TYPES -from openerp.tools.osutil import walksymlinks -from openerp import sql_db, SUPERUSER_ID +import odoo +from odoo.tools import config +from odoo.tools.misc import file_open, get_iso_codes, SKIPPED_ELEMENT_TYPES +from odoo.tools.osutil import walksymlinks +from odoo import sql_db, SUPERUSER_ID _logger = logging.getLogger(__name__) @@ -348,7 +348,7 @@ class GettextAlias(object): if hasattr(s, 'cr'): return s.cr, False try: - from openerp.http import request + from odoo.http import request return request.env.cr, False except RuntimeError: pass @@ -387,7 +387,7 @@ class GettextAlias(object): lang = s.localcontext.get('lang') if not lang: try: - from openerp.http import request + from odoo.http import request lang = request.env.lang except RuntimeError: pass @@ -399,7 +399,7 @@ class GettextAlias(object): (cr, dummy) = self._get_cr(frame, allow_create=False) uid = self._get_uid(frame) if cr and uid: - env = openerp.api.Environment(cr, uid, {}) + env = odoo.api.Environment(cr, uid, {}) lang = env['res.users'].context_get()['lang'] return lang @@ -419,7 +419,7 @@ class GettextAlias(object): cr, is_new_cr = self._get_cr(frame) if cr: # Try to use ir.translation to benefit from global cache if possible - env = openerp.api.Environment(cr, SUPERUSER_ID, {}) + env = odoo.api.Environment(cr, SUPERUSER_ID, {}) res = env['ir.translation']._get_source(None, ('code','sql_constraint'), lang, source) else: _logger.debug('no context cursor detected, skipping translation for "%r"', source) @@ -574,7 +574,7 @@ class PoFile(object): return trans_type, name, res_id, source, trad, '\n'.join(comments) def write_infos(self, modules): - import openerp.release as release + import odoo.release as release self.buffer.write("# Translation of %(project)s.\n" \ "# This file contains the translation of the following modules:\n" \ "%(modules)s" \ @@ -776,7 +776,7 @@ def babel_extract_qweb(fileobj, keywords, comment_tags, options): def trans_generate(lang, modules, cr): - env = openerp.api.Environment(cr, SUPERUSER_ID, {}) + env = odoo.api.Environment(cr, SUPERUSER_ID, {}) to_translate = set() def push_translation(module, type, name, id, source, comments=None): @@ -919,7 +919,7 @@ def trans_generate(lang, modules, cr): for m in env['ir.module.module'].search_read([('state', '=', 'installed')], fields=['name']) ] - path_list = [(path, True) for path in openerp.modules.module.ad_paths] + path_list = [(path, True) for path in odoo.modules.module.ad_paths] # Also scan these non-addon paths for bin_path in ['osv', 'report', 'modules', 'service', 'tools']: path_list.append((os.path.join(config['root_path'], bin_path), True)) @@ -982,7 +982,7 @@ def trans_generate(lang, modules, cr): # QWeb template files if fnmatch.fnmatch(root, '*/static/src/xml*'): for fname in fnmatch.filter(files, '*.xml'): - babel_extract_terms(fname, path, root, 'openerp.tools.translate:babel_extract_qweb', + babel_extract_terms(fname, path, root, 'odoo.tools.translate:babel_extract_qweb', extra_comments=[WEB_TRANSLATION_COMMENT]) if not recursive: # due to topdown, first iteration is in first level @@ -1015,7 +1015,7 @@ def trans_load_data(cr, fileobj, fileformat, lang, lang_name=None, verbose=True, if verbose: _logger.info('loading translation file for language %s', lang) - env = openerp.api.Environment(cr, SUPERUSER_ID, context or {}) + env = odoo.api.Environment(cr, SUPERUSER_ID, context or {}) Lang = env['res.lang'] Translation = env['ir.translation'] @@ -1192,6 +1192,6 @@ def load_language(cr, lang): :param lang: language ISO code with optional _underscore_ and l10n flavor (ex: 'fr', 'fr_BE', but not 'fr-BE') :type lang: str """ - env = openerp.api.Environment(cr, SUPERUSER_ID, {}) + env = odoo.api.Environment(cr, SUPERUSER_ID, {}) installer = env['base.language.install'].create({'lang': lang}) installer.lang_install() diff --git a/odoo/tools/yaml_import.py b/odoo/tools/yaml_import.py index 225c0388f8c..93394a48f67 100644 --- a/odoo/tools/yaml_import.py +++ b/odoo/tools/yaml_import.py @@ -11,12 +11,12 @@ import types from lxml import etree import yaml -import openerp +import odoo from . import assertion_report from . import yaml_tag from .config import config from .misc import file_open, DEFAULT_SERVER_DATE_FORMAT, DEFAULT_SERVER_DATETIME_FORMAT -from openerp import SUPERUSER_ID +from odoo import SUPERUSER_ID # YAML import needs both safe and unsafe eval, but let's # default to /safe/. @@ -123,7 +123,7 @@ class YamlInterpreter(object): 'time': time, 'datetime': datetime, 'timedelta': timedelta} - self.env = openerp.api.Environment(self.cr, self.uid, self.context) + self.env = odoo.api.Environment(self.cr, self.uid, self.context) self.sudo_env = self.env def _log(self, *args, **kwargs): @@ -581,7 +581,7 @@ class YamlInterpreter(object): self.uid = self.get_id(node.uid) if node.noupdate: self.noupdate = node.noupdate - self.env = openerp.api.Environment(self.cr, self.uid, self.context) + self.env = odoo.api.Environment(self.cr, self.uid, self.context) self.sudo_env = self.env(user=SUPERUSER_ID) def process_python(self, node): @@ -603,7 +603,7 @@ class YamlInterpreter(object): 'uid': self.uid, 'log': self._log, 'context': self.context, - 'openerp': openerp, + 'openerp': odoo, } try: code_obj = compile(statements, self.filename, 'exec') @@ -684,7 +684,7 @@ class YamlInterpreter(object): else: args = self._eval_params(function.model, params) # this one still depends on the old API - return openerp.api.call_kw(model, function.name, args, {}) + return odoo.api.call_kw(model, function.name, args, {}) def _set_group_values(self, node, values): if node.groups: |
