Force readonly on screen to override any states attributes
This commit is contained in:
1 parent
7177a4db88
commit
3de8a20907
3 files changed
+7
-5
No files matched your search
@@ -106,6 +106,8 @@ class CharField(object):
|
||||
eval(state_changes[key], values)
|
||||
elif key in self.attrs:
|
||||
self.get_state_attrs(model)[key] = self.attrs[key]
|
||||
if model.mgroup.readonly:
|
||||
self.get_state_attrs(model)['readonly'] = True
|
||||
if 'value' in state_changes:
|
||||
value = eval(state_changes['value'], values)
|
||||
if value:
|
||||
|
||||
@@ -68,7 +68,8 @@ class ModelList(list):
|
||||
|
||||
class ModelRecordGroup(SignalEvent):
|
||||
|
||||
def __init__(self, resource, fields, window, ids=None, parent=None, context=None):
|
||||
def __init__(self, resource, fields, window, ids=None, parent=None, context=None,
|
||||
readonly=False):
|
||||
super(ModelRecordGroup, self).__init__()
|
||||
self.window = window
|
||||
self.parent = parent
|
||||
@@ -84,6 +85,7 @@ class ModelRecordGroup(SignalEvent):
|
||||
self.load(ids)
|
||||
self.model_removed = []
|
||||
self.on_write = ''
|
||||
self.readonly = readonly
|
||||
|
||||
@staticmethod
|
||||
def mfields_load(fkeys, models):
|
||||
|
||||
@@ -60,7 +60,8 @@ class Screen(SignalEvent):
|
||||
self.parent = parent
|
||||
self.window = window
|
||||
models = ModelRecordGroup(model_name, self.fields, self.window,
|
||||
parent=self.parent, context=self.context)
|
||||
parent=self.parent, context=self.context,
|
||||
readonly=readonly)
|
||||
self.models_set(models)
|
||||
self.current_model = None
|
||||
self.screen_container = ScreenContainer()
|
||||
@@ -69,7 +70,6 @@ class Screen(SignalEvent):
|
||||
self.__current_view = 0
|
||||
self.tree_saves = tree_saves
|
||||
self.limit = limit
|
||||
self.readonly = readonly
|
||||
self.form = form
|
||||
self.fields_view_tree = None
|
||||
self.exclude_field = exclude_field
|
||||
@@ -274,8 +274,6 @@ class Screen(SignalEvent):
|
||||
attrs = node_attributes(node)
|
||||
if attrs.get('widget', False):
|
||||
attrs['type'] = attrs['widget']
|
||||
if self.readonly:
|
||||
attrs['readonly'] = 1
|
||||
try:
|
||||
fields[str(attrs['name'])].update(attrs)
|
||||
except:
|
||||
|
||||
Reference in new issue
Block a user