diff --git a/product/ERP5/tests/testERP5HR.py b/product/ERP5/tests/testERP5HR.py index 2ba8919ece26bb7f4b281d37e642574800c3324b..0f01446bec26b0b0e05f9a3f9a1cb8eb9ae879e9 100644 --- a/product/ERP5/tests/testERP5HR.py +++ b/product/ERP5/tests/testERP5HR.py @@ -869,10 +869,19 @@ class TestHR(ERP5TypeTestCase): # asURL method works on email pers = self.getPersonModule().newContent(portal_type='Person') pers.setDefaultEmailText('nobody@example.com') - email = per.getDefaultEmailValue() + email = pers.getDefaultEmailValue() self.assertEquals('mailto:nobody@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@example.com') + email = pers.getDefaultEmailValue() + self.assertEquals('Default Email', str(email.getTranslatedId())) + + def test_suite(): suite = unittest.TestSuite() suite.addTest(unittest.makeSuite(TestHR)) diff --git a/product/ERP5Type/Base.py b/product/ERP5Type/Base.py index 3f9c85f8b2cabe4990eca786ee95c3a81e5e4e61..5de2ea2c520dcb0dea50f1a38b5736a1dc5c8b3d 100644 --- a/product/ERP5Type/Base.py +++ b/product/ERP5Type/Base.py @@ -66,6 +66,7 @@ from Errors import DeferredCatalogError 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 @@ class Base( CopyContainer, 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):