Compare commits

...

49 Commits

Author SHA1 Message Date
administrator d63c8f9095 Initial commit 2025-06-25 11:14:35 +05:30
administrator 94d788ff9d Initial commit 2025-06-25 11:14:35 +05:30
administrator cf69d64dfa Initial commit 2025-06-25 11:14:35 +05:30
administrator d07668d319 Initial commit 2025-06-25 11:14:35 +05:30
administrator 9f4832b673 Initial commit 2025-06-25 11:14:35 +05:30
administrator 09c8093d39 Initial commit 2025-06-25 11:14:35 +05:30
administrator 7748d34d9a Initial commit 2025-06-25 11:14:35 +05:30
administrator 89f91e7a12 Initial commit 2025-06-25 11:14:35 +05:30
administrator d03353a7ce Initial commit 2025-06-25 11:14:35 +05:30
administrator 3c8a9603ca Initial commit 2025-06-25 11:14:34 +05:30
administrator ee680869b5 Initial commit 2025-06-25 11:14:34 +05:30
administrator ca95a980ee Initial commit 2025-06-25 11:14:34 +05:30
administrator 46f9a01cf0 Initial commit 2025-06-25 11:14:34 +05:30
administrator b35769dedf Initial commit 2025-06-25 11:14:34 +05:30
administrator 1bc56b3472 Initial commit 2025-06-25 11:14:34 +05:30
administrator 2a580c5552 Initial commit 2025-06-25 11:14:34 +05:30
administrator c05fb6fc2f Initial commit 2025-06-25 11:14:34 +05:30
administrator f553bb6e04 Initial commit 2025-06-25 11:14:34 +05:30
administrator cb0c3c3c0e Initial commit 2025-06-25 11:14:34 +05:30
administrator 9e656161bd Initial commit 2025-06-25 11:14:34 +05:30
administrator 4f51bc1df8 Initial commit 2025-06-25 11:14:34 +05:30
administrator 0a77c82525 pull commit 2025-06-25 11:14:34 +05:30
administrator 4b586a47ed Initial commit 2025-06-25 11:14:34 +05:30
Pranay 7b2d2e12f9 TimeOff Fix 2025-06-25 11:14:34 +05:30
Pranay 1dcdc9c69e time-off FIX 2025-06-25 11:14:34 +05:30
Pranay 8b40f4a9ed Recruitment Changes 2025-06-25 11:14:34 +05:30
Pranay 1531db9b34 fix whatsapp 2025-06-25 11:14:34 +05:30
Pranay 974098c6a6 update whatsapp code 2025-06-25 11:14:34 +05:30
administrator 2666b5abf9 Initial commit 2025-06-25 11:14:34 +05:30
administrator 375b7fd83e Initial commit 2025-06-25 11:14:33 +05:30
administrator 01d062072b Initial commit 2025-06-25 11:14:33 +05:30
administrator 954db09671 Initial commit 2025-06-25 11:14:33 +05:30
administrator 1b7f7fcbdb Initial commit 2025-06-25 11:14:33 +05:30
administrator 99ae7f3aa7 Initial commit 2025-06-25 11:14:33 +05:30
administrator 3ebaf06394 Initial commit 2025-06-25 11:14:33 +05:30
administrator 4e25a40911 Initial commit 2025-06-25 11:14:33 +05:30
administrator 5c822d8aa5 Initial commit 2025-06-25 11:14:33 +05:30
administrator e5ce24f848 Initial commit 2025-06-25 11:14:33 +05:30
administrator cdb71a3888 Initial commit 2025-06-25 11:14:33 +05:30
administrator 977cdd9710 Initial commit 2025-06-25 11:14:33 +05:30
administrator 4288b7fb2e Initial commit 2025-06-25 11:14:33 +05:30
administrator 0b391a1581 Initial commit 2025-06-25 11:14:33 +05:30
administrator a84a61e92d Initial commit 2025-06-25 11:14:33 +05:30
administrator 69083b1db0 Initial commit 2025-06-25 11:14:33 +05:30
administrator 22897efe79 Initial commit 2025-06-25 11:14:33 +05:30
administrator eb3566ba4f Initial commit 2025-06-25 11:14:33 +05:30
administrator 34771a0d2b Initial commit 2025-06-25 11:14:33 +05:30
administrator b7e71c776c Initial commit 2025-06-25 11:14:33 +05:30
Pranay 08da110bdd optional mail send 2025-06-25 11:12:01 +05:30
4 changed files with 65 additions and 10 deletions

View File

