Ensure rec_name is a char, text type

Model.default_get with 'default_rec_name' context relies on the fact that
rec_name is a string base field.

issue6630
review36501002
This commit is contained in:
Cédric Krier committed 2017-07-26 23:43:00 +02:00
1 parent 6f8582d168
commit 6b3551c834
3 files changed
+14 -4

No files matched your search

-1
View File
@@ -913,7 +913,6 @@ class ActionActWindow(ActionMixin, ModelSQL, ModelView):
class ActionActWindowView(ModelSQL, ModelView):
"Action act window view"
__name__ = 'ir.action.act_window.view'
_rec_name = 'view'
sequence = fields.Integer('Sequence', required=True)
view = fields.Many2One('ir.ui.view', 'View', required=True,
ondelete='CASCADE')
+14 -2
View File
@@ -356,7 +356,6 @@ class ModelField(ModelSQL, ModelView):
class ModelAccess(ModelSQL, ModelView):
"Model access"
__name__ = 'ir.model.access'
_rec_name = 'model'
model = fields.Many2One('ir.model', 'Model', required=True,
ondelete="CASCADE")
group = fields.Many2One('res.group', 'Group',
@@ -412,6 +411,13 @@ class ModelAccess(ModelSQL, ModelView):
def default_perm_delete():
return False
def get_rec_name(self, name):
return self.model.rec_name
@classmethod
def search_rec_name(cls, name, clause):
return [('model',) + tuple(clause[1:])]
@classmethod
def get_access(cls, models):
'Return access for models'
@@ -540,7 +546,6 @@ class ModelAccess(ModelSQL, ModelView):
class ModelFieldAccess(ModelSQL, ModelView):
"Model Field Access"
__name__ = 'ir.model.field.access'
_rec_name = 'field'
field = fields.Many2One('ir.model.field', 'Field', required=True,
ondelete='CASCADE')
group = fields.Many2One('res.group', 'Group', ondelete='CASCADE')
@@ -590,6 +595,13 @@ class ModelFieldAccess(ModelSQL, ModelView):
def default_perm_delete():
return True
def get_rec_name(self, name):
return self.field.rec_name
@classmethod
def search_rec_name(cls, name, clause):
return [('field',) + tuple(clause[1:])]
@classmethod
def get_access(cls, models):
'Return fields access for models'
-1
View File
@@ -379,7 +379,6 @@ class ModuleDependency(ModelSQL, ModelView):
class ModuleConfigWizardItem(ModelSQL, ModelView):
"Config wizard to run after activating a module"
__name__ = 'ir.module.config_wizard.item'
_rec_name = 'action'
action = fields.Many2One('ir.action', 'Action', required=True,
readonly=True)
sequence = fields.Integer('Sequence', required=True)