def asText(self): """ Returns the telephone number in standard format """ def __replace(mask,letter,telephone_part): """ Replace the letters for numbers """ for i in range(0,mask.count(letter)): try: mask=mask.replace(letter,telephone_part[i],1) except IndexError: #string index out of range pass mask=mask.replace(letter,'') return mask script = self._getTypeBasedMethod('asText') if script is not None: return script() mask = self.portal_preferences.getPreferredTelephoneMask() if mask == '' or mask is None: telephone = self.getTelephoneCountry() or '' telephone+= self.getTelephoneArea() or '' telephone+= self.getTelephoneNumber() or '' telephone+= self.getTelephoneExtension() or '' return telephone else: maskcopy = mask = str.upper(mask) telephone_country = self.getTelephoneCountry() if telephone_country is None: mask=mask.replace('C','') #remove all 'C' from the mask else: mask=__replace(mask=mask,letter='C',telephone_part=telephone_country) telephone_area = self.getTelephoneArea() if telephone_area is None: mask=mask.replace('A','') #remove all 'A' from the mask else: mask=__replace(mask=mask,letter='A',telephone_part=telephone_area) telephone_number = self.getTelephoneNumber() if telephone_number is None: mask=mask.replace('N','') #remove all 'N' from the mask else: mask=__replace(mask=mask,letter='N',telephone_part=telephone_number) telephone_extension = self.getTelephoneExtension() if telephone_extension is None: mask=mask.replace('E','') #remove all 'N' from the mask else: mask=__replace(mask=mask,letter='E',telephone_part=telephone_extension) for i in ['C','A','N','E']: maskcopy=maskcopy.replace(i,'') if (mask == maskcopy): mask = '' return str(mask)