Ravi Gadhia (OpenERP) has proposed merging
lp:~openerp-dev/openobject-client/trunk-bug-885581-rga into
lp:openobject-client.
Requested reviews:
Naresh(OpenERP) (nch-openerp)
Related bugs:
Bug #885581 in OpenERP GTK Client: "6.1-dev GTK client - fields remain
read-only"
https://bugs.launchpad.net/openobject-client/+bug/885581
For more details, see:
https://code.launchpad.net/~openerp-dev/openobject-client/trunk-bug-885581-rga/+merge/82377
--
https://code.launchpad.net/~openerp-dev/openobject-client/trunk-bug-885581-rga/+merge/82377
Your team OpenERP R&D Team is subscribed to branch
lp:~openerp-dev/openobject-client/trunk-bug-885581-rga.
=== modified file 'bin/widget/model/field.py'
--- bin/widget/model/field.py 2011-11-04 11:01:12 +0000
+++ bin/widget/model/field.py 2011-11-16 10:21:23 +0000
@@ -157,17 +157,18 @@
def state_set(self, model, state='draft'):
ro = model.mgroup._readonly
+ group_field = self.get_state_attrs(model).get('group_field')
state_changes = dict(self.attrs.get('states',{}).get(state,[]))
if 'readonly' in state_changes:
self.get_state_attrs(model)['readonly'] = state_changes.get('readonly', False)
else:
- if self.attrs.get('readonly', False) or ro:
- self.get_state_attrs(model)['readonly'] = True
+ if not group_field:
+ self.get_state_attrs(model)['readonly'] = self.attrs.get('readonly', False) or ro
if 'required' in state_changes:
self.get_state_attrs(model)['required'] = state_changes.get('required', False)
else:
- if self.attrs.get('required', False):
- self.get_state_attrs(model)['required'] = self.attrs['required']
+ if not group_field:
+ self.get_state_attrs(model)['required'] = self.attrs.get('required', False)
if 'value' in state_changes:
self.set(model, state_changes['value'], modified=True)
=== modified file 'bin/widget/view/form_gtk/parser.py'
--- bin/widget/view/form_gtk/parser.py 2011-10-19 10:48:12 +0000
+++ bin/widget/view/form_gtk/parser.py 2011-11-16 10:21:23 +0000
@@ -158,8 +158,7 @@
sa = getattr(self.widget, 'attrs') or {}
attrs_changes = eval(sa.get('attrs',"{}"),{'uid':rpc.session.uid})
for k,v in attrs_changes.items():
- result = True
- result = result and tools.calc_condition(self, model, v)
+ result = tools.calc_condition(self, model, v)
if k == 'invisible':
func = ['show_all', 'hide_all'][bool(result)]
getattr(self.widget, func)()
@@ -169,6 +168,7 @@
if isinstance(self.widget, gtk.Frame):
for name, wid in self.group_child.iteritems():
model.mgroup.mfields[name].get_state_attrs(model)[k] = result
+ model.mgroup.mfields[name].get_state_attrs(model)['group_field'] = True
elif k == 'readonly':
self.widget.set_sensitive(not result)
_______________________________________________
Mailing list: https://launchpad.net/~openerp-dev-gtk
Post to : [email protected]
Unsubscribe : https://launchpad.net/~openerp-dev-gtk
More help : https://help.launchpad.net/ListHelp