Better management of readonly on Group
There are some cases where readonly must be always True, otherwise we must rely on the value set.
This commit is contained in:
1 parent
b4192d9340
commit
91c720061b
2 files changed
+14
-8
No files matched your search
@@ -742,8 +742,8 @@ class O2MField(CharField):
|
||||
def state_set(self, record, states=('readonly', 'required', 'invisible')):
|
||||
self._set_default_value(record)
|
||||
super(O2MField, self).state_set(record, states=states)
|
||||
if self.get_state_attrs(record).get('readonly', False):
|
||||
record.value[self.name].readonly = True
|
||||
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]
|
||||
|
||||
@@ -35,17 +35,23 @@ class Group(SignalEvent, list):
|
||||
self.load(ids)
|
||||
self.record_deleted, self.record_removed = [], []
|
||||
self.on_write = set()
|
||||
if self._context.get('_datetime'):
|
||||
self.readonly = True
|
||||
elif not MODELACCESS[self.model_name]['write']:
|
||||
self.readonly = True
|
||||
else:
|
||||
self.readonly = readonly
|
||||
self.__readonly = None
|
||||
self.__id2record = {}
|
||||
self.__field_childs = None
|
||||
self.exclude_field = None
|
||||
self.pool = WeakSet()
|
||||
|
||||
@property
|
||||
def readonly(self):
|
||||
if (self._context.get('_datetime')
|
||||
or not MODELACCESS[self.model_name]['write']):
|
||||
return True
|
||||
return self.__readonly
|
||||
|
||||
@readonly.setter
|
||||
def readonly(self, value):
|
||||
self.__readonly = value
|
||||
|
||||
@property
|
||||
def domain(self):
|
||||
if self.parent and self.child_name:
|
||||
|
||||
Reference in new issue
Block a user