diff --git a/addons_extensions/hr_recruitment_extended/models/__init__.py b/addons_extensions/hr_recruitment_extended/models/__init__.py
index e87225262..0636edb40 100644
--- a/addons_extensions/hr_recruitment_extended/models/__init__.py
+++ b/addons_extensions/hr_recruitment_extended/models/__init__.py
@@ -1,9 +1,10 @@
+from . import submission_share_history
from . import hr_recruitment
from . import hr_job_recruitment
from . import stages
-from . import applicant_request_forms
-from . import hr_applicant_stage_comment
-from . import hr_applicant
+from . import applicant_request_forms
+from . import hr_applicant_stage_comment
+from . import hr_applicant
from . import hr_job
from . import res_partner
from . import candidate_experience
diff --git a/addons_extensions/hr_recruitment_extended/models/hr_applicant.py b/addons_extensions/hr_recruitment_extended/models/hr_applicant.py
index 4010d4888..75ecf7f44 100644
--- a/addons_extensions/hr_recruitment_extended/models/hr_applicant.py
+++ b/addons_extensions/hr_recruitment_extended/models/hr_applicant.py
@@ -61,6 +61,30 @@ class HRApplicant(models.Model):
)
stage_comment_count = fields.Integer(compute='_compute_stage_comment_count')
stage_comment_tooltips = fields.Json(compute='_compute_stage_comment_tooltips')
+ submission_tracker = fields.One2many('recruitment.share.tracker','applicant_id')
+ submission_count = fields.Integer(
+ string="Submission Count",
+ compute="_compute_submission_count",
+ )
+
+ def _compute_submission_count(self):
+ for rec in self:
+ rec.submission_count = len(rec.submission_tracker)
+
+ def action_open_submissions_wizard(self):
+ self.ensure_one()
+
+ return {
+ "type": "ir.actions.act_window",
+ "name": "Submission History",
+ "res_model": "recruitment.share.tracker",
+ "view_mode": "list",
+ "views": [
+ (self.env.ref("hr_recruitment_extended.view_recruitment_share_tracker_list_popup").id, "list"),
+ ],
+ "domain": [("applicant_id", "=", self.id)],
+ "target": "new",
+ }
@api.depends('is_on_hold')
def _compute_hold_state(self):
diff --git a/addons_extensions/hr_recruitment_extended/models/hr_job_recruitment.py b/addons_extensions/hr_recruitment_extended/models/hr_job_recruitment.py
index b8b35ba08..6e8ef76ca 100644
--- a/addons_extensions/hr_recruitment_extended/models/hr_job_recruitment.py
+++ b/addons_extensions/hr_recruitment_extended/models/hr_job_recruitment.py
@@ -175,6 +175,7 @@ class HRJobRecruitment(models.Model):
requested_by = fields.Many2one('res.partner', string="Requested By",
default=lambda self: self.env.user.partner_id, domain="[('contact_type','=',recruitment_type)]", tracking=True)
+ submission_tracker = fields.One2many('recruitment.share.tracker','job_recruitment_id')
def action_toggle_chatter_visibility(self):
for record in self:
record.hide_chatter_suggestion = not record.hide_chatter_suggestion
@@ -405,6 +406,7 @@ class HRJobRecruitment(models.Model):
'default_template_id': self.env.ref(
'hr_recruitment_extended.job_recruitment_share_email_template'
).id,
+ 'default_is_job_recruitment': True,
},
}
diff --git a/addons_extensions/hr_recruitment_extended/models/submission_share_history.py b/addons_extensions/hr_recruitment_extended/models/submission_share_history.py
new file mode 100644
index 000000000..b22ce3268
--- /dev/null
+++ b/addons_extensions/hr_recruitment_extended/models/submission_share_history.py
@@ -0,0 +1,51 @@
+from odoo import api, fields, models
+
+
+class RecruitmentShareTracker(models.Model):
+ _name = "recruitment.share.tracker"
+ _description = "Recruitment Share Tracker"
+ _order = "date desc, id desc"
+
+ date = fields.Datetime(
+ string="Date",
+ required=True,
+ default=fields.Datetime.now,
+ )
+
+ share_type = fields.Selection(
+ [
+ ("job", "Job"),
+ ("applicant", "Applicant"),
+ ],
+ string="Share Type",
+ required=True,
+ )
+
+ reference = fields.Char(
+ string="Reference",
+ )
+
+ applicant_id = fields.Many2one(
+ "hr.applicant",
+ string="Applicant",
+ ondelete="set null",
+ )
+
+ job_recruitment_id = fields.Many2one(
+ "hr.job.recruitment",
+ string="Job Position",
+ ondelete="set null",
+ )
+
+ email_from = fields.Char(
+ string="Email From",
+ )
+
+ email_to = fields.Char(
+ string="Email To",
+ )
+
+ is_client_submission = fields.Boolean(
+ string="Client Submission",
+ default=False,
+ )
\ No newline at end of file
diff --git a/addons_extensions/hr_recruitment_extended/security/ir.model.access.csv b/addons_extensions/hr_recruitment_extended/security/ir.model.access.csv
index 7ca70add2..391deaad1 100644
--- a/addons_extensions/hr_recruitment_extended/security/ir.model.access.csv
+++ b/addons_extensions/hr_recruitment_extended/security/ir.model.access.csv
@@ -1,6 +1,7 @@
id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
access_hr_location,hr.location,model_hr_location,base.group_user,1,1,1,1
+access_recruitment_share_tracker_user,recruitment.share.tracker.user,model_recruitment_share_tracker,hr_recruitment.group_hr_recruitment_user,1,1,1,1
access_job_category_user,job.category.user,model_job_category,base.group_user,1,0,0,0
access_job_category_manager,job.category.manager,model_job_category,hr_recruitment.group_hr_recruitment_user,1,1,1,1
@@ -35,4 +36,5 @@ access_applicant_stage_comment_wizard,applicant.stage.comment.wizard.user,model_
access_hr_application_public,hr.applicant.public.access,hr_recruitment.model_hr_applicant,base.group_public,1,0,0,0
access_hr_application_group_hr,hr.applicant.hr.access,hr_recruitment.model_hr_applicant,hr.group_hr_manager,1,1,0,0
access_applicant_request_forms_hr_user,access.applicant.request.forms.hr.user,model_applicant_request_forms,hr.group_hr_user,1,1,1,1
-access_hr_skill,access.hr.skill.user,hr_skills.model_hr_skill,base.group_public,1,0,0,0
\ No newline at end of file
+access_hr_skill,access.hr.skill.user,hr_skills.model_hr_skill,base.group_public,1,0,0,0
+
diff --git a/addons_extensions/hr_recruitment_extended/views/hr_applicant_views.xml b/addons_extensions/hr_recruitment_extended/views/hr_applicant_views.xml
index 3528775de..4dcd1632a 100644
--- a/addons_extensions/hr_recruitment_extended/views/hr_applicant_views.xml
+++ b/addons_extensions/hr_recruitment_extended/views/hr_applicant_views.xml
@@ -90,6 +90,10 @@
+
+
diff --git a/addons_extensions/hr_recruitment_extended/views/hr_job_recruitment.xml b/addons_extensions/hr_recruitment_extended/views/hr_job_recruitment.xml
index 5b5e0a27a..2a89d280a 100644
--- a/addons_extensions/hr_recruitment_extended/views/hr_job_recruitment.xml
+++ b/addons_extensions/hr_recruitment_extended/views/hr_job_recruitment.xml
@@ -201,6 +201,20 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -484,7 +498,7 @@
active="0"
sequence="2"/>
-