This question has been flagged
5 Replies
623115 Views

Hi All,

I'm looking for a solution to add phone numbers in the above said format. Is there any module or any hint how to achieve this? :)

I had tried with a module named "bss_phone_numbers" and it is suggesting to take field type as "phonenumber", but no luck,

It's throwing an error "Undefined widget............". Please help me on this. I don't need any restriction or validation for phone number.
I just want to create and display a field for phone number, where user can input the number in 'XXX-XXX-XXXX' format.

Any help would be appreciated. :)

Cheers
ASP :)

Avatar
Discard

agree that you  should install the Python library to do that

Best Answer

The best module I have found for this purpose is https://www.odoo.com/apps/7.0/base_phone/

You need to install the Python library first, ie: sudo pip install phonenumbers

Avatar
Discard

That module really helped, thanks Ray! By the way, it changes, by default, all numbers to +XXXXXXXXXXX. Is there any config I could make to format, say, XX (XXX) XXXXX-XXXX

The numbers are in the format "+441132345678" during edit mode, but change to "+44 113 234 5678" when they are saved - is that what you are seeing? To change what the widget displays, change the function used in base_phone/static/src/js/phone_widget.js which leverages the library at base_phone/static/lib/js/PhoneFormat.js

Author

Hey Ray, Thanks for the reply :) It worked fine for all partners. But for my custom module where I have phone fields, it didn't reformat the numbers. So I just added "Widget" attribute as 'phone' to those fields in my custom module. Now a link has been added for click to dial, but number is till not formatted. In edit mode it looks fine 'xxx-xxx-xxxx' but after save 'xxxxxxxxxx'. Please help me with this :)

In the Python file, change ['phone', 'partner_phone', 'fax', 'mobile'] to ['phone', 'partner_phone', 'fax', 'mobile',’YOUR_FIELD1’,’YOUR_FIELD2’] so that the code knows to apply the same validation to the extra phone field(s).

 

From: ASP [mailto:aspalit10@gmail.com]
Sent: Monday, July 07, 2014 1:24 AM
To: Followers of False
Subject: Re: False

 

Hey Ray, Thanks for the reply :) It worked fine for all partners. But for my custom module where I have phone fields, it didn't reformat the numbers. So I just added "Widget" attribute as 'phone' to those fields in my custom module. Now a link has been added for click to dial, but number is till not formatted. In edit mode it looks fine 'xxx-xxx-xxxx' but after save 'xxxxxxxxxx'. Please help me with this :)

--
ASP Sent by OpenERP S.A. using OpenERP. Access your messages and documents in Odoo

In the Python file, change ['phone', 'partner_phone', 'fax', 'mobile'] to ['phone', 'partner_phone', 'fax', 'mobile',’YOUR_FIELD1’,’YOUR_FIELD2’] so that the code knows to apply the same validation to the extra phone field(s).

Author

Hi Ray, the extra phone fields (phone, fax) are in my custom module and not in res_partner. So how to add those to the list? and how it'll recognize the fields from which module? :)

If you added those fields to the res.partner model, then just adding them to the python code in base_phone will be enough.

 

Once you add your fields, all modules that use res.partner will see them, including base_phone.


Ray.

 

From: ASP [mailto:aspalit10@gmail.com]
Sent: Monday, July 07, 2014 11:08 PM
To: Followers of False
Subject: Re: False

 

Hi Ray, the extra phone fields (phone, fax) are in my custom module and not in res_partner. So how to add those to the list? and how it'll recognize the fields from which module? :)

--
ASP Sent by OpenERP S.A. using OpenERP. Access your messages and documents in Odoo

Best Answer

I don't know of a single field type (other than maybe a char field with a regular expression), but if it absolutely needs to be strictly input like that, try to make 3 char fields. One for each section with a certain size (size=3) and in your view somehow put the dashes in manually.

Does that help?

Avatar
Discard
Best Answer

This one works great for me:

     https://github.com/menecio/odoo-addons/tree/master/web_fields_masks

It was build for Odoo7, but still works great with 8 and 9 versions.

It adds widget which you can use in your xml views like this:

<field name="masked_field" data-inputmask="'mask': '99-9999999'" />
Masking definition:

- 9: numeric value
- a: alphabetical value
- *: alphanumeric value

     

Avatar
Discard
Best Answer

For my part, I use this plugin :

https://igorescobar.github.io/jQuery-Mask-Plugin/

With this one, you can manage any format on any textbox. Easy to install. I like this one.

Avatar
Discard

I finally think this last one works only for input box on the frontend.

Best Answer

Use the module Inputmask Widget.

Avatar
Discard