[IMP] website_hr_recruitment: trackers usability

This commit is contained in:
Mitesh Savani
2015-08-03 09:18:43 +02:00
committed by David Monjoie
parent 708cc7bbf1
commit 0c8a528b00
7 changed files with 48 additions and 33 deletions
+1 -14
View File
@@ -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>