[IMP] hr: onboarding

This commit is contained in:
fwi-odoo
2014-10-30 11:48:08 +01:00
committed by Thibault Delavallée
parent 30945bd6a3
commit b5b2718e76
10 changed files with 84 additions and 11 deletions
+2 -1
View File
@@ -394,7 +394,8 @@
<div class="oe_title">
<label for="name" class="oe_edit_only"/>
<h1><field name="name" placeholder="e.g. Product Pricing"/></h1>
<label for="planned_revenue" class="oe_edit_only"/>
<label for="planned_revenue" style="padding-right: 50px" class="oe_edit_only"/>
<label for="probability" class="oe_edit_only"/>
<h2>
<field name="company_currency" invisible="1"/>
<field name="planned_revenue" class="oe_inline" widget='monetary' options="{'currency_field': 'company_currency'}"/>
+1
View File
@@ -55,6 +55,7 @@ You can manage:
'hr_view.xml',
'hr_installer.xml',
'hr_data.xml',
'hr_tip_data.xml',
'res_config_view.xml',
'mail_hr_view.xml',
'res_users_view.xml',
+2 -2
View File
@@ -72,7 +72,6 @@ class hr_employee_category(osv.Model):
(_check_recursion, 'Error! You cannot create recursive Categories.', ['parent_id'])
]
class hr_job(osv.Model):
def _get_nbr_employees(self, cr, uid, ids, name, args, context=None):
@@ -129,11 +128,12 @@ class hr_job(osv.Model):
_defaults = {
'company_id': lambda self, cr, uid, ctx=None: self.pool.get('res.company')._company_default_get(cr, uid, 'hr.job', context=ctx),
'state': 'recruit',
'no_of_recruitment' : 1,
}
_sql_constraints = [
('name_company_uniq', 'unique(name, company_id, department_id)', 'The name of the job position must be unique per department in company!'),
('hired_employee_check', "CHECK ( no_of_hired_employee <= no_of_recruitment )", "Number of hired employee must be less than expected number of employee in recruitment."),
]
def set_recruit(self, cr, uid, ids, context=None):
+39
View File
@@ -0,0 +1,39 @@
<?xml version="1.0" encoding="UTF-8"?>
<openerp>
<data>
<record model="web.tip" id="hr_tip_1">
<field name="title"></field>
<field name="description">By clicking here, you can keep a track of yours applications concerning this job position. You'll be able to plan meetings and manage documents related to the applicants.</field>
<field name="action_id" ref="hr.action_hr_job"/>
<field name="model">hr.job</field>
<field name="mode">form</field>
<field name="trigger_selector">.oe_form_buttons_view:visible,div.oe_right > .oe_button_box > button</field>
<field name="highlight_selector">div.oe_right > .oe_button_box:visible > button:nth-child(1)</field>
<field name="placement">bottom</field>
</record>
<record model="web.tip" id="hr_tip_2">
<field name="title"></field>
<field name="description">This is where you navigate through your process. Click here to go back to where you came from.</field>
<field name="model">hr.applicant</field>
<field name="mode">form</field>
<field name="trigger_selector">.oe_breadcrumb_title:visible</field>
<field name="highlight_selector">.oe_breadcrumb_title > a:nth-child(3)</field>
<field name="placement">bottom</field>
</record>
<record model="web.tip" id="hr_tip_3">
<field name="title"></field>
<field name="description">Congratulations ! your employee has been created. In this form, you can modify his personal information or even add a picture.</field>
<field name="model">hr.employee</field>
<field name="mode">form</field>
<field name="trigger_selector">.oe_breadcrumb_title:visible,.oe_form_sheet:visible</field>
<field name="highlight_selector">.oe_form_sheet:visible</field>
<field name="placement">auto top</field>
</record>
</data>
</openerp>
+3 -5
View File
@@ -131,6 +131,7 @@
<field name="name" string="Employees" filter_domain="['|',('work_email','ilike',self),('name','ilike',self)]"/>
<field name="department_id" />
<field name="category_ids" groups="base.group_hr_user"/>
<field name="job_id" />
<filter string="New Mail" name="message_unread" domain="[('message_unread','=',True)]"/>
<group expand="0" string="Group By">
<filter string="Manager" icon="terp-personal" domain="[]" context="{'group_by':'parent_id'}"/>
@@ -361,11 +362,8 @@
<div class="oe_right" name="buttons"/>
<group name="employee_data">
<field name="department_id" class="oe_inline"/>
<label for="no_of_employee"/>no_of_recruitment
<div>
<field name="no_of_employee" class="oe_inline"/>
<p><field name="no_of_recruitment" groups="base.group_user" colspan="0" class="oe_inline" style="padding-top: 1px"/> new employee(s) expected</p>
</div>
<field name="no_of_recruitment" class="oe_inline" />
</group>
<div attrs="{'invisible': [('state', '!=', 'recruit')]}">
<label for="description"/>
+2
View File
@@ -48,6 +48,8 @@ class hr_config_settings(osv.osv_memory):
help ="""This installs the module account_analytic_analysis, which will install sales management too."""),
'module_hr_payroll': fields.boolean('Manage payroll',
help ="""This installs the module hr_payroll."""),
'module_website_hr_recruitment': fields.boolean('Publish jobs on your website',
help ="""This installs the module website_hr_recruitment"""),
}
def onchange_hr_timesheet(self, cr, uid, ids, timesheet, context=None):
+9
View File
@@ -99,6 +99,15 @@
</div>
</div>
</group>
<group name="website_grp">
<label for="id" string="Website"/>
<div>
<div>
<field name="module_website_hr_recruitment" class="oe_inline"/>
<label for="module_website_hr_recruitment"/>
</div>
</div>
</group>
</form>
</field>
</record>
+24 -1
View File
@@ -338,6 +338,23 @@
</field>
</record>
<!-- Action for the stat button of the no_employee -->
<record model="ir.actions.act_window" id="action_hr_job_no_employee">
<field name="name">Employees</field>
<field name="res_model">hr.employee</field>
<field name="view_mode">kanban,tree,form</field>
<field name="context">{'search_default_job_id': active_id}</field>
<field name="help" type="html">
<p class="oe_view_nocontent_create">
Click to add a new employee.
</p><p>
With just a quick glance on the Odoo employee screen, you
can easily find all the information you need for each person;
contact data, job position, availability, etc.
</p>
</field>
</record>
<record id="hr_job_survey" model="ir.ui.view">
<field name="name">hr.job.form1</field>
<field name="model">hr.job</field>
@@ -377,6 +394,12 @@
type="action">
<field name="application_count" widget="statinfo" string="Applications"/>
</button>
<button class="oe_stat_button"
icon="fa-users"
name="%(action_hr_job_no_employee)d"
type="action">
<field name="no_of_employee" widget="statinfo" string="Employees"/>
</button>
<button class="oe_stat_button"
icon="fa-book"
name="action_get_attachment_tree_view"
@@ -498,7 +521,7 @@
<field name="context">{'search_default_in_recruitment': 1}</field>
<field name="help" type="html">
<p class="oe_view_nocontent_create">
Click here to create a new job or remove the filter on "In Recruitment" to recruit for an on hold job.
Click here to create a new job. You can remove the "In Recruitment" filter to display all the job positions.
</p>
<p>
Define job position profile and manage recruitment in a context of a particular job: print interview survey, define number of expected new employees, and manage its recruitment pipe
+1 -1
View File
@@ -1,5 +1,5 @@
{
'name': 'Jobs',
'name': 'Online Jobs',
'category': 'Website',
'version': '1.0',
'summary': 'Job Descriptions And Application Forms',
+1 -1
View File
@@ -461,7 +461,7 @@
<field name="res_model">res.partner</field>
<field name="view_type">form</field>
<field name="view_mode">kanban,tree,form</field>
<field name="domain">[('customer','=',1)]</field>
<field name="domain">[('customer','=',True)]</field>
<field name="context">{'default_customer':1, 'search_default_customer':1}</field>
<field name="filter" eval="True"/>
<field name="help" type="html">