Limit readonly state for xxx2Many

issue5041
review25221002
This commit is contained in:
Cédric Krier committed 2016-06-30 21:42:54 +02:00
1 parent ce6b853b27
commit d1301c7128
4 files changed
+1 -9

No files matched your search

+1
View File
@@ -1,3 +1,4 @@
* Limit readonly state for xxx2Many
* Show records names in relate window title
* Add support for count on Action Window Domains
* Manage custom login process
@@ -721,8 +721,6 @@ class O2MField(Field):
return screen_domain
def validate(self, record, softvalidation=False, pre_validate=None):
if self.attrs.get('readonly'):
return True
invalid = False
ldomain = localize_domain(domain_inversion(
record.group.clean4inversion(pre_validate or []), self.name,
@@ -748,8 +746,6 @@ class O2MField(Field):
def state_set(self, record, states=('readonly', 'required', 'invisible')):
self._set_default_value(record)
super(O2MField, self).state_set(record, states=states)
record.value[self.name].readonly = self.get_state_attrs(record).get(
'readonly', False)
def get_removed_ids(self, record):
return [x.id for x in record.value[self.name].record_removed]
@@ -181,7 +181,6 @@ class Many2Many(Widget):
screen = Screen(self.attrs['relation'], domain=domain,
view_ids=self.attrs.get('view_ids', '').split(','),
mode=['form'], views_preload=self.attrs.get('views', {}),
readonly=self.attrs.get('readonly', False),
context=context)
screen.load([self.screen.current_record.id])
@@ -186,7 +186,6 @@ class One2Many(Widget):
view_ids=attrs.get('view_ids', '').split(','),
views_preload=attrs.get('views', {}),
row_activate=self._on_activate,
readonly=self.attrs.get('readonly', False),
exclude_field=attrs.get('relation_field', None))
self.screen.pre_validate = bool(int(attrs.get('pre_validate', 0)))
self.screen.signal_connect(self, 'record-message', self._sig_label)
@@ -501,16 +500,13 @@ class One2Many(Widget):
if (self.screen.current_view.view_type == 'tree') \
and self.screen.current_view.editable:
self.screen.current_record = None
readonly = False
domain = []
size_limit = None
if record:
readonly = field.get_state_attrs(record).get('readonly', False)
domain = field.domain_get(record)
size_limit = record.expr_eval(self.attrs.get('size'))
if self.screen.domain != domain:
self.screen.domain = domain
self.screen.group.readonly = readonly
self.screen.size_limit = size_limit
self.screen.display()
return True