Skip to content

Commit

Permalink
[MIG] base_phone: Migrated to v17
Browse files Browse the repository at this point in the history
  • Loading branch information
Nikul-OSI committed Feb 13, 2024
1 parent 6a1e1bc commit b9cbdf7
Show file tree
Hide file tree
Showing 24 changed files with 222 additions and 269 deletions.
1 change: 1 addition & 0 deletions base_phone/README.rst
Original file line number Diff line number Diff line change
Expand Up @@ -71,6 +71,7 @@ Contributors

- Alexis de Lattre <[email protected]>
- Sébastien Beau <[email protected]>
- Nikul Chaudhary <[email protected]>

Maintainers
-----------
Expand Down
7 changes: 5 additions & 2 deletions base_phone/__manifest__.py
Original file line number Diff line number Diff line change
Expand Up @@ -21,8 +21,11 @@
"views/res_users_view.xml",
"wizard/reformat_all_phonenumbers_view.xml",
"wizard/number_not_found_view.xml",
"views/web_phone.xml",
],
"qweb": ["static/src/xml/phone.xml"],
"assets": {
"web.assets_backend": [
"base_phone/static/src/**/*",
],
},
"installable": True,
}
14 changes: 0 additions & 14 deletions base_phone/i18n/de.po
Original file line number Diff line number Diff line change
Expand Up @@ -40,13 +40,6 @@ msgstr "Abbruch"
msgid "Click2dial successfull"
msgstr "Click2dial erfolgreich"

#. module: base_phone
#. openerp-web
#: code:addons/base_phone/static/src/js/phone_widget.js:0
#, fuzzy, python-format
msgid "Click2dial to %s"
msgstr "Click2dial gestartet"

#. module: base_phone
#: model_terms:ir.ui.view,arch_db:base_phone.number_not_found_form
#: model_terms:ir.ui.view,arch_db:base_phone.reformat_all_phonenumbers_form
Expand Down Expand Up @@ -229,13 +222,6 @@ msgstr "Nummer nicht gefunden"
msgid "Number converted to international format:"
msgstr "Nummer in internationales Format umgewandelt:"

#. module: base_phone
#. openerp-web
#: code:addons/base_phone/static/src/js/phone_widget.js:0
#, fuzzy, python-format
msgid "Number dialed: %s"
msgstr "Gewählte Nummer:"

#. module: base_phone
#: model:ir.model,name:base_phone.model_number_not_found
msgid "Number not found"
Expand Down
14 changes: 0 additions & 14 deletions base_phone/i18n/sl.po
Original file line number Diff line number Diff line change
Expand Up @@ -42,13 +42,6 @@ msgstr "Preklic"
msgid "Click2dial successfull"
msgstr "Click2dial uspešen"

#. module: base_phone
#. openerp-web
#: code:addons/base_phone/static/src/js/phone_widget.js:0
#, fuzzy, python-format
msgid "Click2dial to %s"
msgstr "Click2dial zagnan"

#. module: base_phone
#: model_terms:ir.ui.view,arch_db:base_phone.number_not_found_form
#: model_terms:ir.ui.view,arch_db:base_phone.reformat_all_phonenumbers_form
Expand Down Expand Up @@ -225,13 +218,6 @@ msgstr "Številka ni najdena"
msgid "Number converted to international format:"
msgstr "Številka pretvorjena v mednarodni format:"

#. module: base_phone
#. openerp-web
#: code:addons/base_phone/static/src/js/phone_widget.js:0
#, fuzzy, python-format
msgid "Number dialed: %s"
msgstr "Klicana številka:"

#. module: base_phone
#: model:ir.model,name:base_phone.model_number_not_found
msgid "Number not found"
Expand Down
14 changes: 0 additions & 14 deletions base_phone/i18n/tr.po
Original file line number Diff line number Diff line change
Expand Up @@ -41,13 +41,6 @@ msgstr "İptal"
msgid "Click2dial successfull"
msgstr "Tıkla çevir başarılı"

#. module: base_phone
#. openerp-web
#: code:addons/base_phone/static/src/js/phone_widget.js:0
#, fuzzy, python-format
msgid "Click2dial to %s"
msgstr "Tıkla çevir başlatıldı"

