[Erp5-report] r19773 - /erp5/trunk/products/ERP5Type/Base.py

nobody at svn.erp5.org nobody at svn.erp5.org
Mon Mar 10 11:42:54 CET 2008


Author: alex
Date: Mon Mar 10 11:42:53 2008
New Revision: 19773

URL: http://svn.erp5.org?rev=19773&view=rev
Log:
* _getDefaultAcquiredProperty: null_value is a list, return its first element
  instead of returning the list.
* getCompactTitle: look for a "getCompactTitle" type based method, and return
  its value if found.
* getCompactTranslatedTitle: same as getCompactTitle, but look for a
  "getTranslatedCompactTitle" type based method first.
* getIntId: if int conversion does not work in base 10, try in base 16.

Modified:
    erp5/trunk/products/ERP5Type/Base.py

Modified: erp5/trunk/products/ERP5Type/Base.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5Type/Base.py?rev=19773&r1=19772&r2=19773&view=diff
==============================================================================
--- erp5/trunk/products/ERP5Type/Base.py (original)
+++ erp5/trunk/products/ERP5Type/Base.py Mon Mar 10 11:42:53 2008
@@ -1063,7 +1063,7 @@
                        accessor_id, depends, storage_id, alt_accessor_id, is_list_type, is_tales_type,
                        checked_permission)
     if acquisition_key in tv:
-      return null_value
+      return null_value[0]
 
     tv[acquisition_key] = 1
 
@@ -2388,19 +2388,24 @@
                             'getCompactTitle')
   def getCompactTitle(self):
     """
-    Returns the translated short title or the reference or
-    the translated title or the ID by order of priority
-
-    NOTE: It could be useful to make this method overridable
-    with a type methode.
-    """
+    Returns the first non-null value from the following:
+    - "getCompactTitle" type based method
+    - short title
+    - reference
+    - title
+    - id
+    """
+    method = self._getTypeBasedMethod('getCompactTitle')
+    if method is not None:
+      r = method()
+      if r: return r
     if self.hasShortTitle():
       r = self.getShortTitle()
       if r: return r
     if self.hasReference():
       r = self.getReference()
       if r: return r
-    r = self.getTitle() # No need to test existence since all Base instances have this method
+    r = self._baseGetTitle() # No need to test existence since all Base instances have this method
     if r: return r      # Also useful whenever title is calculated
     return self.getId()
 
@@ -2408,12 +2413,24 @@
                             'getCompactTranslatedTitle')
   def getCompactTranslatedTitle(self):
     """
-    Returns the translated short title or the reference or
-    the translated title or the ID by order of priority
-
-    NOTE: It could be useful to make this method overridable
-    with a type methode.
-    """
+    Returns the first non-null value from the following:
+    - "getTranslatedCompactTitle" type based method
+    - "getCompactTitle" type based method
+    - translated short title
+    - short title
+    - reference
+    - translated title
+    - title
+    - id
+    """
+    method = self._getTypeBasedMethod('getTranslatedCompactTitle')
+    if method is not None:
+      r = method()
+      if r: return r
+    method = self._getTypeBasedMethod('getCompactTitle')
+    if method is not None:
+      r = method()
+      if r: return r
     if self.hasShortTitle():
       r = self.getTranslatedShortTitle()
       if r: return r
@@ -2422,7 +2439,7 @@
     if self.hasReference():
       r = self.getReference()
       if r: return r
-    r = self.getTranslatedTitle() # No need to test existence since all Base instances have this method
+    r = self._baseGetTranslatedTitle() # No need to test existence since all Base instances have this method
     if r: return r                # Also useful whenever title is calculated
     return self.getId()
   
@@ -2430,9 +2447,13 @@
   security.declareProtected(Permissions.AccessContentsInformation, 'getIntId')
   def getIntId(self):
     try:
-      return int(self.getId())
+      id_string = self.getId()
+      return int(id_string)
     except (ValueError, TypeError):
-      return None
+      try:
+        return int(id_string, 16)
+      except (ValueError, TypeError):
+        return None
 
   # Default views - the default security in CMFCore
   # is View - however, security was not defined on




More information about the Erp5-report mailing list