Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[16.0][ADD] website_snippet_country_phone_code_dropdown #1083

Open
wants to merge 1 commit into
base: 16.0
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions setup/website_snippet_country_phone_code_dropdown/setup.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
import setuptools

setuptools.setup(
setup_requires=['setuptools-odoo'],
odoo_addon=True,
)
126 changes: 126 additions & 0 deletions website_snippet_country_phone_code_dropdown/README.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,126 @@
===========================================
Website Snippet Country Phone Code Dropdown
===========================================

..
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! This file is generated by oca-gen-addon-readme !!
!! changes will be overwritten. !!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! source digest: sha256:af3a26574c6f70e54f7e2131a4c5c429db1d6619b81eb4724517a212f0e0a7af
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

.. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png
:target: https://odoo-community.org/page/development-status
:alt: Beta
.. |badge2| image:: https://img.shields.io/badge/licence-LGPL--3-blue.png
:target: http://www.gnu.org/licenses/lgpl-3.0-standalone.html
:alt: License: LGPL-3
.. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fwebsite-lightgray.png?logo=github
:target: https://github.com/OCA/website/tree/16.0/website_snippet_country_phone_code_dropdown
:alt: OCA/website
.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png
:target: https://translation.odoo-community.org/projects/website-16-0/website-16-0-website_snippet_country_phone_code_dropdown
:alt: Translate me on Weblate
.. |badge5| image:: https://img.shields.io/badge/runboat-Try%20me-875A7B.png
:target: https://runboat.odoo-community.org/builds?repo=OCA/website&target_branch=16.0
:alt: Try me on Runboat

|badge1| |badge2| |badge3| |badge4| |badge5|

This module enhances the features of the `website_snippet_country_dropdown`
module, and its implementation and functionality are very similar. It offers a
snippet with a dropdown for selecting a country as well as an input text field
that auto-populates with the corresponding phone code. This module is intended
to serve as a base for other modules to inherit and integrate into HTML forms.

**Table of contents**

.. contents::
:local:

Usage
=====

To extend this template, you should inherit the `country_dropdown` template and
add your custom code. This template includes three input text fields, which are
the following:

#. ``no_country_field``: Field without code country.
#. ``country_phone_code_field``: Field with only country code (read only)
#. ``complete_field``: Field with the previous two joined (hidden)

The name of the complete field is customizable when user insert the snippet
into a form element with the website editor.

Development
~~~~~~~~~~~

In order to use this element, you can call the reusable Qweb template
`website_snippet_country_phone_code_dropdown.country_dropdown` in your views or
forms to add a sensible country-combined field, which could be a useful element
for the registration of international phone numbers.

**Default Country Selection**

The default country will be determined by the first match among:

#. Extracted from the `default_country` variable.
#. Extracted from the `default_value_prefix` variable, searching by phone code.
#. The current user's country.
#. The current website's company's country.
#. The first country in the list.

**Variables**

All variables you can use to modify its behavior:

#. ``complete_field``: To give the form information a name. Habitually it will
match the field name.
#. ``default_value_prefix``: The phone prefix to be used in the complete_field.
#. ``default_value_number``: The phone number to be used in the complete_field.
#. ``countries``: A recordset of res.country containing all the available
countries.
#. ``default_country``: A res.country record representing the default country.
#. ``no_country_placeholder``: A placeholder text for the phone number input
field.

Bug Tracker
===========

Bugs are tracked on `GitHub Issues <https://github.com/OCA/website/issues>`_.
In case of trouble, please check there if your issue has already been reported.
If you spotted it first, help us to smash it by providing a detailed and welcomed
`feedback <https://github.com/OCA/website/issues/new?body=module:%20website_snippet_country_phone_code_dropdown%0Aversion:%2016.0%0A%0A**Steps%20to%20reproduce**%0A-%20...%0A%0A**Current%20behavior**%0A%0A**Expected%20behavior**>`_.

Do not contact contributors directly about support or help with technical issues.

Credits
=======

Authors
~~~~~~~

* ForgeFlow

Contributors
~~~~~~~~~~~~

* Laura Cazorla <[email protected]>

Maintainers
~~~~~~~~~~~

This module is maintained by the OCA.

.. image:: https://odoo-community.org/logo.png
:alt: Odoo Community Association
:target: https://odoo-community.org

OCA, or the Odoo Community Association, is a nonprofit organization whose
mission is to support the collaborative development of Odoo features and
promote its widespread use.

This module is part of the `OCA/website <https://github.com/OCA/website/tree/16.0/website_snippet_country_phone_code_dropdown>`_ project on GitHub.

You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.
1 change: 1 addition & 0 deletions website_snippet_country_phone_code_dropdown/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
# License LGPL-3.0 or later (http://www.gnu.org/licenses/lgpl).
27 changes: 27 additions & 0 deletions website_snippet_country_phone_code_dropdown/__manifest__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
# License LGPL-3.0 or later (http://www.gnu.org/licenses/lgpl).

