From 65e0d7c2d06cf2bef43bfecfcc144dbd72e571bd Mon Sep 17 00:00:00 2001 From: Ashish Hirpara Date: Wed, 12 Oct 2022 14:46:32 +0530 Subject: [PATCH] [ADD][14.0] partner_mobile_unique initial commit --- partner_mobile_unique/README.rst | 0 partner_mobile_unique/__init__.py | 1 + partner_mobile_unique/__manifest__.py | 17 ++++++++ partner_mobile_unique/models/__init__.py | 3 ++ partner_mobile_unique/models/res_company.py | 13 ++++++ .../models/res_config_settings.py | 10 +++++ partner_mobile_unique/models/res_partner.py | 39 ++++++++++++++++++ partner_mobile_unique/readme/CONFIGURE.rst | 3 ++ partner_mobile_unique/readme/CONTRIBUTORS.rst | 1 + partner_mobile_unique/readme/DESCRIPTION.rst | 9 ++++ partner_mobile_unique/readme/USAGE.rst | 1 + .../static/description/icon.png | Bin 0 -> 9455 bytes .../description/partner_duplicate_error.png | Bin 0 -> 61324 bytes partner_mobile_unique/tests/__init__.py | 3 ++ .../tests/test_mobile_check_unique.py | 25 +++++++++++ .../views/res_config_settings_view.xml | 35 ++++++++++++++++ .../odoo/addons/partner_mobile_unique | 1 + setup/partner_mobile_unique/setup.py | 6 +++ 18 files changed, 167 insertions(+) create mode 100644 partner_mobile_unique/README.rst create mode 100644 partner_mobile_unique/__init__.py create mode 100644 partner_mobile_unique/__manifest__.py create mode 100644 partner_mobile_unique/models/__init__.py create mode 100644 partner_mobile_unique/models/res_company.py create mode 100644 partner_mobile_unique/models/res_config_settings.py create mode 100644 partner_mobile_unique/models/res_partner.py create mode 100644 partner_mobile_unique/readme/CONFIGURE.rst create mode 100644 partner_mobile_unique/readme/CONTRIBUTORS.rst create mode 100644 partner_mobile_unique/readme/DESCRIPTION.rst create mode 100644 partner_mobile_unique/readme/USAGE.rst create mode 100644 partner_mobile_unique/static/description/icon.png create mode 100644 partner_mobile_unique/static/description/partner_duplicate_error.png create mode 100644 partner_mobile_unique/tests/__init__.py create mode 100644 partner_mobile_unique/tests/test_mobile_check_unique.py create mode 100644 partner_mobile_unique/views/res_config_settings_view.xml create mode 120000 setup/partner_mobile_unique/odoo/addons/partner_mobile_unique create mode 100644 setup/partner_mobile_unique/setup.py diff --git a/partner_mobile_unique/README.rst b/partner_mobile_unique/README.rst new file mode 100644 index 000000000..e69de29bb diff --git a/partner_mobile_unique/__init__.py b/partner_mobile_unique/__init__.py new file mode 100644 index 000000000..0650744f6 --- /dev/null +++ b/partner_mobile_unique/__init__.py @@ -0,0 +1 @@ +from . import models diff --git a/partner_mobile_unique/__manifest__.py b/partner_mobile_unique/__manifest__.py new file mode 100644 index 000000000..7d29ec8c3 --- /dev/null +++ b/partner_mobile_unique/__manifest__.py @@ -0,0 +1,17 @@ +# Copyright 2020 Ashish (Ooops) +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). + +{ + "name": "Partner Mobile Format and Duplicate Checker", + "version": "14.0.1.0.0", + "summary": "Restriction on partner creation if another partner has the same mobile", + "author": "Ashish Hirpara, Odoo Community Association (OCA)", + "website": "https://github.com/OCA/partner-contact", + "category": "Partner Management", + "depends": ["base_setup", "phone_validation"], + "license": "AGPL-3", + "maintainers": ["AshishHirapara"], + "installable": True, + "application": False, + "data": ["views/res_config_settings_view.xml"], +} diff --git a/partner_mobile_unique/models/__init__.py b/partner_mobile_unique/models/__init__.py new file mode 100644 index 000000000..c11ec3c3c --- /dev/null +++ b/partner_mobile_unique/models/__init__.py @@ -0,0 +1,3 @@ +from . import res_config_settings +from . import res_company +from . import res_partner diff --git a/partner_mobile_unique/models/res_company.py b/partner_mobile_unique/models/res_company.py new file mode 100644 index 000000000..112acfea8 --- /dev/null +++ b/partner_mobile_unique/models/res_company.py @@ -0,0 +1,13 @@ +# Copyright 2022 Ooops, Ashish Hirpara +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). + +from odoo import fields, models + + +class ResCompany(models.Model): + _inherit = "res.company" + + partner_mobile_unique_filter_duplicates = fields.Boolean( + string="Filter duplicate partner moblie number", + help="Don't allow multiple partners to have the same moblie number.", + ) diff --git a/partner_mobile_unique/models/res_config_settings.py b/partner_mobile_unique/models/res_config_settings.py new file mode 100644 index 000000000..1086bf932 --- /dev/null +++ b/partner_mobile_unique/models/res_config_settings.py @@ -0,0 +1,10 @@ +from odoo import fields, models + + +class ResConfigSettings(models.TransientModel): + _inherit = "res.config.settings" + + partner_mobile_unique_filter_duplicates = fields.Boolean( + related="company_id.partner_mobile_unique_filter_duplicates", + readonly=False, + ) diff --git a/partner_mobile_unique/models/res_partner.py b/partner_mobile_unique/models/res_partner.py new file mode 100644 index 000000000..8106a691c --- /dev/null +++ b/partner_mobile_unique/models/res_partner.py @@ -0,0 +1,39 @@ +# Copyright 2022 Ooops Ashish Hirpara +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). + +import logging + +from odoo import _, api, models +from odoo.exceptions import UserError + +_logger = logging.getLogger(__name__) + + +class ResPartner(models.Model): + _inherit = "res.partner" + + @api.constrains("mobile") + def _check_mobile_unique(self): + if self.env.company.partner_mobile_unique_filter_duplicates: + for partner in self: + if partner.mobile: + domain = [("mobile", "=", partner.mobile)] + if partner.company_id: + domain += [ + "|", + ("company_id", "=", False), + ("company_id", "=", partner.company_id.id), + ] + partner_id = partner._origin.id + if partner_id: + domain += [ + ("id", "!=", partner.id), + ] + if self.search(domain): + raise UserError( + _( + "The mobile number is already exists for another partner." + " This is not supported when duplicate mobile numbers are " + "not allowed." + ) + ) diff --git a/partner_mobile_unique/readme/CONFIGURE.rst b/partner_mobile_unique/readme/CONFIGURE.rst new file mode 100644 index 000000000..7c72afbc7 --- /dev/null +++ b/partner_mobile_unique/readme/CONFIGURE.rst @@ -0,0 +1,3 @@ +To not allow multiple partners to have the same mobile, go to "General Settings" and use the +"Filter duplicate partner mobile number"/``partner_mobile_unique_filter_duplicates`` +setting. diff --git a/partner_mobile_unique/readme/CONTRIBUTORS.rst b/partner_mobile_unique/readme/CONTRIBUTORS.rst new file mode 100644 index 000000000..afc24227c --- /dev/null +++ b/partner_mobile_unique/readme/CONTRIBUTORS.rst @@ -0,0 +1 @@ +* Ooops - Ashish Hirpara diff --git a/partner_mobile_unique/readme/DESCRIPTION.rst b/partner_mobile_unique/readme/DESCRIPTION.rst new file mode 100644 index 000000000..a413aea72 --- /dev/null +++ b/partner_mobile_unique/readme/DESCRIPTION.rst @@ -0,0 +1,9 @@ +This module validates the field ``mobile`` in the model +``res.partner`` for duplication. + +As part of the validation, this module throws error on the partner form view if another partner has the same mobile (Optionally). + +.. figure:: ../static/description/partner_duplicate_error.png + :alt: Error on partner form + +This module has a twin brother named **partner_email_check** which restricts the partner creation when another partner has the same email. diff --git a/partner_mobile_unique/readme/USAGE.rst b/partner_mobile_unique/readme/USAGE.rst new file mode 100644 index 000000000..2ff6e28bb --- /dev/null +++ b/partner_mobile_unique/readme/USAGE.rst @@ -0,0 +1 @@ +If configured, this module integrate automatically in all of the view ``res.partner`` diff --git a/partner_mobile_unique/static/description/icon.png b/partner_mobile_unique/static/description/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..3a0328b516c4980e8e44cdb63fd945757ddd132d GIT binary patch literal 9455 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 z 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 Xviia!U7SGha1wx#SCgwmn*{w2TRX*I literal 0 HcmV?d00001 diff --git a/partner_mobile_unique/static/description/partner_duplicate_error.png b/partner_mobile_unique/static/description/partner_duplicate_error.png new file mode 100644 index 0000000000000000000000000000000000000000..3aab567dea0e91a1fbb7610b65443a010806a6c7 GIT binary patch literal 61324 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 literal 0 HcmV?d00001 diff --git a/partner_mobile_unique/tests/__init__.py b/partner_mobile_unique/tests/__init__.py new file mode 100644 index 000000000..4149bef86 --- /dev/null +++ b/partner_mobile_unique/tests/__init__.py @@ -0,0 +1,3 @@ +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). + +from . import test_mobile_check_unique diff --git a/partner_mobile_unique/tests/test_mobile_check_unique.py b/partner_mobile_unique/tests/test_mobile_check_unique.py new file mode 100644 index 000000000..793447ca7 --- /dev/null +++ b/partner_mobile_unique/tests/test_mobile_check_unique.py @@ -0,0 +1,25 @@ +from odoo.exceptions import UserError +from odoo.tests import common + + +class TestMobileCheckUnique(common.TransactionCase): + def _create_partners(self, name, mobile, company_id=False): + return self.env["res.partner"].create( + { + "name": name, + "mobile": mobile, + "company_id": company_id, + } + ) + + def test_01_partner_mobile_unique(self): + # create partners + + self.env.company.write({"partner_mobile_unique_filter_duplicates": True}) + + with self.assertRaises(UserError): + self._create_partners("Test Partner 1", "12345678") + self._create_partners("Test Partner 2", "12345678") + + with self.assertRaises(UserError): + self._create_partners("Test Partner 4", "12345678", self.env.company.id) diff --git a/partner_mobile_unique/views/res_config_settings_view.xml b/partner_mobile_unique/views/res_config_settings_view.xml new file mode 100644 index 000000000..179d87657 --- /dev/null +++ b/partner_mobile_unique/views/res_config_settings_view.xml @@ -0,0 +1,35 @@ + + + + partner_mobile_unique + res.config.settings + + + +

Mobile validation

+
+ +
+
+ +
+
+
+
+ +
+
+
+
+
diff --git a/setup/partner_mobile_unique/odoo/addons/partner_mobile_unique b/setup/partner_mobile_unique/odoo/addons/partner_mobile_unique new file mode 120000 index 000000000..641ed1a2f --- /dev/null +++ b/setup/partner_mobile_unique/odoo/addons/partner_mobile_unique @@ -0,0 +1 @@ +../../../../partner_mobile_unique \ No newline at end of file diff --git a/setup/partner_mobile_unique/setup.py b/setup/partner_mobile_unique/setup.py new file mode 100644 index 000000000..28c57bb64 --- /dev/null +++ b/setup/partner_mobile_unique/setup.py @@ -0,0 +1,6 @@ +import setuptools + +setuptools.setup( + setup_requires=['setuptools-odoo'], + odoo_addon=True, +)