bug fix
This commit is contained in:
parent
ff806505e2
commit
26923e20b9
|
|
@ -1,8 +1,8 @@
|
||||||
<?xml version="1.0" encoding="UTF-8" ?>
|
<?xml version="1.0" encoding="UTF-8" ?>
|
||||||
|
|
||||||
<!-- security.xml -->
|
<!--security.xml -->
|
||||||
<odoo>
|
<odoo>
|
||||||
<!-- security.xml -->
|
<!--security.xml -->
|
||||||
<odoo>
|
<odoo>
|
||||||
|
|
||||||
<record id="category_employee_appraisal" model="ir.module.category">
|
<record id="category_employee_appraisal" model="ir.module.category">
|
||||||
|
|
|
||||||
|
|
@ -170,13 +170,9 @@ class HRJobRecruitment(models.Model):
|
||||||
|
|
||||||
def send_mail_to_recruiters(self):
|
def send_mail_to_recruiters(self):
|
||||||
for rec in self:
|
for rec in self:
|
||||||
""" Open the email wizard """
|
users = (rec.interviewer_ids | rec.user_id).filtered(lambda user: user.email)
|
||||||
users = rec.interviewer_ids.ids
|
if not users:
|
||||||
primary_user = rec.user_id.id
|
raise ValidationError(_("Please add at least one recruiter with an email address before sending notifications."))
|
||||||
# template = self.env.ref('hr_recruitment_extended.email_template_recruiter_assignment_template')
|
|
||||||
# template.sudo().send_mail(rec.id, force_send=True)
|
|
||||||
|
|
||||||
users.append(primary_user)
|
|
||||||
return {
|
return {
|
||||||
'type': 'ir.actions.act_window',
|
'type': 'ir.actions.act_window',
|
||||||
'name': 'Send Email',
|
'name': 'Send Email',
|
||||||
|
|
@ -184,8 +180,10 @@ class HRJobRecruitment(models.Model):
|
||||||
'view_mode': 'form',
|
'view_mode': 'form',
|
||||||
'view_id': self.env.ref('hr_recruitment_extended.view_ats_invite_mail_template_wizard_form').id,
|
'view_id': self.env.ref('hr_recruitment_extended.view_ats_invite_mail_template_wizard_form').id,
|
||||||
'target': 'new',
|
'target': 'new',
|
||||||
'context': {'default_partner_ids': [(6, 0, users)],'default_template_id': self.env.ref("hr_recruitment_extended.email_template_recruiter_assignment_template").id,
|
'context': {
|
||||||
},
|
'default_partner_ids': [(6, 0, users.ids)],
|
||||||
|
'default_template_id': self.env.ref("hr_recruitment_extended.email_template_recruiter_assignment_template").id,
|
||||||
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
@api.onchange('requested_by')
|
@api.onchange('requested_by')
|
||||||
|
|
|
||||||
|
|
@ -428,6 +428,20 @@
|
||||||
</field>
|
</field>
|
||||||
</record>
|
</record>
|
||||||
|
|
||||||
|
<record id="action_hr_job_recruitment" model="ir.actions.act_window">
|
||||||
|
<field name="name">Job Positions Recruitment</field>
|
||||||
|
<field name="res_model">hr.job.recruitment</field>
|
||||||
|
<field name="view_mode">kanban,list,form</field>
|
||||||
|
<field name="search_view_id" ref="view_job_recruitment_filter"/>
|
||||||
|
<field name="help" type="html">
|
||||||
|
<p class="o_view_nocontent_smiling_face">
|
||||||
|
Ready to recruit more efficiently?
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
Let's create a job position recruitment request.
|
||||||
|
</p>
|
||||||
|
</field>
|
||||||
|
</record>
|
||||||
|
|
||||||
|
|
||||||
<record id="action_hr_job_recruitment_awaiting_published" model="ir.actions.act_window">
|
<record id="action_hr_job_recruitment_awaiting_published" model="ir.actions.act_window">
|
||||||
|
|
|
||||||
|
|
@ -35,18 +35,33 @@ class AtsInviteMailTemplateWizard(models.TransientModel):
|
||||||
|
|
||||||
|
|
||||||
def action_send_email(self):
|
def action_send_email(self):
|
||||||
""" Send email to the selected partners """
|
|
||||||
if not self.partner_ids:
|
if not self.partner_ids:
|
||||||
raise UserError("Please select at least one recipient.")
|
raise UserError("Please select at least one recipient.")
|
||||||
|
|
||||||
|
users_without_email = self.partner_ids.filtered(lambda user: not user.email)
|
||||||
|
if users_without_email:
|
||||||
|
raise UserError(
|
||||||
|
"These recipients do not have an email address: %s"
|
||||||
|
% ", ".join(users_without_email.mapped('name'))
|
||||||
|
)
|
||||||
|
|
||||||
|
template = self.template_id or self.env.ref(
|
||||||
|
'hr_recruitment_extended.email_template_recruiter_assignment_template'
|
||||||
|
)
|
||||||
for partner in self.partner_ids:
|
for partner in self.partner_ids:
|
||||||
template = self.env.ref('hr_recruitment_extended.email_template_recruiter_assignment_template')
|
|
||||||
values = {
|
values = {
|
||||||
'email_from': self.env.company.email,
|
'email_from': self.env.company.email or self.env.user.email_formatted,
|
||||||
'email_to': partner.email,
|
'email_to': partner.email,
|
||||||
}
|
}
|
||||||
render_ctx = dict(recruiter_name=partner.employee_id.name)
|
render_ctx = {
|
||||||
# Use 'with_context' to override the email template fields dynamically
|
'recruiter_name': partner.employee_id.name or partner.name,
|
||||||
template.sudo().with_context(default_body_html=self.email_body, default_subject=self.email_subject,**render_ctx).send_mail(self.env.context.get('active_id'),email_values=values, force_send=True)
|
'default_body_html': self.email_body,
|
||||||
|
'default_subject': self.email_subject,
|
||||||
|
}
|
||||||
|
template.sudo().with_context(**render_ctx).send_mail(
|
||||||
|
self.env.context.get('active_id'),
|
||||||
|
email_values=values,
|
||||||
|
force_send=True,
|
||||||
|
)
|
||||||
|
|
||||||
return {'type': 'ir.actions.act_window_close'} # Close wizard after sending
|
return {'type': 'ir.actions.act_window_close'} # Close wizard after sending
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,10 @@
|
||||||
{
|
{
|
||||||
"name": "Custom Module Switcher",
|
"name": "Custom Module Switcher",
|
||||||
"version": "1.0",
|
"version": "1.0",
|
||||||
"depends": ["web"],
|
"depends": ["web","menu_control_center"],
|
||||||
|
'data': [
|
||||||
|
'security/ir.model.access.csv',
|
||||||
|
],
|
||||||
"assets": {
|
"assets": {
|
||||||
"web.assets_backend": [
|
"web.assets_backend": [
|
||||||
"module_selector_sidebar/static/src/js/module_switcher.js",
|
"module_selector_sidebar/static/src/js/module_switcher.js",
|
||||||
|
|
|
||||||
|
|
@ -2,4 +2,3 @@ from . import project_kudo_extend
|
||||||
from . import task_assignee_domain
|
from . import task_assignee_domain
|
||||||
from . import project_task
|
from . import project_task
|
||||||
from . import account_analytic_line
|
from . import account_analytic_line
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue