[MERGE] hr_recurtiment: merge psi branch (lp:~openerp-commiter/openobject-addons/trunk-mod3-local)

bzr revid: mra@tinyerp.com-20100512080315-boy1az4jprsmbxpk
This commit is contained in:
mra (Open ERP) 2010-05-12 13:33:15 +05:30
commit ed311920d2
8 changed files with 107 additions and 42 deletions

View File

@ -19,9 +19,8 @@
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
##############################################################################
import hr_recruitment
import report
import wizard
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:

View File

@ -19,7 +19,6 @@
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
##############################################################################
{
'name': 'HR - Recruitement',
'version': '1.0',
@ -35,9 +34,6 @@ system to store and search in your CV base.
'author': 'Tiny',
'website': 'http://www.openerp.com',
'depends': ['hr','survey','crm'],
'init_xml': [
'hr_recruitment_data.xml'
],
'update_xml': [
'wizard/hr_recruitment_phonecall_view.xml',
'hr_recruitment_view.xml',
@ -49,10 +45,14 @@ system to store and search in your CV base.
'report/hr_recruitment_report_view.xml',
'wizard/hr_recruitment_create_partner_job_view.xml',
],
'init_xml': [
'hr_recruitment_data.xml'
],
'demo_xml': [
'hr_recruitment_demo.xml'
],
'installable': True,
'active': False,
}
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:

View File

@ -37,6 +37,20 @@ AVAILABLE_PRIORITIES = [
('1','Excellent')
]
class hr_recruitment_stage(osv.osv):
""" Stage of HR Recruitment """
_name = "hr.recruitment.stage"
_description = "Stage of Recruitment"
_columns = {
'name': fields.char('Name', size=64, required=True, translate=True),
'sequence': fields.integer('Sequence', help="Gives the sequence order when displaying a list of stages."),
'requirements': fields.text('Requirements')
}
_defaults = {
'sequence': 1,
}
hr_recruitment_stage()
class hr_applicant(osv.osv):
_name = "hr.applicant"
@ -54,8 +68,8 @@ class hr_applicant(osv.osv):
'partner_name': fields.char("Applicant's Name", size=64),
'partner_phone': fields.char('Phone', size=32),
'partner_mobile': fields.char('Mobile', size=32),
'stage_id': fields.many2one ('crm.case.stage', 'Stage', domain="[('section_id','=',section_id),('object_id.model', '=', 'hr.applicant')]"),
'type_id': fields.many2one('crm.case.resource.type', 'Degree', domain="[('section_id','=',section_id),('object_id.model', '=', 'hr.applicant')]"),
'stage_id': fields.many2one ('hr.recruitment.stage', 'Stage'),
'type_id': fields.many2one('crm.case.resource.type', 'Degree'),
'department_id':fields.many2one('hr.department','Department'),
'state': fields.selection(AVAILABLE_STATES, 'State', size=16, readonly=True),
'survey' : fields.related('job_id', 'survey_id', type='many2one', relation='survey', string='Survey'),
@ -75,7 +89,7 @@ class hr_applicant(osv.osv):
for case in self.browse(cr, uid, ids, context):
section = (case.section_id.id or False)
st = case.stage_id.id or False
stage_ids = self.pool.get('crm.case.stage').search(cr, uid, [])
stage_ids = self.pool.get('hr.recruitment.stage').search(cr, uid, [])
if st and stage_ids.index(st):
self.write(cr, uid, [case.id], {'stage_id': stage_ids[stage_ids.index(st)-1]})
return True
@ -93,7 +107,7 @@ class hr_applicant(osv.osv):
for case in self.browse(cr, uid, ids, context):
section = (case.section_id.id or False)
st = case.stage_id.id or False
stage_ids = self.pool.get('crm.case.stage').search(cr, uid, [])
stage_ids = self.pool.get('hr.recruitment.stage').search(cr, uid, [])
if st and len(stage_ids) != stage_ids.index(st)+1:
self.write(cr, uid, [case.id], {'stage_id': stage_ids[stage_ids.index(st)+1]})
return True
@ -176,4 +190,6 @@ class hr_job(osv.osv):
'survey_id': fields.many2one('survey', 'Survey'),
}
hr_job()
hr_job()
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:

View File

