[IMP] website_hr_recruitment: trackers usability
This commit is contained in:
committed by
David Monjoie
parent
708cc7bbf1
commit
0c8a528b00
@@ -22,23 +22,10 @@ class RecruitmentSource(models.Model):
|
||||
_inherits = {"utm.source": "source_id"}
|
||||
|
||||
source_id = fields.Many2one('utm.source', "Source", ondelete='cascade', required=True)
|
||||
url = fields.Char(string="Url parameters", compute='_compute_url')
|
||||
email = fields.Char(related='alias_id.alias_name', string="Email", readonly=True)
|
||||
email = fields.Char(related='alias_id.display_name', string="Email", readonly=True)
|
||||
job_id = fields.Many2one('hr.job', "Job ID")
|
||||
alias_id = fields.Many2one('mail.alias', "Alias ID")
|
||||
|
||||
@api.depends('source_id', 'source_id.name')
|
||||
@api.one
|
||||
def _compute_url(self):
|
||||
if not self.alias_id.id:
|
||||
self.url = ""
|
||||
else:
|
||||
self.url = werkzeug.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': self.source_id.name
|
||||
})
|
||||
|
||||
@api.multi
|
||||
def create_alias(self):
|
||||
campaign = self.env.ref('hr_recruitment.utm_campaign_job')
|
||||
|
||||
@@ -29,6 +29,8 @@ class hr_recruitment_report(models.Model):
|
||||
partner_id = fields.Many2one('res.partner', 'Partner', readonly=True)
|
||||
delay_close = fields.Float('Avg. Delay to Close', digits=(16, 2), readonly=True, group_operator="avg", help="Number of Days to close the project issue")
|
||||
last_stage_id = fields.Many2one('hr.recruitment.stage', 'Last Stage')
|
||||
medium_id = fields.Many2one('utm.medium', 'Medium', readonly=True, help="This is the method of delivery. Ex: Postcard, Email, or Banner Ad")
|
||||
source_id = fields.Many2one('utm.source', 'Source', readonly=True, help="This is the source of the link Ex: Search Engine, another domain, or name of email list")
|
||||
|
||||
def init(self, cr):
|
||||
tools.drop_view_if_exists(cr, 'hr_recruitment_report')
|
||||
@@ -48,6 +50,8 @@ class hr_recruitment_report(models.Model):
|
||||
s.priority,
|
||||
s.stage_id,
|
||||
s.last_stage_id,
|
||||
s.medium_id,
|
||||
s.source_id,
|
||||
sum(salary_proposed) as salary_prop,
|
||||
(sum(salary_proposed)/count(*)) as salary_prop_avg,
|
||||
sum(salary_expected) as salary_exp,
|
||||
@@ -69,6 +73,8 @@ class hr_recruitment_report(models.Model):
|
||||
s.type_id,
|
||||
s.priority,
|
||||
s.job_id,
|
||||
s.department_id
|
||||
s.department_id,
|
||||
s.medium_id,
|
||||
s.source_id
|
||||
)
|
||||
""")
|
||||
|
||||
@@ -339,7 +339,7 @@
|
||||
<record model="ir.actions.act_window" id="action_hr_job_sources">
|
||||
<field name="name">Jobs Sources</field>
|
||||
<field name="res_model">hr.recruitment.source</field>
|
||||
<field name="view_mode">tree,form</field>
|
||||
<field name="view_mode">tree</field>
|
||||
<field name="domain">[('job_id', '=', active_id)]</field>
|
||||
<field name="context">{'default_job_id': active_id}</field>
|
||||
<field name="help" type="html">
|
||||
@@ -642,29 +642,13 @@
|
||||
<field name="name">hr.recruitment.source.tree</field>
|
||||
<field name="model">hr.recruitment.source</field>
|
||||
<field name="arch" type="xml">
|
||||
<tree string="Sources of Applicants">
|
||||
<tree string="Sources of Applicants" editable="top">
|
||||
<field name="source_id"/>
|
||||
<field name="email"/>
|
||||
<field name="url"/>
|
||||
<button name="create_alias" string="Create alias" type="object" icon="gtk-redo" />
|
||||
</tree>
|
||||
</field>
|
||||
</record>
|
||||
<record model="ir.ui.view" id="hr_recruitment_source_form">
|
||||
<field name="name">hr.recruitment.source.form</field>
|
||||
<field name="model">hr.recruitment.source</field>
|
||||
<field name="arch" type="xml">
|
||||
<form string="Sources of Applicants">
|
||||
<group>
|
||||
<field name="source_id"/>
|
||||
<field name="email"/>
|
||||
<field name="url"/>
|
||||
<field name="alias_id" invisible="1"/>
|
||||
<field name="job_id" invisible="1"/>
|
||||
</group>
|
||||
</form>
|
||||
</field>
|
||||
</record>
|
||||
<record id="hr_recruitment_source_action" model="ir.actions.act_window">
|
||||
<field name="name">Sources of Applicants</field>
|
||||
<field name="res_model">hr.recruitment.source</field>
|
||||
|
||||
@@ -16,6 +16,7 @@ OpenERP Contact Form
|
||||
'data/config_data.xml',
|
||||
'views/hr_job_views.xml',
|
||||
'views/templates.xml',
|
||||
'views/hr_recruitment_view.xml',
|
||||
],
|
||||
'demo': [
|
||||
'data/hr_job_demo.xml',
|
||||
|
||||
@@ -1 +1,2 @@
|
||||
import hr_job
|
||||
import hr_recruitment_source
|
||||
|
||||
@@ -0,0 +1,23 @@
|
||||
from urlparse import urljoin
|
||||
from werkzeug import url_encode
|
||||
|
||||
from openerp import models, fields, api
|
||||
from openerp.addons.website.models.website import slug
|
||||
|
||||
class HrRecruitmentSource(models.Model):
|
||||
_inherit = 'hr.recruitment.source'
|
||||
|
||||
@api.depends('source_id', 'source_id.name', 'job_id')
|
||||
@api.one
|
||||
def _compute_url(self):
|
||||
base_url = self.env['ir.config_parameter'].get_param('web.base.url')
|
||||
for source in self:
|
||||
source.url = urljoin(base_url, "%s?%s" % (source.job_id.website_url,
|
||||
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
|
||||
})
|
||||
))
|
||||
|
||||
url = fields.Char(compute='_compute_url', string='Url Parameters')
|
||||
@@ -0,0 +1,13 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<odoo>
|
||||
<record id="view_hr_recruitment_tree_url" model="ir.ui.view" >
|
||||
<field name="name">hr.recruitment.tree.inherit.url</field>
|
||||
<field name="model">hr.recruitment.source</field>
|
||||
<field name="inherit_id" ref="hr_recruitment.hr_recruitment_source_tree"/>
|
||||
<field name="arch" type="xml">
|
||||
<xpath expr="//button[@name='create_alias']" position="before">
|
||||
<field name="url"/>
|
||||
</xpath>
|
||||
</field>
|
||||
</record>
|
||||
</odoo>
|
||||
Reference in New Issue
Block a user