#. module: base_phone
#: model_terms:ir.ui.view,arch_db:base_phone.number_not_found_form
#: model_terms:ir.ui.view,arch_db:base_phone.reformat_all_phonenumbers_form
Expand Down Expand Up @@ -224,13 +217,6 @@ msgstr "Numara Bulunamadı"
msgid "Number converted to international format:"
msgstr "Uluslarası biçime çevrilen numara:"

#. module: base_phone
#. openerp-web
#: code:addons/base_phone/static/src/js/phone_widget.js:0
#, fuzzy, python-format
msgid "Number dialed: %s"
msgstr "Aranan numara:"

#. module: base_phone
#: model:ir.model,name:base_phone.model_number_not_found
msgid "Number not found"
Expand Down
2 changes: 1 addition & 1 deletion base_phone/models/__init__.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
from . import phone_validation_mixin
from . import models
from . import res_company
from . import res_partner
from . import phone_common
21 changes: 21 additions & 0 deletions base_phone/models/models.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
# Copyright 2018-2021 Akretion France (http://www.akretion.com/)
# @author: Alexis de Lattre <[email protected]>
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).


from odoo import models


class BaseModel(models.AbstractModel):
_inherit = "base"

def _phone_format_number(
self, number, country, force_format="E164", raise_exception=False
):
if "country_id" in self and self.country_id:
country = self.country_id
if "partner_id" in self and self.partner_id and self.partner_id.country_id:
country = self.partner_id.country_id
return super()._phone_format_number(
number, country, force_format, raise_exception
)
11 changes: 7 additions & 4 deletions base_phone/models/phone_common.py
Original file line number Diff line number Diff line change
Expand Up @@ -25,8 +25,7 @@ def get_name_from_phone_number(self, presented_number):
res = self.get_record_from_phone_number(presented_number)
if res:
return res[2]
else:
return False
return False

