** Tags added: maintenance

-- 
exception thrown with missing property- trunk
https://bugs.launchpad.net/bugs/625889
You received this bug notification because you are a member of C2C
OERPScenario, which is subscribed to OpenERP OpenObject.

Status in OpenObject GTK Client: New

Bug description:
The following exception is thrown if a field with definition fields.property is 
missing:

  File "/opt/openerp/trunk/client/bin/widget/view/list.py", line 627, in 
__sig_switch
    self.screen.row_activate(self.screen)
  File "/opt/openerp/trunk/client/bin/widget/screen/screen.py", line 76, in 
<lambda>
    self.row_activate = lambda self,screen=None: self.switch_view(screen, 
'form')
  File "/opt/openerp/trunk/client/bin/widget/screen/screen.py", line 470, in 
switch_view
    self.current_model.validate_set()
  File "/opt/openerp/trunk/client/bin/widget/model/record.py", line 181, in 
validate_set
    self.reload()
  File "/opt/openerp/trunk/client/bin/widget/model/record.py", line 256, in 
reload
    return self._reload(self.mgroup.mfields.keys() + [CONCURRENCY_CHECK_FIELD])
  File "/opt/openerp/trunk/client/bin/widget/model/record.py", line 270, in 
_reload
    self.set(value)
  File "/opt/openerp/trunk/client/bin/widget/model/record.py", line 253, in set
    self.signal('record-changed')
  File "/opt/openerp/trunk/client/bin/signal_event.py", line 28, in signal
    fnct(self, signal_data, *data)
  File "/opt/openerp/trunk/client/bin/widget/model/group.py", line 295, in 
_record_changed
    self.signal('model-changed', model)
  File "/opt/openerp/trunk/client/bin/signal_event.py", line 28, in signal
    fnct(self, signal_data, *data)
  File "/opt/openerp/trunk/client/bin/widget/screen/screen.py", line 396, in 
_model_changed
    self.display()
  File "/opt/openerp/trunk/client/bin/widget/screen/screen.py", line 728, in 
display
    self.current_view.display()
  File "/opt/openerp/trunk/client/bin/widget/view/form.py", line 480, in display
    widget.display(model, state)
  File "/opt/openerp/trunk/client/bin/widget/view/form.py", line 52, in display
    self.widget.display(model, modelfield)
  File "/opt/openerp/trunk/client/bin/widget/view/form_gtk/one2many_list.py", 
line 383, in display
    self.pager.search_count()
  File "/opt/openerp/trunk/client/bin/widget/view/form_gtk/pager.py", line 57, 
in search_count
    self.screen.search_count = 
len(self.object.model.pager_cache.get(self.object.name,[]))
TypeError: object of type 'bool' has no len()

The following code change to pager.py fixes the problem:


=== modified file 'bin/widget/view/form_gtk/pager.py'
--- bin/widget/view/form_gtk/pager.py   2010-04-21 11:24:05 +0000
+++ bin/widget/view/form_gtk/pager.py   2010-08-28 15:48:13 +0000
@@ -53,15 +53,19 @@
         return event_box
 
     def search_count(self):
-        self.screen.search_count = 
len(self.object.model.pager_cache.get(self.object.name,[]))
-        try:
-            pos = self.screen.models.models.index(self.screen.current_model)
-        except:
+        # if property not present, will return False
+        if self.object.model.pager_cache.get(self.object.name,[]):
+            self.screen.search_count = 
len(self.object.model.pager_cache.get(self.object.name,[]))
+            try:
+                pos = 
self.screen.models.models.index(self.screen.current_model)
+            except:
+                pos = -1
+            curr_id =  self.screen.current_model and 
self.screen.current_model.id or None
+            self.screen.signal('record-message', (pos + self.screen.offset,
+                len(self.screen.models.models or []) + self.screen.offset,
+                self.screen.search_count, curr_id))
+        else:
             pos = -1
-        curr_id =  self.screen.current_model and self.screen.current_model.id 
or None
-        self.screen.signal('record-message', (pos + self.screen.offset,
-            len(self.screen.models.models or []) + self.screen.offset,
-            self.screen.search_count, curr_id))
 
     def get_active_text(self):
         model = self.object.cb.get_model()



_______________________________________________
Mailing list: https://launchpad.net/~c2c-oerpscenario
Post to     : [email protected]
Unsubscribe : https://launchpad.net/~c2c-oerpscenario
More help   : https://help.launchpad.net/ListHelp

Reply via email to