summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--addons/hr_recruitment/data/hr_recruitment_data.xml16
-rw-r--r--addons/hr_recruitment/data/hr_recruitment_demo.xml35
-rw-r--r--addons/hr_recruitment/models/hr_job.py10
-rw-r--r--addons/hr_recruitment/models/hr_recruitment.py5
-rw-r--r--addons/hr_recruitment/views/hr_job_views.xml8
-rw-r--r--addons/hr_recruitment/views/hr_recruitment_views.xml23
-rw-r--r--addons/utm/data/utm_data.xml12
7 files changed, 74 insertions, 35 deletions
diff --git a/addons/hr_recruitment/data/hr_recruitment_data.xml b/addons/hr_recruitment/data/hr_recruitment_data.xml
index 2428628ab79..0059e324493 100644
--- a/addons/hr_recruitment/data/hr_recruitment_data.xml
+++ b/addons/hr_recruitment/data/hr_recruitment_data.xml
@@ -116,7 +116,7 @@
<hr width="97%" style="background-color: rgb(204,204,204); border: medium none; clear: both; display: block; font-size: 0px; min-height: 1px; line-height: 0; margin: 16px 0px 16px 0px;"/>
<h3 style="color:#9A6C8E;"><strong>What is the next step?</strong></h3>
- We usually <strong>answer applications within 3 days</strong>.
+ We usually <strong>answer applications within a few days</strong>.
<br/><br/>
The next step is either a call or a meeting in our offices.
<br/>
@@ -156,12 +156,6 @@
% set location = '%s, %s' % (location, object.job_id.address_id.country_id.name)
% endif
<br/>
-
- % if object.job_id.address_id:
- <a href="https://maps.google.com/maps?q=${location}" target="new">
- <img src="http://maps.googleapis.com/maps/api/staticmap?autoscale=1&amp;size=598x200&amp;maptype=roadmap&amp;format=png&amp;visual_refresh=true&amp;markers=size:mid%7Ccolor:0xa5117d%7Clabel:%7C${location}" style="vertical-align:bottom;"/>
- </a>
- % endif
</div>
</td>
</tr>
@@ -214,7 +208,7 @@
% endif
<h3 style="color:#9A6C8E;"><strong>What is the next step?</strong></h3>
- We usually <strong>answer applications within 3 days.</strong><br/><br/>
+ We usually <strong>answer applications within a few days.</strong><br/><br/>
Feel free to <strong>contact us if you want a faster
feedback</strong> or if you don't get news from us
quickly enough (just reply to this email).
@@ -250,11 +244,6 @@
% set location = '%s, %s' % (location, object.job_id.address_id.country_id.name)
% endif
<br/>
- % if object.job_id.address_id:
- <a href="https://maps.google.com/maps?q=${location}" target="new">
- <img src="http://maps.googleapis.com/maps/api/staticmap?autoscale=1&amp;size=598x200&amp;maptype=roadmap&amp;format=png&amp;visual_refresh=true&amp;markers=size:mid%7Ccolor:0xa5117d%7Clabel:%7C${location}" style="vertical-align:bottom;"/>
- </a>
- % endif
</div>
</td>
</tr>
@@ -362,7 +351,6 @@
</record>
<record model="hr.recruitment.stage" id="stage_job2">
<field name="name">First Interview</field>
- <field name="template_id" ref="email_template_data_applicant_interest"/>
<field name="sequence">2</field>
</record>
<record model="hr.recruitment.stage" id="stage_job3">
diff --git a/addons/hr_recruitment/data/hr_recruitment_demo.xml b/addons/hr_recruitment/data/hr_recruitment_demo.xml
index 193cfe6b3f4..1bd63aa1f2b 100644
--- a/addons/hr_recruitment/data/hr_recruitment_demo.xml
+++ b/addons/hr_recruitment/data/hr_recruitment_demo.xml
@@ -40,6 +40,41 @@
<field name="no_of_recruitment">6</field>
</record>
+ <record id="hr_recruitment_linkedin_developer" model="hr.recruitment.source">
+ <field name="source_id" ref="utm.utm_source_linkedin"/>
+ <field name="job_id" ref="hr.job_developer"/>
+ </record>
+
+ <record id="hr_recruitment_linkedin_ceo" model="hr.recruitment.source">
+ <field name="source_id" ref="utm.utm_source_linkedin"/>
+ <field name="job_id" ref="hr.job_ceo"/>
+ </record>
+
+ <record id="hr_recruitment_linkedin_cto" model="hr.recruitment.source">
+ <field name="source_id" ref="utm.utm_source_linkedin"/>
+ <field name="job_id" ref="hr.job_cto"/>
+ </record>
+
+ <record id="hr_recruitment_linkedin_consultant" model="hr.recruitment.source">
+ <field name="source_id" ref="utm.utm_source_linkedin"/>
+ <field name="job_id" ref="hr.job_consultant"/>
+ </record>
+
+ <record id="hr_recruitment_linkedin_hrm" model="hr.recruitment.source">
+ <field name="source_id" ref="utm.utm_source_linkedin"/>
+ <field name="job_id" ref="hr.job_hrm"/>
+ </record>
+
+ <record id="hr_recruitment_linkedin_marketing" model="hr.recruitment.source">
+ <field name="source_id" ref="utm.utm_source_linkedin"/>
+ <field name="job_id" ref="hr.job_marketing"/>
+ </record>
+
+ <record id="hr_recruitment_linkedin_trainee" model="hr.recruitment.source">
+ <field name="source_id" ref="utm.utm_source_linkedin"/>
+ <field name="job_id" ref="hr.job_trainee"/>
+ </record>
+
<record id="hr_case_salesman0" model="hr.applicant">
<field name="name">Sales Manager</field>
<field name="job_id" ref="hr.job_marketing"/>
diff --git a/addons/hr_recruitment/models/hr_job.py b/addons/hr_recruitment/models/hr_job.py
index 5b7efdc78c8..aefd550d694 100644
--- a/addons/hr_recruitment/models/hr_job.py
+++ b/addons/hr_recruitment/models/hr_job.py
@@ -108,7 +108,15 @@ class Job(models.Model):
@api.model
def create(self, vals):
vals['favorite_user_ids'] = vals.get('favorite_user_ids', []) + [(4, self.env.uid)]
- return super(Job, self).create(vals)
+ new_job = super(Job, self).create(vals)
+ utm_linkedin = self.env.ref("utm.utm_source_linkedin", raise_if_not_found=False)
+ if utm_linkedin:
+ source_vals = {
+ 'source_id': utm_linkedin.id,
+ 'job_id': new_job.id,
+ }
+ self.env['hr.recruitment.source'].create(source_vals)
+ return new_job
def _creation_subtype(self):
return self.env.ref('hr_recruitment.mt_job_new')
diff --git a/addons/hr_recruitment/models/hr_recruitment.py b/addons/hr_recruitment/models/hr_recruitment.py
index a17e1a5e957..3623eaebd2c 100644
--- a/addons/hr_recruitment/models/hr_recruitment.py
+++ b/addons/hr_recruitment/models/hr_recruitment.py
@@ -22,7 +22,7 @@ class RecruitmentSource(models.Model):
source_id = fields.Many2one('utm.source', "Source", ondelete='cascade', required=True)
email = fields.Char(related='alias_id.display_name', string="Email", readonly=True)
- job_id = fields.Many2one('hr.job', "Job ID")
+ job_id = fields.Many2one('hr.job', "Job", ondelete='cascade')
alias_id = fields.Many2one('mail.alias', "Alias ID")
def create_alias(self):
@@ -44,7 +44,6 @@ class RecruitmentSource(models.Model):
source.alias_id = self.env['mail.alias'].create(vals)
source.name = source.source_id.name
-
class RecruitmentStage(models.Model):
_name = "hr.recruitment.stage"
_description = "Recruitment Stages"
@@ -97,7 +96,7 @@ class Applicant(models.Model):
_order = "priority desc, id desc"
_inherit = ['mail.thread.cc', 'mail.activity.mixin', 'utm.mixin']
- name = fields.Char("Subject / Application Name", required=True)
+ name = fields.Char("Subject / Application Name", required=True, help="Email subject for applications sent via email")
active = fields.Boolean("Active", default=True, help="If the active field is set to false, it will allow you to hide the case without removing it.")
description = fields.Text("Description")
email_from = fields.Char("Email", size=128, help="Applicant email", compute='_compute_partner_phone_email',
diff --git a/addons/hr_recruitment/views/hr_job_views.xml b/addons/hr_recruitment/views/hr_job_views.xml
index 462df73223c..9f874cf8eab 100644
--- a/addons/hr_recruitment/views/hr_job_views.xml
+++ b/addons/hr_recruitment/views/hr_job_views.xml
@@ -69,7 +69,7 @@
<div class="o_recruitment_kanban_box o_kanban_primary_bottom bottom_block" style="padding-left:8px;">
<div class="col-6"></div>
<div class="col-6">
- <a type="action" name="%(action_hr_job_sources)d">Share Trackers</a>
+ <a type="action" name="%(action_hr_job_sources)d">Link Trackers</a>
</div>
</div>
</div>
@@ -102,12 +102,6 @@
<xpath expr="//field[@name='department_id']" position="after">
<filter string="My Job Positions" name="my_positions" domain="[('user_id', '=', uid)]"/>
</xpath>
- <xpath expr="//group" position="after">
- <searchpanel>
- <field name="company_id" groups="base.group_multi_company" icon="fa-building"/>
- <field name="user_id" icon="fa-users"/>
- </searchpanel>
- </xpath>
</field>
</record>
diff --git a/addons/hr_recruitment/views/hr_recruitment_views.xml b/addons/hr_recruitment/views/hr_recruitment_views.xml
index b4fc4ad76b2..3062ace075b 100644
--- a/addons/hr_recruitment/views/hr_recruitment_views.xml
+++ b/addons/hr_recruitment/views/hr_recruitment_views.xml
@@ -27,21 +27,23 @@
<tree string="Applicants" multi_edit="1">
<field name="message_needaction" invisible="1"/>
<field name="last_stage_id" invisible="1"/>
- <field name="create_date" readonly="1" widget="date"/>
+ <field name="create_date" readonly="1" widget="date" optional="show"/>
<field name="date_last_stage_update" invisible="1"/>
<field name="name" readonly="1"/>
<field name="partner_name" readonly="1"/>
- <field name="email_from" readonly="1"/>
- <field name="partner_phone" widget="phone" readonly="1"/>
+ <field name="email_from" readonly="1" optional="hide"/>
+ <field name="partner_phone" widget="phone" readonly="1" optional="hide"/>
<field name="job_id"/>
<field name="stage_id"/>
- <field name="medium_id"/>
- <field name="source_id" readonly="1"/>
- <field name="priority" widget="priority"/>
+ <field name="medium_id" optional="hide"/>
+ <field name="source_id" readonly="1" optional="hide"/>
+ <field name="priority" widget="priority" optional="show"/>
+ <field name="salary_expected" optional="show"/>
+ <field name="salary_proposed" optional="hide"/>
<field name="type_id" invisible="1"/>
- <field name="availability" invisible="1"/>
+ <field name="availability" optional="show"/>
<field name="department_id" invisible="context.get('invisible_department', True)" readonly="1"/>
- <field name="user_id" widget="many2one_avatar_user"/>
+ <field name="user_id" widget="many2one_avatar_user" optional="hide"/>
<field name="company_id" groups="base.group_multi_company" readonly="1"/>
</tree>
</field>
@@ -201,7 +203,7 @@
<separator/>
<filter string="Unread Messages" name="message_needaction" domain="[('message_needaction', '=', True)]"/>
<separator/>
- <filter string="Archived" name="inactive" domain="[('active', '=', False)]"/>
+ <filter string="Archived / Refused" name="inactive" domain="[('active', '=', False)]"/>
<separator/>
<filter invisible="1" string="Late Activities" name="activities_overdue"
domain="[('activity_ids.date_deadline', '&lt;', context_today().strftime('%Y-%m-%d'))]"
@@ -853,7 +855,8 @@ action = act
<field name="model">hr.recruitment.source</field>
<field name="arch" type="xml">
<tree string="Sources of Applicants" editable="top" class="o_recruitment_list">
- <field name="source_id"/>
+ <field name="source_id" placeholder="e.g. LinkedIn"/>
+ <field name="job_id"/>
<button name="create_alias" title="Generate email alias" type="object" icon="fa-repeat" />
<field name="email"/>
</tree>
diff --git a/addons/utm/data/utm_data.xml b/addons/utm/data/utm_data.xml
index cf7bafd7134..b9fb8274a31 100644
--- a/addons/utm/data/utm_data.xml
+++ b/addons/utm/data/utm_data.xml
@@ -24,6 +24,18 @@
<record model="utm.source" id="utm_source_twitter">
<field name="name">Twitter</field>
</record>
+ <record model="utm.source" id="utm_source_linkedin">
+ <field name="name">LinkedIn</field>
+ </record>
+ <record model="utm.source" id="utm_source_monster">
+ <field name="name">Monster</field>
+ </record>
+ <record model="utm.source" id="utm_source_glassdoor">
+ <field name="name">Glassdoor</field>
+ </record>
+ <record model="utm.source" id="utm_source_craigslist">
+ <field name="name">Craigslist</field>
+ </record>
<!-- UTM Medium -->
<record model="utm.medium" id="utm_medium_website">