@ -2,16 +2,21 @@ from odoo import fields, api, models, _
from odoo.exceptions import UserError
class HRApplicant(models.Model):
_inherit = 'hr.applicant'
joining_form_link = fields.Char()
class HREmployee(models.Model):
_inherit = 'hr.employee'
applicant_id = fields.Many2one("hr.applicant")
def send_jod_form_to_employee(self):
for rec in self:
if not rec.applicant_id:
application = self.env['hr.applicant'].sudo().search([('employee_id','=',rec.id)],limit=1)
application = self.env['hr.applicant'].sudo().search([('employee_id', '=', rec.id)], limit=1)
if not application:
candidate = self.env['hr.candidate'].sudo().create({
'partner_name': rec.name,
@ -30,11 +35,11 @@ class HREmployee(models.Model):
return rec.sudo().applicant_id.send_post_onboarding_form_to_candidate()
class PostOnboardingAttachmentWizard(models.TransientModel):
_inherit = 'post.onboarding.attachment.wizard'
send_mail = fields.Boolean(default=False)
@api.onchange('template_id')
def _onchange_template_id(self):
""" Update the email body and recipients based on the selected template. """
@ -65,7 +70,6 @@ class PostOnboardingAttachmentWizard(models.TransientModel):
self.email_body = email_template.body_html # Assign the rendered email bodyc
self.email_subject = email_template.subject
def action_confirm(self):
for rec in self:
self.ensure_one()
@ -89,7 +93,6 @@ class PostOnboardingAttachmentWizard(models.TransientModel):
lambda a: a.attachment_type == 'previous_employer').mapped('name')
other_docs = rec.req_attachment_ids.filtered(lambda a: a.attachment_type == 'others').mapped('name')
# Prepare context for the template
email_context = {
'personal_docs': personal_docs,
@ -106,14 +109,30 @@ class PostOnboardingAttachmentWizard(models.TransientModel):
}
# Use 'with_context' to override the email template fields dynamically
template.sudo().with_context(default_body_html=rec.email_body,
**email_context).send_mail(applicant.id, email_values=email_values,
force_send=True)
if rec.send_mail:
template.sudo().with_context(default_body_html=rec.email_body,
**email_context).send_mail(applicant.id, email_values=email_values,
force_send=True)
base_url = self.get_base_url()
if rec.is_pre_onboarding_attachment_request:
applicant.doc_requests_form_status = 'email_sent_to_candidate'
else:
applicant.post_onboarding_form_status = 'email_sent_to_candidate'
applicant.joining_form_link = '%s/FTPROTECH/JoiningForm/%s'%(base_url,applicant.id)
return {'type': 'ir.actions.act_window_close'}
def get_base_url(self):
""" Return rooturl for a specific record.
By default, it returns the ir.config.parameter of base_url
but it can be overridden by model.
:return: the base url for this record
:rtype: str
"""
if len(self) > 1:
raise ValueError("Expected singleton or no record: %s" % self)
return self.env['ir.config_parameter'].sudo().get_param('web.base.url')

View File

@ -11,4 +11,34 @@
</field>
</record>
<record id="view_post_onboarding_attachment_wizard_form_inherit" model="ir.ui.view">
<field name="name">post.onboarding.attachment.wizard.form.inherit</field>
<field name="model">post.onboarding.attachment.wizard</field>
<field name="inherit_id" ref="hr_recruitment_extended.view_post_onboarding_attachment_wizard_form"/>
<field name="arch" type="xml">
<xpath expr="//field[@name='req_attachment_ids']" position="after">
<field name="send_mail"/>
</xpath>
<xpath expr="//notebook" position="attributes">
<attribute name="invisible">not send_mail</attribute>
</xpath>
<xpath expr="//button[@name='action_confirm']" position="attributes">
<attribute name="string">Send</attribute>
</xpath>
</field>
</record>
<record id="hr_applicant_view_form_inherit_extend" model="ir.ui.view">
<field name="name">hr.applicant.view.form.extend</field>
<field name="model">hr.applicant</field>
<field name="inherit_id" ref="hr_recruitment_extended.hr_applicant_view_form_inherit"/>
<field name="arch" type="xml">
<xpath expr="//field[@name='post_onboarding_form_status']" position="after">
<field name="joining_form_link" force_save="1" readonly="1"/>
</xpath>
</field>
</record>
</odoo>

View File

@ -18,8 +18,12 @@
'version': '0.1',
# any module necessary for this one to work correctly
'depends': ['base','hr','account','mail','hr_skills', 'hr_contract'],
# always loaded
'data': [
'security/security.xml',

View File

@ -256,6 +256,8 @@ class HRJobRecruitment(models.Model):
rec.submission_status = 'zero'
experience = fields.Many2one('candidate.experience', string="Experience")
@api.depends('application_ids.submitted_to_client')
def _compute_no_of_submissions(self):
counts = dict(self.env['hr.applicant']._read_group(