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)