Skip to content

Commit bf9a5fd

Browse files
author
Tu Nombre
committed
[ADD] hr_applicant_duplicate: Onchange in phone and email to see if the applicant is duplicated or discarded.
1 parent 48b855a commit bf9a5fd

File tree

9 files changed

+192
-0
lines changed

9 files changed

+192
-0
lines changed

hr_applicant_duplicate/README.rst

+28
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
.. image:: https://img.shields.io/badge/licence-AGPL--3-blue.svg
2+
:target: http://www.gnu.org/licenses/agpl-3.0-standalone.html
3+
:alt: License: AGPL-3
4+
5+
======================
6+
Hr applicant duplicate
7+
======================
8+
9+
* Onchange in phone and email to see if the applicant is duplicated or discarded.
10+
11+
Bug Tracker
12+
===========
13+
14+
Bugs are tracked on `GitHub Issues
15+
<https://github.com/avanzosc/hr-addons/issues>`_. In case of trouble,
16+
please check there if your issue has already been reported. If you spotted
17+
it first, help us smash it by providing detailed and welcomed feedback.
18+
19+
Do not contact contributors directly about support or help with technical issues.
20+
21+
Credits
22+
=======
23+
24+
Contributors
25+
------------
26+
27+
* Berezi Amubieta <[email protected]>
28+
* Alfredo de la Fuente <[email protected]>

hr_applicant_duplicate/__init__.py

+1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
from . import models
+15
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
# Copyright 2021 Berezi - Iker - AvanzOSC
2+
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html).
3+
{
4+
"name": "Hr Applicant Duplicate",
5+
'version': '14.0.1.0.0',
6+
"author": "Avanzosc",
7+
"category": "Sales",
8+
"depends": [
9+
"hr_recruitment",
10+
],
11+
"data": [
12+
],
13+
"license": "AGPL-3",
14+
'installable': True,
15+
}

hr_applicant_duplicate/i18n/es.po