@ -32,31 +32,31 @@
<!-- STAGE(stage_id) -->
<record model="crm.case.stage" id="stage_job1">
<record model="hr.recruitment.stage" id="stage_job1">
<field name="name">Initial Jobs Demand</field>
<field name="object_id" search="[('model','=','hr.applicant')]" model="ir.model"/>
</record>
<record model="crm.case.stage" id="stage_job2">
<record model="hr.recruitment.stage" id="stage_job2">
<field name="name">First Interview</field>
<field name="object_id" search="[('model','=','hr.applicant')]" model="ir.model"/>
</record>
<record model="crm.case.stage" id="stage_job3">
<record model="hr.recruitment.stage" id="stage_job3">
<field name="name">Second Interview</field>
<field name="object_id" search="[('model','=','hr.applicant')]" model="ir.model"/>
</record>
<record model="crm.case.stage" id="stage_job4">
<record model="hr.recruitment.stage" id="stage_job4">
<field name="name">Contract Proposed</field>
<field name="object_id" search="[('model','=','hr.claim')]" model="ir.model"/>
</record>
<record model="crm.case.stage" id="stage_job5">
<record model="hr.recruitment.stage" id="stage_job5">
<field name="name">Contract Signed</field>
<field name="object_id" search="[('model','=','hr.applicant')]" model="ir.model"/>
</record>
<record model="crm.case.stage" id="stage_job6">
<record model="hr.recruitment.stage" id="stage_job6">
<field name="name">Refused by Employee</field>
<field name="object_id" search="[('model','=','hr.applicant')]" model="ir.model"/>
</record>
<record model="crm.case.stage" id="stage_job7">
<record model="hr.recruitment.stage" id="stage_job7">
<field name="name">Refused by Company</field>
<field name="object_id" search="[('model','=','hr.applicant')]" model="ir.model"/>
</record>

View File

@ -7,12 +7,12 @@
# ------------------------------------------------------
<record id="hr_job_categ_action" model="ir.actions.act_window">
<field name="name">Applicant Categories</field>
<field name="res_model">crm.case.categ</field>
<field name="view_type">form</field>
<field name="view_id" ref="crm.crm_case_categ_tree-view"/>
<field name="domain">[('object_id.model', '=', 'hr.applicant')]</field>
<field name="context">{'object_id':'hr.applicant'}</field>
<field name="name">Applicant Categories</field>
<field name="res_model">crm.case.categ</field>
<field name="view_type">form</field>
<field name="view_id" ref="crm.crm_case_categ_tree-view"/>
<field name="domain">[('object_id.model', '=', 'hr.applicant')]</field>
<field name="context">{'object_id':'hr.applicant'}</field>
</record>
# ------------------------------------------------------
# Stage
@ -70,19 +70,19 @@
<form string="Jobs - Recruitment Form">
<group colspan="4" col="8">
<field name="name" string="Subject"/>
<label string="Stage: " align="1.0"/>
<group colspan="1" col="2">
<field name="stage_id" nolabel="1"/>
<button name="stage_previous" string="" type="object" icon="gtk-go-back"/>
<button icon="gtk-go-forward" string="" name="stage_next" type="object"/>
</group>
<field name="partner_name"/>
<field name="user_id"/>
<button string="Schedule a Phone Call"
name="%(action_hr_recruitment_phonecall)d" icon="gtk-redo" type="action"/>
<button name="%(survey.action_view_survey_question_message)d" string="Interview Question" type="action"
icon="gtk-execute" context="{'survey_id': survey, 'response_id': [response], 'response_no':0 ,'active' : response, 'object' : 'hr.applicant', 'cur_id' :active_id}" attrs="{'readonly':[('survey','=',False)]}"/>
<newline/>
<field name="partner_name"/>
<label string="Stage: " align="1.0"/>
<group colspan="1" col="4">
<field name="stage_id" nolabel="1"/>
<button name="stage_previous" string="" type="object" icon="gtk-go-back"/>
<button icon="gtk-go-forward" string="" name="stage_next" type="object"/>
</group>
<field name="job_id"/>
<field name="department_id" widget="selection"/>
<button name="action_makeMeeting" type="object"
@ -108,7 +108,7 @@
</group>
<group col="2" colspan="2">
<separator colspan="2" string="Qualification"/>
<field name="type_id"/>
<field name="type_id" domain="[('object_id.model', '=', 'hr.applicant')]"/>
<field name="priority" string="Appreciation"/>
</group>
<group col="2" colspan="2">
@ -266,5 +266,58 @@
</field>
</record>
<!-- Stage Tree View -->
<record model="ir.ui.view" id="hr_recruitment_stage_tree">
<field name="name">hr.recruitment.stage.tree</field>
<field name="model">hr.recruitment.stage</field>
<field name="type">tree</field>
<field name="arch" type="xml">
<tree string="Stages">
<field name="sequence"/>
<field name="name"/>
</tree>
</field>
</record>
<!-- Stage Form View -->
<record model="ir.ui.view" id="hr_recruitment_stage_form">
<field name="name">hr.recruitment.stage.form</field>
<field name="model">hr.recruitment.stage</field>
<field name="type">form</field>
<field name="arch" type="xml">
<form string="Stage">
<separator string="Stage Definition" colspan="4"/>
<field name="name" select="1"/>
<field name="sequence"/>
<separator string="Requirements" colspan="4"/>
<field name="requirements" nolabel="1" colspan="4"/>
</form>
</field>
</record>
<!-- Stage Action -->
<record id="hr_recruitment_stage_act" model="ir.actions.act_window">
<field name="name">Stages</field>
<field name="res_model">hr.recruitment.stage</field>
<field name="view_type">form</field>
<field name="view_id" ref="hr_recruitment_stage_tree"/>
</record>
<menuitem
id="menu_hr_recruitment_recruitment"
name="Recruitment"
parent="hr.menu_hr_configuration"
/>
<menuitem
id="menu_hr_recruitment_stage"
name="Stages"
parent="menu_hr_recruitment_recruitment"
action="hr_recruitment_stage_act"
sequence="1"/>
</data>
</openerp>

