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

Reply via email to