projects
/
odoo
/
odoo.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
36174fc
)
[IMP] fields: add assertions to check parameters (comodel_name, size, digits)
author
Raphael Collet
<rco@openerp.com>
Wed, 8 Oct 2014 14:32:48 +0000
(16:32 +0200)
committer
Raphael Collet
<rco@openerp.com>
Thu, 9 Oct 2014 08:50:40 +0000
(10:50 +0200)
openerp/fields.py
patch
|
blob
|
history
diff --git
a/openerp/fields.py
b/openerp/fields.py
index
0fae78d
..
df14330
100644
(file)
--- a/
openerp/fields.py
+++ b/
openerp/fields.py
@@
-25,6
+25,7
@@
from copy import copy
from datetime import date, datetime
from functools import partial
from operator import attrgetter
from datetime import date, datetime
from functools import partial
from operator import attrgetter
+from types import NoneType
import logging
import pytz
import xmlrpclib
import logging
import pytz
import xmlrpclib
@@
-983,6
+984,9
@@
class Float(Field):
def _setup_digits(self, env):
""" Setup the digits for `self` and its corresponding column """
self.digits = self._digits(env.cr) if callable(self._digits) else self._digits
def _setup_digits(self, env):
""" Setup the digits for `self` and its corresponding column """
self.digits = self._digits(env.cr) if callable(self._digits) else self._digits
+ if self.digits:
+ assert isinstance(self.digits, (tuple, list)) and len(self.digits) >= 2, \
+ "Float field %s with digits %r, expecting (total, decimal)" % (self, self.digits)
if self.store:
column = env[self.model_name]._columns[self.name]
column.digits_change(env.cr)
if self.store:
column = env[self.model_name]._columns[self.name]
column.digits_change(env.cr)
@@
-1025,6
+1029,11
@@
class Char(_String):
type = 'char'
size = None
type = 'char'
size = None
+ def _setup(self, env):
+ super(Char, self)._setup(env)
+ assert isinstance(self.size, (NoneType, int)), \
+ "Char field %s with non-integer size %r" % (self, self.size)
+
_column_size = property(attrgetter('size'))
_related_size = property(attrgetter('size'))
_description_size = property(attrgetter('size'))
_column_size = property(attrgetter('size'))
_related_size = property(attrgetter('size'))
_description_size = property(attrgetter('size'))
@@
-1303,6
+1312,11
@@
class Reference(Selection):
def __init__(self, selection=None, string=None, **kwargs):
super(Reference, self).__init__(selection=selection, string=string, **kwargs)
def __init__(self, selection=None, string=None, **kwargs):
super(Reference, self).__init__(selection=selection, string=string, **kwargs)
+ def _setup(self, env):
+ super(Reference, self)._setup(env)
+ assert isinstance(self.size, int), \
+ "Reference field %s with non-integer size %r" % (self, self.size)
+
_related_size = property(attrgetter('size'))
_column_size = property(attrgetter('size'))
_related_size = property(attrgetter('size'))
_column_size = property(attrgetter('size'))
@@
-1335,6
+1349,11
@@
class _Relational(Field):
domain = None # domain for searching values
context = None # context for searching values
domain = None # domain for searching values
context = None # context for searching values
+ def _setup(self, env):
+ super(_Relational, self)._setup(env)
+ assert self.comodel_name in env.registry, \
+ "Field %s with unknown comodel_name %r" % (self, self.comodel_name)
+
_description_relation = property(attrgetter('comodel_name'))
_description_context = property(attrgetter('context'))
_description_relation = property(attrgetter('comodel_name'))
_description_context = property(attrgetter('context'))