View File

@ -18,7 +18,6 @@
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
##############################################################################
import tools
from osv import fields,osv
from hr_recruitment import hr_recruitment
@ -38,7 +37,8 @@ class hr_recruitment_report(osv.osv):
'date': fields.date('Date', readonly=True),
'date_closed': fields.date('Closed', readonly=True),
'job_id': fields.many2one('hr.job', 'Applied Job',readonly=True),
'stage_id': fields.many2one ('crm.case.stage', 'Stage', domain="[('section_id','=',section_id),('object_id.model', '=', 'hr.applicant')]",readonly=True),
'stage_id': fields.many2one ('hr.recruitment.stage', 'Stage'),
# 'stage_id': fields.many2one ('crm.case.stage', 'Stage', domain="[('section_id','=',section_id),('object_id.model', '=', 'hr.applicant')]",readonly=True),
'type_id': fields.many2one('crm.case.resource.type', 'Degree', domain="[('section_id','=',section_id),('object_id.model', '=', 'hr.applicant')]"),
'department_id':fields.many2one('hr.department','Department',readonly=True),
'priority': fields.selection(hr_recruitment.AVAILABLE_PRIORITIES, 'Appreciation'),
@ -90,3 +90,4 @@ class hr_recruitment_report(osv.osv):
""")
hr_recruitment_report()
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:

View File

@ -19,7 +19,6 @@
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
##############################################################################
from osv import osv, fields
from tools.translate import _
@ -74,7 +73,7 @@ class hr_recruitment_partner_create(osv.osv_memory):
if data['close']:
case_obj.case_close(cr, uid, context['active_ids'])
value = {
return {
'domain': "[]",
'view_type': 'form',
'view_mode': 'form,tree',
@ -83,8 +82,7 @@ class hr_recruitment_partner_create(osv.osv_memory):
'view_id': False,
'type': 'ir.actions.act_window',
'search_view_id': res['res_id']
}
return value
}
hr_recruitment_partner_create()

View File

@ -19,7 +19,6 @@
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
##############################################################################
import time
from osv import osv, fields
@ -99,17 +98,16 @@ class job2phonecall(osv.osv_memory):
job_case_obj.case_cancel(cr, uid, [job.id])
phonecall_case_obj.case_open(cr, uid, [new_phonecall_id])
value = {
return {
'name': _('Phone Call'),
'view_type': 'form',
'view_mode': 'tree,form',
'res_model': 'crm.phonecall',
'res_id' : new_phonecall_id,
'views': [(id3,'form'),(id2,'tree'),(False,'calendar'),(False,'graph')],
'views': [(id3,'form'), (id2,'tree'), (False,'calendar'), (False,'graph')],
'type': 'ir.actions.act_window',
'search_view_id': res['res_id']
}
return value
job2phonecall()