diff options
| author | stephanchrst <stephanchrst@gmail.com> | 2022-05-10 21:51:50 +0700 |
|---|---|---|
| committer | stephanchrst <stephanchrst@gmail.com> | 2022-05-10 21:51:50 +0700 |
| commit | 3751379f1e9a4c215fb6eb898b4ccc67659b9ace (patch) | |
| tree | a44932296ef4a9b71d5f010906253d8c53727726 /addons/website_hr_recruitment/models | |
| parent | 0a15094050bfde69a06d6eff798e9a8ddf2b8c21 (diff) | |
initial commit 2
Diffstat (limited to 'addons/website_hr_recruitment/models')
| -rw-r--r-- | addons/website_hr_recruitment/models/__init__.py | 5 | ||||
| -rw-r--r-- | addons/website_hr_recruitment/models/hr_recruitment.py | 66 | ||||
| -rw-r--r-- | addons/website_hr_recruitment/models/website.py | 14 |
3 files changed, 85 insertions, 0 deletions
diff --git a/addons/website_hr_recruitment/models/__init__.py b/addons/website_hr_recruitment/models/__init__.py new file mode 100644 index 00000000..dad12c93 --- /dev/null +++ b/addons/website_hr_recruitment/models/__init__.py @@ -0,0 +1,5 @@ +# -*- coding: utf-8 -*- +# Part of Odoo. See LICENSE file for full copyright and licensing details. + +from . import hr_recruitment +from . import website diff --git a/addons/website_hr_recruitment/models/hr_recruitment.py b/addons/website_hr_recruitment/models/hr_recruitment.py new file mode 100644 index 00000000..8f47ef3c --- /dev/null +++ b/addons/website_hr_recruitment/models/hr_recruitment.py @@ -0,0 +1,66 @@ +# -*- coding: utf-8 -*- +# Part of Odoo. See LICENSE file for full copyright and licensing details. + +from werkzeug import urls + +from odoo import api, fields, models +from odoo.tools.translate import html_translate + + +class RecruitmentSource(models.Model): + _inherit = 'hr.recruitment.source' + + url = fields.Char(compute='_compute_url', string='Url Parameters') + + @api.depends('source_id', 'source_id.name', 'job_id') + def _compute_url(self): + base_url = self.env['ir.config_parameter'].sudo().get_param('web.base.url') + for source in self: + source.url = urls.url_join(base_url, "%s?%s" % (source.job_id.website_url, + urls.url_encode({ + 'utm_campaign': self.env.ref('hr_recruitment.utm_campaign_job').name, + 'utm_medium': self.env.ref('utm.utm_medium_website').name, + 'utm_source': source.source_id.name + }) + )) + + +class Applicant(models.Model): + + _inherit = 'hr.applicant' + + def website_form_input_filter(self, request, values): + if 'partner_name' in values: + values.setdefault('name', '%s\'s Application' % values['partner_name']) + if values.get('job_id'): + stage = self.env['hr.recruitment.stage'].sudo().search([ + ('fold', '=', False), + '|', ('job_ids', '=', False), ('job_ids', '=', values['job_id']), + ], order='sequence asc', limit=1) + if stage: + values['stage_id'] = stage.id + return values + + +class Job(models.Model): + + _name = 'hr.job' + _inherit = ['hr.job', 'website.seo.metadata', 'website.published.multi.mixin'] + + def _get_default_website_description(self): + default_description = self.env["ir.model.data"].xmlid_to_object("website_hr_recruitment.default_website_description") + return (default_description._render() if default_description else "") + + website_description = fields.Html('Website description', translate=html_translate, sanitize_attributes=False, default=_get_default_website_description, prefetch=False, sanitize_form=False) + + def _compute_website_url(self): + super(Job, self)._compute_website_url() + for job in self: + job.website_url = "/jobs/detail/%s" % job.id + + def set_open(self): + self.write({'website_published': False}) + return super(Job, self).set_open() + + def get_backend_menu_id(self): + return self.env.ref('hr_recruitment.menu_hr_recruitment_root').id diff --git a/addons/website_hr_recruitment/models/website.py b/addons/website_hr_recruitment/models/website.py new file mode 100644 index 00000000..5a2cd5d3 --- /dev/null +++ b/addons/website_hr_recruitment/models/website.py @@ -0,0 +1,14 @@ +# -*- coding: utf-8 -*- +# Part of Odoo. See LICENSE file for full copyright and licensing details. + +from odoo import models, _ +from odoo.addons.http_routing.models.ir_http import url_for + + +class Website(models.Model): + _inherit = "website" + + def get_suggested_controllers(self): + suggested_controllers = super(Website, self).get_suggested_controllers() + suggested_controllers.append((_('Jobs'), url_for('/jobs'), 'website_hr_recruitment')) + return suggested_controllers |
