[Erp5-report] r12934 - /erp5/trunk/products/ERP5/Extensions/InventoryBrain.py

nobody at svn.erp5.org nobody at svn.erp5.org
Wed Feb 21 14:50:00 CET 2007


Author: jerome
Date: Wed Feb 21 14:49:59 2007
New Revision: 12934

URL: http://svn.erp5.org?rev=12934&view=rev
Log:
remove try: except: in getListItemUrl (it was always failing with getMovementHistoryList, because Resource_zGetMovementList doesnot select resource_relative_url).
Instead, if the object is a movement, make a link to the explanation of this movement.

Modified:
    erp5/trunk/products/ERP5/Extensions/InventoryBrain.py

Modified: erp5/trunk/products/ERP5/Extensions/InventoryBrain.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5/Extensions/InventoryBrain.py?rev=12934&r1=12933&r2=12934&view=diff
==============================================================================
--- erp5/trunk/products/ERP5/Extensions/InventoryBrain.py (original)
+++ erp5/trunk/products/ERP5/Extensions/InventoryBrain.py Wed Feb 21 14:49:59 2007
@@ -160,70 +160,75 @@
       return ''
 
   def getListItemUrl(self, cname_id, selection_index, selection_name):
-    # XXX FIXME can catch to many exceptions
-    try:
-      if cname_id in ('getExplanationText', 'getExplanation', ):
-        o = self.getObject()
-        if o is not None:
-          if not getattr(o, 'isDelivery', 0):
-            explanation = o.getExplanationValue()
-          else:
-            # Additional inventory movements are catalogged in stock table
-            # with the inventory's uid. Then they are their own explanation.
-            explanation = o
-          if explanation is not None:
-            return '%s/%s/view' % (
-                    self.portal_url.getPortalObject().absolute_url(),
-                    explanation.getRelativeUrl())
+    """Returns the URL for column `cname_id`. Used by ListBox
+    """
+    if cname_id in ('getExplanationText', 'getExplanation', ):
+      o = self.getObject()
+      if o is not None:
+        if not getattr(o, 'isDelivery', 0):
+          explanation = o.getExplanationValue()
         else:
-          return ''
-      elif (self.resource_relative_url is not None):
-        # A resource is defined, so try to display the movement list
-        resource = self.portal_categories.unrestrictedTraverse(
-                                self.resource_relative_url)
-        form_name = 'Resource_viewMovementHistory'
-        query_kw = {
-          'variation_text': self.variation_text,
-          'selection_name': selection_name,
-          'selection_index': selection_index,
-          'domain_name': selection_name,
-        }
-        # Add parameters to query_kw
-        query_kw_update = {}
-        if cname_id in ('getCurrentInventory', ):
-          query_kw_update = {
-            'simulation_state': list(self.getPortalCurrentInventoryStateList())
-          }
-        elif cname_id in ('getAvailableInventory', ):
-          query_kw_update = {
-            'simulation_state': \
-              list(self.getPortalReservedInventoryStateList()) + \
-              list(self.getPortalCurrentInventoryStateList())
-          }
-        elif cname_id in ('getFutureInventory', 'inventory', ):
-          query_kw_update = {
-            'simulation_state': \
-              list(self.getPortalFutureInventoryStateList()) + \
-              list(self.getPortalReservedInventoryStateList()) + \
-              list(self.getPortalCurrentInventoryStateList())
-          }
-        elif cname_id in ('getInventoryAtDate', ):
-          query_kw_update = {
-            'to_date': self.at_date,
-            'simulation_state': \
-              list(self.getPortalFutureInventoryStateList()) + \
-              list(self.getPortalReservedInventoryStateList())
-          }
-        query_kw.update(query_kw_update)
-        # Return result
-        return '%s/%s?%s&reset=1' % (
-          resource.absolute_url(),
-          form_name,
-          make_query(**query_kw))
-    except (AttributeError, KeyError), e:
-      LOG('InventoryListBrain', PROBLEM,
-        'exception caught in getListItemUrl', e)
-      return ''
+          # Additional inventory movements are catalogged in stock table
+          # with the inventory's uid. Then they are their own explanation.
+          explanation = o
+        if explanation is not None:
+          return '%s/%s/view' % (
+                  self.portal_url.getPortalObject().absolute_url(),
+                  explanation.getRelativeUrl())
+      else:
+        return ''
+    elif getattr(self, 'resource_relative_url', None) is not None:
+      # A resource is defined, so try to display the movement list
+      resource = self.portal_categories.unrestrictedTraverse(
+                              self.resource_relative_url)
+      form_name = 'Resource_viewMovementHistory'
+      query_kw = {
+        'variation_text': self.variation_text,
+        'selection_name': selection_name,
+        'selection_index': selection_index,
+        'domain_name': selection_name,
+      }
+      # Add parameters to query_kw
+      query_kw_update = {}
+      if cname_id in ('getCurrentInventory', ):
+        query_kw_update = {
+          'simulation_state': list(self.getPortalCurrentInventoryStateList())
+        }
+      elif cname_id in ('getAvailableInventory', ):
+        query_kw_update = {
+          'simulation_state': \
+            list(self.getPortalReservedInventoryStateList()) + \
+            list(self.getPortalCurrentInventoryStateList())
+        }
+      elif cname_id in ('getFutureInventory', 'inventory', ):
+        query_kw_update = {
+          'simulation_state': \
+            list(self.getPortalFutureInventoryStateList()) + \
+            list(self.getPortalReservedInventoryStateList()) + \
+            list(self.getPortalCurrentInventoryStateList())
+        }
+      elif cname_id in ('getInventoryAtDate', ):
+        query_kw_update = {
+          'to_date': self.at_date,
+          'simulation_state': \
+            list(self.getPortalFutureInventoryStateList()) + \
+            list(self.getPortalReservedInventoryStateList())
+        }
+      query_kw.update(query_kw_update)
+      return '%s/%s?%s&reset=1' % ( resource.absolute_url(),
+                                    form_name,
+                                    make_query(**query_kw) )
+
+    # default case, if it's a movement, return link to the explanation of this
+    # movement.
+    o = self.getObject()
+    if getattr(o, 'isMovement', 0):
+      explanation = o.getExplanationValue()
+      if explanation is not None:
+        return '%s/%s/view' % (
+                self.portal_url.getPortalObject().absolute_url(),
+                explanation.getRelativeUrl())
+    return ''
 
   def getAggregateListText(self):
     aggregate_list = self.Resource_zGetAggregateList(




More information about the Erp5-report mailing list