From 1464f79b90019a4653c1b2d93ebe44960f2d33c7 Mon Sep 17 00:00:00 2001 From: Xavier Morel Date: Mon, 17 Aug 2015 11:31:13 +0200 Subject: [PATCH] [FIX] ir_fields_converter: make abstract This is only a model in case third parties need to override stuff, it has no field and no reason to be a "concrete" model. Also * remove corresponding access rule giving CRUD to every user * remove unnecessary import * replace set() call by set literal * replace dict(generator_expr) by dict comprehensions --- openerp/addons/base/ir/ir_fields.py | 17 ++++++++--------- .../addons/base/security/ir.model.access.csv | 1 - 2 files changed, 8 insertions(+), 10 deletions(-) diff --git a/openerp/addons/base/ir/ir_fields.py b/openerp/addons/base/ir/ir_fields.py index 69dbe144f87..4b1d3bc34a1 100644 --- a/openerp/addons/base/ir/ir_fields.py +++ b/openerp/addons/base/ir/ir_fields.py @@ -1,5 +1,4 @@ # -*- coding: utf-8 -*- -import cStringIO import datetime import functools import itertools @@ -11,13 +10,13 @@ import pytz from openerp import models, api, _ from openerp.tools import DEFAULT_SERVER_DATE_FORMAT, DEFAULT_SERVER_DATETIME_FORMAT, ustr -REFERENCING_FIELDS = set([None, 'id', '.id']) +REFERENCING_FIELDS = {None, 'id', '.id'} def only_ref_fields(record): - return dict((k, v) for k, v in record.iteritems() - if k in REFERENCING_FIELDS) + return {k: v for k, v in record.iteritems() + if k in REFERENCING_FIELDS} def exclude_ref_fields(record): - return dict((k, v) for k, v in record.iteritems() - if k not in REFERENCING_FIELDS) + return {k: v for k, v in record.iteritems() + if k not in REFERENCING_FIELDS} CREATE = lambda values: (0, False, values) UPDATE = lambda id, values: (1, id, values) @@ -34,7 +33,7 @@ class ImportWarning(Warning): class ConversionNotFound(ValueError): pass -class ir_fields_converter(models.Model): +class ir_fields_converter(models.AbstractModel): _name = 'ir.fields.converter' @api.model @@ -45,7 +44,7 @@ class ir_fields_converter(models.Model): if isinstance(error_params, basestring): error_params = sanitize(error_params) elif isinstance(error_params, dict): - error_params = dict((k, sanitize(v)) for k, v in error_params.iteritems()) + error_params = {k: sanitize(v) for k, v in error_params.iteritems()} elif isinstance(error_params, tuple): error_params = tuple(map(sanitize, error_params)) return error_type(error_msg % error_params, error_args) @@ -72,7 +71,7 @@ class ir_fields_converter(models.Model): def fn(record, log): converted = {} for field, value in record.iteritems(): - if field in (None, 'id', '.id'): + if field in REFERENCING_FIELDS: continue if not value: converted[field] = False diff --git a/openerp/addons/base/security/ir.model.access.csv b/openerp/addons/base/security/ir.model.access.csv index 25c0dc2ca5f..ff87901122c 100644 --- a/openerp/addons/base/security/ir.model.access.csv +++ b/openerp/addons/base/security/ir.model.access.csv @@ -5,7 +5,6 @@ "access_ir_cron_user","ir_cron user","model_ir_cron","group_user",1,0,0,0 "access_ir_exports_group_system","ir_exports group_system","model_ir_exports","base.group_user",1,1,1,1 "access_ir_exports_line_group_system","ir_exports_line group_system","model_ir_exports_line","base.group_user",1,1,1,1 -"access_ir_fields_converter_group_system","ir_fields_converter","model_ir_fields_converter","base.group_user",1,1,1,1 "access_ir_model_group_erp_manager","ir_model group_erp_manager","model_ir_model","group_erp_manager",1,1,1,1 "access_ir_model_constraint_group_erp_manager","ir_model_constraint group_erp_manager","model_ir_model_constraint","group_erp_manager",1,1,1,1 "access_ir_model_relation_group_erp_manager","ir_model_relation group_erp_manager","model_ir_model_relation","group_erp_manager",1,1,1,1