+43
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
# Translation of Odoo Server.
2+
# This file contains the translation of the following modules:
3+
# * hr_applicant_duplicate
4+
#
5+
msgid ""
6+
msgstr ""
7+
"Project-Id-Version: Odoo Server 14.0\n"
8+
"Report-Msgid-Bugs-To: \n"
9+
"POT-Creation-Date: 2021-07-16 10:15+0000\n"
10+
"PO-Revision-Date: 2021-07-16 10:15+0000\n"
11+
"Last-Translator: \n"
12+
"Language-Team: \n"
13+
"MIME-Version: 1.0\n"
14+
"Content-Type: text/plain; charset=UTF-8\n"
15+
"Content-Transfer-Encoding: \n"
16+
"Plural-Forms: \n"
17+
18+
#. module: hr_applicant_duplicate
19+
#: model:ir.model,name:hr_applicant_duplicate.model_hr_applicant
20+
msgid "Applicant"
21+
msgstr "Candidato"
22+
23+
#. module: hr_applicant_duplicate
24+
#: code:addons/hr_applicant_duplicate/models/hr_applicant.py:0
25+
#: code:addons/hr_applicant_duplicate/models/hr_applicant.py:0
26+
#, python-format
27+
msgid "Applicant duplicated or discarded."
28+
msgstr "Candidato duplicado o descartado."
29+
30+
#. module: hr_applicant_duplicate
31+
#: model:ir.model.fields,field_description:hr_applicant_duplicate.field_hr_applicant__display_name
32+
msgid "Display Name"
33+
msgstr "Nombre mostrado"
34+
35+
#. module: hr_applicant_duplicate
36+
#: model:ir.model.fields,field_description:hr_applicant_duplicate.field_hr_applicant__id
37+
msgid "ID"
38+
msgstr ""
39+
40+
#. module: hr_applicant_duplicate
41+
#: model:ir.model.fields,field_description:hr_applicant_duplicate.field_hr_applicant____last_update
42+
msgid "Last Modified on"
43+
msgstr "Última modificación el"
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
# Translation of Odoo Server.
2+
# This file contains the translation of the following modules:
3+
# * hr_applicant_duplicate
4+
#
5+
msgid ""
6+
msgstr ""
7+
"Project-Id-Version: Odoo Server 14.0\n"
8+
"Report-Msgid-Bugs-To: \n"
9+
"POT-Creation-Date: 2021-07-16 10:15+0000\n"
10+
"PO-Revision-Date: 2021-07-16 10:15+0000\n"
11+
"Last-Translator: \n"
12+
"Language-Team: \n"
13+
"MIME-Version: 1.0\n"
14+
"Content-Type: text/plain; charset=UTF-8\n"
15+
"Content-Transfer-Encoding: \n"
16+
"Plural-Forms: \n"
17+
18+
#. module: hr_applicant_duplicate
19+
#: model:ir.model,name:hr_applicant_duplicate.model_hr_applicant
20+
msgid "Applicant"
21+
msgstr ""
22+
23+
#. module: hr_applicant_duplicate
24+
#: code:addons/hr_applicant_duplicate/models/hr_applicant.py:0
25+
#: code:addons/hr_applicant_duplicate/models/hr_applicant.py:0
26+
#, python-format
27+
msgid "Applicant duplicated or discarded."
28+
msgstr ""
29+
30+
#. module: hr_applicant_duplicate
31+
#: model:ir.model.fields,field_description:hr_applicant_duplicate.field_hr_applicant__display_name
32+
msgid "Display Name"
33+
msgstr ""
34+
35+
#. module: hr_applicant_duplicate
36+
#: model:ir.model.fields,field_description:hr_applicant_duplicate.field_hr_applicant__id
37+
msgid "ID"
38+
msgstr ""
39+
40+
#. module: hr_applicant_duplicate
41+
#: model:ir.model.fields,field_description:hr_applicant_duplicate.field_hr_applicant____last_update
42+
msgid "Last Modified on"
43+
msgstr ""
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
from . import hr_applicant
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
# Copyright 2021 Berezi - Iker - AvanzOSC
2+
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html).
3+
from odoo import models, api, _
4+
from odoo.exceptions import ValidationError
5+
6+
7+
class HrApplicant(models.Model):
8+
_inherit = 'hr.applicant'
9+
10+
@api.onchange('partner_mobile', 'email_from')
11+
def onchange_applicant_duplicate(self):
12+
if self.partner_mobile:
13+
cond1 = [
14+
('partner_mobile', '=', self.partner_mobile),
15+
('active', '=', True)]
16+
cond2 = [
17+
('partner_mobile', '=', self.partner_mobile),
18+
('active', '=', False)]
19+
employee1 = self.env['hr.applicant'].search(cond1, limit=1)
20+
employee2 = self.env['hr.applicant'].search(cond2, limit=1)
21+
if employee1 or employee2:
22+
raise ValidationError(
23+
_("Applicant duplicated or discarded."))
24+
if self.email_from:
25+
cond3 = [
26+
('email_from', '=', self.email_from), ('active', '=', True)]
27+
cond4 = [
28+
('email_from', '=', self.email_from), ('active', '=', False)]
29+
employee3 = self.env['hr.applicant'].search(cond3, limit=1)
30+
employee4 = self.env['hr.applicant'].search(cond4, limit=1)
31+
if employee3 or employee4:
32+
raise ValidationError(
33+
_("Applicant duplicated or discarded."))
+1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
from . import test_hr_applicant_duplicate
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
# Copyright (c) 2021 Berezi Amubieta - Avanzosc S.L.
2+
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
3+
4+
from odoo.tests import common
5+
from odoo.exceptions import ValidationError
6+
7+
8+
class TestHrApplicantDuplicate(common.SavepointCase):
9+
@classmethod
10+
def setUpClass(cls):
11+
super(TestHrApplicantDuplicate, cls).setUpClass()
12+
applicant_obj = cls.env['hr.applicant']
13+
cls.applicant1 = applicant_obj.create({
14+
'name': 'aaaa',
15+
'partner_mobile': '11111',
16+
'active': True,
17+
})
18+
cls.applicant2 = applicant_obj.create({
19+
'name': 'bbbb',
20+
'email_from': '[email protected]',
21+
'active': False,
22+
})
23+
24+
def test_sale_student_event(self):
25+
self.applicant1.email_from = self.applicant2.email_from
26+
with self.assertRaises(ValidationError):
27+
self.applicant1.onchange_applicant_duplicate()

0 commit comments

Comments
 (0)