Add check on ModelSQL for positive id

issue7867
review50631002
This commit is contained in:
Cédric Krier
2018-12-22 00:01:41 +01:00
parent f430589b56
commit b387adc7bc
2 changed files with 16 additions and 9 deletions
+1
View File
@@ -1,3 +1,4 @@
* Add check on ModelSQL for positive id
* New API to read related fields
* Remove implicit fields names in ModelStorage.read
* Check read access on field in search domain (issue7766)
+15 -9
View File
@@ -160,15 +160,6 @@ class ModelSQL(ModelStorage):
@classmethod
def __setup__(cls):
super(ModelSQL, cls).__setup__()
cls._sql_constraints = []
cls._order = [('id', 'ASC')]
cls._sql_error_messages = {}
if issubclass(cls, ModelView):
cls.__rpc__.update({
'history_revisions': RPC(),
})
cls._table = config.get('table', cls.__name__, default=cls._table)
if not cls._table:
cls._table = cls.__name__.replace('.', '_')
@@ -176,6 +167,21 @@ class ModelSQL(ModelStorage):
assert cls._table[-9:] != '__history', \
'Model _table %s cannot end with "__history"' % cls._table
super(ModelSQL, cls).__setup__()
cls._sql_constraints = []
if not callable(cls.table_query):
table = cls.__table__()
cls._sql_constraints.append(
('id_positive', Check(table, table.id >= 0),
"ID must be positive"))
cls._order = [('id', 'ASC')]
cls._sql_error_messages = {}
if issubclass(cls, ModelView):
cls.__rpc__.update({
'history_revisions': RPC(),
})
@classmethod
def __table__(cls):
if callable(cls.table_query):