[Erp5-report] r15891 - in /erp5/trunk/products: ERP5/tests/testERP5HR.py ERP5Type/Base.py

nobody at svn.erp5.org nobody at svn.erp5.org
Wed Aug 29 11:06:14 CEST 2007


Author: jerome
Date: Wed Aug 29 11:06:14 2007
New Revision: 15891

URL: http://svn.erp5.org?rev=15891&view=rev
Log:
Implement a getTranslatedId method to display translation of meaningfull IDs like "default_address" or "default_career".


Modified:
    erp5/trunk/products/ERP5/tests/testERP5HR.py
    erp5/trunk/products/ERP5Type/Base.py

Modified: erp5/trunk/products/ERP5/tests/testERP5HR.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5/tests/testERP5HR.py?rev=15891&r1=15890&r2=15891&view=diff
==============================================================================
--- erp5/trunk/products/ERP5/tests/testERP5HR.py (original)
+++ erp5/trunk/products/ERP5/tests/testERP5HR.py Wed Aug 29 11:06:14 2007
@@ -869,8 +869,17 @@
     # asURL method works on email
     pers = self.getPersonModule().newContent(portal_type='Person')
     pers.setDefaultEmailText('nobody at example.com')
-    email = per.getDefaultEmailValue()
+    email = pers.getDefaultEmailValue()
     self.assertEquals('mailto:nobody at example.com', email.asURL())
+    
+
+  def test_getTranslatedId(self):
+    pers = self.getPersonModule().newContent(
+                portal_type='Person', id='default_email')
+    self.assertEquals(None, pers.getTranslatedId())
+    pers.setDefaultEmailText('nobody at example.com')
+    email = pers.getDefaultEmailValue()
+    self.assertEquals('Default Email', str(email.getTranslatedId()))
     
 
 def test_suite():

Modified: erp5/trunk/products/ERP5Type/Base.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5Type/Base.py?rev=15891&r1=15890&r2=15891&view=diff
==============================================================================
--- erp5/trunk/products/ERP5Type/Base.py (original)
+++ erp5/trunk/products/ERP5Type/Base.py Wed Aug 29 11:06:14 2007
@@ -66,6 +66,7 @@
 from Products.CMFActivity.ActiveObject import ActiveObject
 from Products.ERP5Type.Accessor.Accessor import Accessor as Method
 from Products.ERP5Type.Accessor.TypeDefinition import asDate
+from Products.ERP5Type.Message import Message
 
 from string import join
 import sys, re
@@ -2126,6 +2127,43 @@
         return title
     return self.getId()
 
+  security.declarePublic('getIdTranslationDict')
+  def getIdTranslationDict(self):
+    """Returns the mapping which is used to translate IDs.
+    """
+    return {
+        'Address': dict(default_address='Default Address'),
+        'Telephone': dict(default_telephone='Default Telephone',
+                          mobile_telephone='Mobile Telephone',),
+        'Fax': dict(default_fax='Default Fax'),
+        'Email': dict(default_email='Default Email',
+                      alternate_email='Alternate Email'),
+        'Career': dict(default_career='Default Career'),
+        'Payment Condition': dict(default_payment_condition=
+                                    'Default Payment Condition'),
+        'Image': dict(default_image='Default Image'),
+        'Purchase Supply Line': dict(purchase_supply_line=
+                                    'Default Purchase Supply Line'),
+        'Sale Supply Line': dict(sale_supply_line=
+                                 'Default Sale Supply Line'),
+    }
+
+
+  security.declareProtected(Permissions.AccessContentsInformation,
+                            'getTranslatedId')
+  def getTranslatedId(self):
+    """Returns the translated ID, if the ID of the current document has a
+    special meaning, otherwise returns None.
+    """
+    global_translation_dict = self.getIdTranslationDict()
+    ptype_translation_dict = global_translation_dict.get(
+                                  self.portal_type, None)
+    if ptype_translation_dict is not None:
+      id_ = self.getId()
+      if id_ in ptype_translation_dict:
+        return Message('erp5_ui', ptype_translation_dict[id_])
+
+
   security.declareProtected(Permissions.AccessContentsInformation,
                             'getCompactTitle')
   def getCompactTitle(self):




More information about the Erp5-report mailing list