@api.model
def get_record_from_phone_number(self, presented_number):
Expand Down Expand Up @@ -93,7 +92,7 @@ def get_record_from_phone_number(self, presented_number):
res_obj = obj.browse(obj_id)
# Use name_get()[0][1] instead of display_name
# to take the context into account with the callerid key
name = res_obj.name_get()[0][1]
name = res_obj.display_name
res = (obj._name, res_obj.id, name)
_logger.debug(
"Answer get_record_from_phone_number: (%s, %d, %s)",
Expand Down Expand Up @@ -143,7 +142,11 @@ def _get_phone_models(self):
def click2dial(self, erp_number):
"""This function is designed to be overridden in IPBX-specific
modules, such as asterisk_click2dial or ovh_telephony_connector"""
return {"dialed_number": erp_number}
return {
"dialed_number": erp_number,
"action_name": "Incoming Call",
"action_model": "res.partner",
}

@api.model
def convert_to_dial_number(self, erp_number):
Expand Down
17 changes: 0 additions & 17 deletions base_phone/models/phone_validation_mixin.py

This file was deleted.

15 changes: 4 additions & 11 deletions base_phone/models/res_partner.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,23 +7,16 @@


class ResPartner(models.Model):
_name = "res.partner"
# inherit on phone.validation.mixin (same as in crm_phone_validation,
# but base_phone only depends on phone_validation,
# not on crm_phone_validation)
_inherit = ["res.partner", "phone.validation.mixin"]
_inherit = "res.partner"
_phone_name_sequence = 10
_phone_name_fields = ["phone", "mobile"]

def name_get(self):
def _compute_display_name(self):
super()._compute_display_name()
if self._context.get("callerid"):
res = []
for partner in self:
if partner.parent_id and partner.parent_id.is_company:
name = f"{partner.parent_id.name}, {partner.name}"
else:
name = partner.name
res.append((partner.id, name))
return res
else:
return super().name_get()
partner.display_name = name.strip()
3 changes: 3 additions & 0 deletions base_phone/pyproject.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
[build-system]
requires = ["whool"]
build-backend = "whool.buildapi"
3 changes: 3 additions & 0 deletions base_phone/readme/CONTRIBUTORS.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
- Alexis de Lattre \<<[email protected]>\>
- Sébastien Beau \<<[email protected]>\>
- Nikul Chaudhary \<<[email protected]>\>
14 changes: 14 additions & 0 deletions base_phone/readme/DESCRIPTION.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
This module provides common methods and wizards which can be useful to
develop a connector between Odoo and a telephony system. It depends on
the official module *phone_validation* which handle the reformatting of
phone numbers using the
[phonenumbers](https://github.com/daviddrysdale/python-phonenumbers)
Python library, which is a port of the library used in Android
smartphones. For example, if your user is linked to a French company and
you update the form view of a partner with a badly written French phone
number such as '01-55-42-12-42', Odoo will automatically update the
phone number to [E.164](https://en.wikipedia.org/wiki/E.164) format
'+33155421242'. This module extends this reformatting to create() and
write() methods.

This module is used by the Odoo-Asterisk connector of the OCA.
1 change: 1 addition & 0 deletions base_phone/static/description/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -416,6 +416,7 @@ <h2><a class="toc-backref" href="#toc-entry-4">Contributors</a></h2>
<ul class="simple">
<li>Alexis de Lattre &lt;<a class="reference external" href="mailto:alexis.delattre&#64;akretion.com">alexis.delattre&#64;akretion.com</a>&gt;</li>
<li>Sébastien Beau &lt;<a class="reference external" href="mailto:sebastien.beau&#64;akretion.com">sebastien.beau&#64;akretion.com</a>&gt;</li>
<li>Nikul Chaudhary &lt;<a class="reference external" href="mailto:nchaudhary&#64;opensourceintegrators.com">nchaudhary&#64;opensourceintegrators.com</a>&gt;</li>
</ul>
</div>
<div class="section" id="maintainers">
Expand Down
92 changes: 92 additions & 0 deletions base_phone/static/src/js/phone_widget.esm.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,92 @@
/** @odoo-module **/

/* Base phone module for Odoo
Copyright (C) 2013-2018 Akretion France
@author: Alexis de Lattre <[email protected]>
License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). */

import {_t} from "@web/core/l10n/translation";
import {
PhoneField,
formPhoneField,
phoneField,
} from "@web/views/fields/phone/phone_field";
import {patch} from "@web/core/utils/patch";
import {Component} from "@odoo/owl";
import {useService} from "@web/core/utils/hooks";

export class Dial extends Component {
setup() {
this.orm = useService("orm");
this.action = useService("action");
}
get phoneHref() {
return "tel:" + this.props.record.data[this.props.name].replace(/\s+/g, "");
}
async onClick() {
await this.props.record.save();
var phone_num = this.props.record.data[this.props.name];
this.env.services.notification.add(_t('Click2dial to "%s"', phone_num), {
type: "info",
});
var params = {
phone_number: phone_num,
click2dial_model: this.props.record.resModel,
click2dial_id: this.props.record.resId,
};
const result = await this.orm.call(
"phone.common",
"click2dial",
[phone_num],
{}
);
if (result === false) {
this.env.services.notification.add(_t("Click2dial failed"), {
type: "warning",
});
} else if (typeof result === "object") {
this.env.services.notification.add(
(_t("Number dialed: %s"), result.dialed_number),
{title: _t("Click2dial successfull"), type: "success"}
);
if (result.action_model) {
this.action.doAction({
type: "ir.actions.act_window",
name: result.action_name,
res_model: result.action_model,
views: [[false, "form"]],
target: "new",
context: params,
});
}
}
}
}
Dial.template = "base_phone.Dial";
Dial.props = ["*"];

patch(PhoneField, {
components: {
...PhoneField.components,
Dial,
},
defaultProps: {
...PhoneField.defaultProps,
enableButton: true,
},
props: {
...PhoneField.props,
enableButton: {type: Boolean, optional: true},
},
});

const patchDescr = () => ({
extractProps({options}) {
const props = super.extractProps(...arguments);
props.enableButton = options.enable_sms;
return props;
},
});

patch(phoneField, patchDescr());
patch(formPhoneField, patchDescr());
Loading

0 comments on commit b9cbdf7

Please sign in to comment.