{
"name": "Website Snippet Country Phone Code Dropdown",
"summary": "Allow to select country in a dropdown, and fill with phone code",
"version": "16.0.1.0.0",
"category": "Website",
"website": "https://github.com/OCA/website",
"author": "ForgeFlow, Odoo Community Association (OCA)",
"license": "LGPL-3",
"application": False,
"installable": True,
"depends": ["website_snippet_country_dropdown"],
"data": ["views/snippets.xml"],
"demo": ["demo/pages.xml"],
"assets": {
"web.assets_tests": [
"/website_snippet_country_phone_code_dropdown/static/src/js/"
"web_tour_country_phone_code_dropdown.js"
],
"web.assets_frontend": [
"/website_snippet_country_phone_code_dropdown/static/src/css/style.scss",
"/website_snippet_country_phone_code_dropdown/static/src/js/"
"website_snippet_country_phone_code_dropdown.js",
],
},
}
100 changes: 100 additions & 0 deletions website_snippet_country_phone_code_dropdown/demo/pages.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,100 @@
<?xml version="1.0" encoding="utf-8" ?>
<!-- License LGPL-3.0 or later (http://www.gnu.org/licenses/lgpl). -->
<odoo>
<template
id="country_phone_code_dropdown_demo_view"
name="Country phone code dropdown snippet test"
>
<t t-call="website.layout">
<div id="wrap" class="oe_structure oe_empty">
<section>
<div class="container readable mt32 mb32">
<div class="row">
<div class="col-md-12">
<h1 class="text-center">This is a form</h1>
<h3 class="text-muted text-center mt-3">
Test the country phone code dropdown snippet
</h3>
<form action="" class="form-horizontal mt-4">
<div
class="js_enabled"
t-call="website_snippet_country_phone_code_dropdown.dropdown_element_form"
>
<t
t-set="label_class"
t-value="'col-sm-5 col-form-label'"
/>
<t
t-set="input_container_class"
t-value="'col-sm-7'"
/>
<t
t-set="label_country_dropdown"
>Example label</t>
</div>
<div
class="js_disabled mt-2"
t-call="website_snippet_country_phone_code_dropdown.dropdown_element_form"
>
<t
t-set="label_class"
t-value="'col-sm-5 col-form-label'"
/>
<t
t-set="input_container_class"
t-value="'col-sm-7'"
/>
<t
t-set="complete_field"
t-value="'disabled_complete_field'"
/>
<t
t-set="country_phone_code_field"
t-value="'disabled_country_phone_code_field'"
/>
<t
t-set="no_country_field"
t-value="'disabled_no_country_field'"
/>
<t t-set="readonly" t-value="True" />
<t
t-set="default_value_prefix"
t-value="'33'"
/>
<t
t-set="default_value_number"
t-value="'6 00 11 22 33'"
/>
<t
t-set="label_country_dropdown"
>Example label (readonly)</t>
</div>
<div
class="col-12 d-flex justify-content-center mt-2"
>
<button type="submit" class="btn btn-default">
Submit (you will see the GET parameters in the URL)
</button>
</div>
</form>
</div>
</div>
</div>
</section>
</div>
</t>
</template>

<record id="country_dropdown_phone_code_demo_page" model="website.page">
<field name="website_published">True</field>
<field name="url">/website_snippet_country_phone_code_dropdown.demo_page</field>
<field name="view_id" ref="country_phone_code_dropdown_demo_view" />
</record>
<record id="country_dropdown_phone_code_demo_page_link" model="website.menu">
<field name="name">Country Phone Code Dropdown Demo</field>
<field name="url">/website_snippet_country_phone_code_dropdown.demo_page</field>
<field name="parent_id" ref="website.main_menu" />
<field name="sequence" type="int">50</field>
<field name="page_id" ref="country_dropdown_phone_code_demo_page" />
</record>
</odoo>
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
* Laura Cazorla <[email protected]>
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
This module enhances the features of the `website_snippet_country_dropdown`
module, and its implementation and functionality are very similar. It offers a
snippet with a dropdown for selecting a country as well as an input text field
that auto-populates with the corresponding phone code. This module is intended
to serve as a base for other modules to inherit and integrate into HTML forms.
42 changes: 42 additions & 0 deletions website_snippet_country_phone_code_dropdown/readme/USAGE.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
To extend this template, you should inherit the `country_dropdown` template and
add your custom code. This template includes three input text fields, which are
the following:

#. ``no_country_field``: Field without code country.
#. ``country_phone_code_field``: Field with only country code (read only)
#. ``complete_field``: Field with the previous two joined (hidden)

The name of the complete field is customizable when user insert the snippet
into a form element with the website editor.

Development
~~~~~~~~~~~

In order to use this element, you can call the reusable Qweb template
`website_snippet_country_phone_code_dropdown.country_dropdown` in your views or
forms to add a sensible country-combined field, which could be a useful element
for the registration of international phone numbers.

**Default Country Selection**

The default country will be determined by the first match among:

#. Extracted from the `default_country` variable.
#. Extracted from the `default_value_prefix` variable, searching by phone code.
#. The current user's country.
#. The current website's company's country.
#. The first country in the list.

**Variables**

All variables you can use to modify its behavior:

#. ``complete_field``: To give the form information a name. Habitually it will
match the field name.
#. ``default_value_prefix``: The phone prefix to be used in the complete_field.
#. ``default_value_number``: The phone number to be used in the complete_field.
#. ``countries``: A recordset of res.country containing all the available
countries.
#. ``default_country``: A res.country record representing the default country.
#. ``no_country_placeholder``: A placeholder text for the phone number input
field.
Loading
Loading