[MERGE] merge with parent brnach
bzr revid: ara@tinyerp.com-20120605072734-eqg19sd93rj5yftg
This commit is contained in:
commit
b71c7c244d
|
@ -93,18 +93,18 @@ class hr_job(osv.osv):
|
|||
_description = "Job Description"
|
||||
_columns = {
|
||||
'name': fields.char('Job Name', size=128, required=True, select=True),
|
||||
'expected_employees': fields.function(_no_of_employee, string='Expected Employees', help='Required number of employees in total for that job.',
|
||||
'expected_employees': fields.function(_no_of_employee, string='Total Employees', help='Expected number of employees in total for this job position after new recruitment.',
|
||||
store = {
|
||||
'hr.job': (lambda self,cr,uid,ids,c=None: ids, ['no_of_recruitment'], 10),
|
||||
'hr.employee': (_get_job_position, ['job_id'], 10),
|
||||
},
|
||||
multi='no_of_employee'),
|
||||
'no_of_employee': fields.function(_no_of_employee, string="Number of Employees", help='Number of employees with that job.',
|
||||
'no_of_employee': fields.function(_no_of_employee, string="Number of Employees", help='Number of employees currently having this job position.',
|
||||
store = {
|
||||
'hr.employee': (_get_job_position, ['job_id'], 10),
|
||||
},
|
||||
multi='no_of_employee'),
|
||||
'no_of_recruitment': fields.float('Expected in Recruitment'),
|
||||
'no_of_recruitment': fields.float('Expected in Recruitment', help='Number of new employees you expect to recruit.'),
|
||||
'employee_ids': fields.one2many('hr.employee', 'job_id', 'Employees'),
|
||||
'description': fields.text('Job Description'),
|
||||
'requirements': fields.text('Requirements'),
|
||||
|
|
|
@ -8,9 +8,8 @@
|
|||
groups="base.group_hr_manager,base.group_hr_user,base.group_user"/>
|
||||
<menuitem id="menu_hr_main" parent="menu_hr_root" name="Human Resources" sequence="0"/>
|
||||
<menuitem id="menu_hr_configuration" name="Configuration" parent="hr.menu_hr_root" groups="base.group_hr_manager" sequence="50"/>
|
||||
<menuitem id="menu_hr_management" name="Human Resources" parent="hr.menu_hr_configuration" sequence="25" groups="base.group_no_one"/>
|
||||
<menuitem id="menu_hr_management" name="Human Resources" parent="hr.menu_hr_configuration" sequence="25" groups="base.group_hr_manager"/>
|
||||
<menuitem id="menu_view_employee_category_configuration_form" parent="hr.menu_hr_management" name="Employees" sequence="1" />
|
||||
<menuitem id="base.menu_hr_reports" parent="hr.menu_hr_root" sequence="40" name="Reporting"/>
|
||||
|
||||
<!--
|
||||
==========
|
||||
|
@ -311,7 +310,7 @@
|
|||
</record>
|
||||
|
||||
<menuitem action="open_view_categ_form" id="menu_view_employee_category_form"
|
||||
parent="hr.menu_hr_configuration" sequence="1"/>
|
||||
parent="hr.menu_hr_configuration" sequence="1" groups="base.group_no_one"/>
|
||||
|
||||
<record id="open_view_categ_tree" model="ir.actions.act_window">
|
||||
<field name="name">Categories Structure</field>
|
||||
|
@ -433,7 +432,7 @@
|
|||
</record>
|
||||
|
||||
<menuitem name="Recruitment" id="base.menu_crm_case_job_req_main" parent="menu_hr_root" groups="base.group_hr_user"/>
|
||||
<menuitem parent="hr.menu_hr_management" id="menu_hr_job" action="action_hr_job" sequence="6"/>
|
||||
<menuitem parent="hr.menu_hr_configuration" id="base.menu_hr_job" action="action_hr_job" sequence="6"/>
|
||||
|
||||
</data>
|
||||
</openerp>
|
||||
|
|
|
@ -197,7 +197,7 @@ msgstr ""
|
|||
|
||||
#. module: hr
|
||||
#: help:hr.job,expected_employees:0
|
||||
msgid "Required number of employees in total for that job."
|
||||
msgid "Expected number of employees in total for this job position after new recruitment."
|
||||
msgstr ""
|
||||
|
||||
#. module: hr
|
||||
|
@ -290,7 +290,7 @@ msgstr ""
|
|||
|
||||
#. module: hr
|
||||
#: field:hr.job,expected_employees:0
|
||||
msgid "Expected Employees"
|
||||
msgid "Total Employees"
|
||||
msgstr ""
|
||||
|
||||
#. module: hr
|
||||
|
@ -702,5 +702,10 @@ msgstr ""
|
|||
|
||||
#. module: hr
|
||||
#: field:hr.job,no_of_employee:0
|
||||
msgid "Number of Employees"
|
||||
msgid "Number of employees currently having this job position."
|
||||
msgstr ""
|
||||
|
||||
#. module: hr
|
||||
#: field:hr.job,no_of_recruitment:0
|
||||
msgid "Number of new employees you expect to recruit."
|
||||
msgstr ""
|
||||
|
|
|
@ -119,7 +119,7 @@
|
|||
<menuitem
|
||||
sequence="35" id="hr.menu_open_view_attendance_reason_new_config" parent="hr.menu_hr_configuration" name="Attendance"
|
||||
groups="base.group_no_one"/>
|
||||
<menuitem action="open_view_attendance_reason" id="menu_open_view_attendance_reason" parent="hr.menu_open_view_attendance_reason_new_config" />
|
||||
<menuitem action="open_view_attendance_reason" id="menu_open_view_attendance_reason" parent="hr.menu_open_view_attendance_reason_new_config" groups="base.group_no_one"/>
|
||||
|
||||
<record id="hr_attendance_employee" model="ir.ui.view">
|
||||
<field name="name">hr.employee.form1</field>
|
||||
|
|
|
@ -1,29 +1,6 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<openerp>
|
||||
<data>
|
||||
<record id="view_hr_attendance_sigh_in_out" model="ir.ui.view">
|
||||
<field name="name">hr.sign.in.out.form</field>
|
||||
<field name="model">hr.sign.in.out</field>
|
||||
<field name="type">form</field>
|
||||
<field name="arch" type="xml">
|
||||
<form string="Sign in / Sign out">
|
||||
<separator colspan="4" string="Sign in / Sign out"/>
|
||||
<label colspan="4" nolabel="1" string="If you need your staff to sign in when they arrive at work and sign out again at the end of the day, OpenERP allows you to manage this with this tool. If each employee has been linked to a system user, then they can encode their time with this action button."/>
|
||||
<newline/>
|
||||
<group colspan="4" >
|
||||
<field name="name" />
|
||||
<field name="state" />
|
||||
</group>
|
||||
<separator colspan="4"/>
|
||||
<group colspan="4" col="6">
|
||||
<button icon="gtk-cancel" special="cancel" string="Cancel"/>
|
||||
<button icon="terp-gtk-jump-to-ltr" string="Sign in" name="si_check" type="object"/>
|
||||
<button icon="terp-gtk-jump-to-rtl" string="Sign out" name="so_check" type="object"/>
|
||||
</group>
|
||||
</form>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="view_hr_attendance_message" model="ir.ui.view">
|
||||
<field name="name">hr.sign.in.out.form</field>
|
||||
<field name="model">hr.sign.in.out</field>
|
||||
|
@ -38,19 +15,6 @@
|
|||
</field>
|
||||
</record>
|
||||
|
||||
<record id="action_hr_attendance_sigh_in_out" model="ir.actions.act_window">
|
||||
<field name="name">Sign in / Sign out</field>
|
||||
<field name="res_model">hr.sign.in.out</field>
|
||||
<field name="view_type">form</field>
|
||||
<field name="view_mode">tree,form</field>
|
||||
<field name="view_id" ref="view_hr_attendance_sigh_in_out"/>
|
||||
<field name="target">new</field>
|
||||
<field name="help">Sign in / Sign out. In some companies, staff have to sign in when they arrive at work and sign out again at the end of the day. If each employee has been linked to a system user, then they can encode their time with this action button.</field>
|
||||
</record>
|
||||
|
||||
<menuitem action="action_hr_attendance_sigh_in_out" id="menu_hr_attendance_sigh_in_out"
|
||||
parent="menu_hr_attendance" sequence="4"/>
|
||||
|
||||
<record id="view_hr_attendance_so_ask" model="ir.ui.view">
|
||||
<field name="name">hr.sign.in.out.ask.form</field>
|
||||
<field name="model">hr.sign.in.out.ask</field>
|
||||
|
|
|
@ -72,7 +72,7 @@
|
|||
<field name="employee_id" />
|
||||
<field name="job_id"/>
|
||||
<field name="wage"/>
|
||||
<field name="type_id" widget="selection"/>
|
||||
<field name="type_id"/>
|
||||
</group>
|
||||
<notebook colspan='4'>
|
||||
<page string="Information" name="information">
|
||||
|
@ -176,7 +176,7 @@
|
|||
<field name="search_view_id" ref="hr_contract_type_view_search"/>
|
||||
</record>
|
||||
|
||||
<menuitem action="action_hr_contract_type" id="hr_menu_contract_type" parent="next_id_56" sequence="6"/>
|
||||
<menuitem action="action_hr_contract_type" id="hr_menu_contract_type" parent="next_id_56" sequence="6" groups="base.group_no_one"/>
|
||||
<menuitem action="action_hr_contract" id="hr_menu_contract" parent="hr.menu_hr_main" name="Contracts" sequence="4" groups="base.group_hr_manager"/>
|
||||
|
||||
<!-- Contracts Button on Employee Form -->
|
||||
|
|
|
@ -285,7 +285,7 @@
|
|||
<field name="help">Each employee may be assigned an Appraisal Plan. Such a plan defines the frequency and the way you manage your periodic personnel evaluation. You will be able to define steps and attach interviews to each step. OpenERP manages all kind of evaluations: bottom-up, top-down, self-evaluation and final evaluation by the manager.</field>
|
||||
</record>
|
||||
|
||||
<menuitem name="Appraisal" parent="menu_eval_hr" id="menu_open_view_hr_evaluation_tree"
|
||||
<menuitem name="Appraisals" parent="menu_eval_hr" id="menu_open_view_hr_evaluation_tree"
|
||||
action="open_view_hr_evaluation_tree" groups="base.group_hr_user"/>
|
||||
|
||||
<record model="ir.ui.view" id="view_hr_evaluation_interview_form">
|
||||
|
|
|
@ -100,7 +100,6 @@
|
|||
<field name="search_view_id" ref="view_evaluation_report_search"/>
|
||||
</record>
|
||||
|
||||
<menuitem id="hr.menu_hr_reporting" name="Reporting" parent="hr.menu_hr_root" sequence="10"/>
|
||||
<menuitem action="action_evaluation_report_all" id="menu_evaluation_report_all" parent="hr.menu_hr_reporting" sequence="3" groups="base.group_hr_manager"/>
|
||||
|
||||
</data>
|
||||
|
|
|
@ -118,7 +118,6 @@
|
|||
<field name="search_view_id" ref="view_hr_expense_report_search"/>
|
||||
</record>
|
||||
|
||||
<menuitem id="hr.menu_hr_reporting" name="Reporting" parent="hr.menu_hr_root" sequence="10"/>
|
||||
<menuitem action="action_hr_expense_report_all" id="menu_hr_expense_report_all" parent="hr.menu_hr_reporting" sequence="2"/>
|
||||
|
||||
</data>
|
||||
|
|
|
@ -76,7 +76,7 @@ class hr_holidays_status(osv.osv):
|
|||
'name': fields.char('Leave Type', size=64, required=True, translate=True),
|
||||
'categ_id': fields.many2one('crm.case.categ', 'Meeting', domain="[('object_id.model', '=', 'crm.meeting')]", help='If you set a meeting type, OpenERP will create a meeting in the calendar once a leave is validated.'),
|
||||
'color_name': fields.selection([('red', 'Red'),('blue','Blue'), ('lightgreen', 'Light Green'), ('lightblue','Light Blue'), ('lightyellow', 'Light Yellow'), ('magenta', 'Magenta'),('lightcyan', 'Light Cyan'),('black', 'Black'),('lightpink', 'Light Pink'),('brown', 'Brown'),('violet', 'Violet'),('lightcoral', 'Light Coral'),('lightsalmon', 'Light Salmon'),('lavender', 'Lavender'),('wheat', 'Wheat'),('ivory', 'Ivory')],'Color in Report', required=True, help='This color will be used in the leaves summary located in Reporting\Leaves by Departement'),
|
||||
'limit': fields.boolean('Allow to Override Limit', help='If you tick this checkbox, the system will allow, for this section, the employees to take more leaves than the available ones.'),
|
||||
'limit': fields.boolean('Allow to Override Limit', help='If you select this checkbox, the system will allow the employees to take more leaves than the available ones for this type.'),
|
||||
'active': fields.boolean('Active', help="If the active field is set to false, it will allow you to hide the leave type without removing it."),
|
||||
'max_leaves': fields.function(_user_left_days, string='Maximum Allowed', help='This value is given by the sum of all holidays requests with a positive value.', multi='user_left_days'),
|
||||
'leaves_taken': fields.function(_user_left_days, string='Leaves Already Taken', help='This value is given by the sum of all holidays requests with a negative value.', multi='user_left_days'),
|
||||
|
|
|
@ -20,7 +20,7 @@
|
|||
<record model="hr.holidays.status" id="holiday_status_comp">
|
||||
<field name="name">Compensatory Days</field>
|
||||
<field name="limit">True</field>
|
||||
<field name="color_name">brown</field>
|
||||
<field name="color_name">lavender</field>
|
||||
</record>
|
||||
|
||||
<!--Unpaid Leave -->
|
||||
|
|
|
@ -767,8 +767,8 @@ msgstr ""
|
|||
#. module: hr_holidays
|
||||
#: help:hr.holidays.status,limit:0
|
||||
msgid ""
|
||||
"If you tick this checkbox, the system will allow, for this section, the "
|
||||
"employees to take more leaves than the available ones."
|
||||
"If you select this checkbox, the system will allow the "
|
||||
"employees to take more leaves than the available ones for this type. "
|
||||
msgstr ""
|
||||
|
||||
#. module: hr_holidays
|
||||
|
|
|
@ -149,7 +149,7 @@
|
|||
</tr>
|
||||
</blockTable>
|
||||
<spacer length="1.0cm" />
|
||||
<para style="title" t="1">Off-Days' Summary</para>
|
||||
<para style="title" t="1">Leaves/Holidays Summary <xsl:value-of select="report/name" /></para>
|
||||
<spacer length="0.5cm" />
|
||||
<para style="normal-title" t="1">Analyze from <u><xsl:value-of select="report/from" /></u> to <u> <xsl:value-of select="report/to" /> </u> of the <u><xsl:value-of select="report/type" /></u> holidays. </para>
|
||||
<spacer length="1.0cm" />
|
||||
|
|
|
@ -106,6 +106,10 @@ class report_custom(report_rml):
|
|||
eom = som+datetime.timedelta(59)
|
||||
day_diff=eom-som
|
||||
|
||||
name = ''
|
||||
if data['form'].has_key('emp') and len(data['form']['emp']) == 1:
|
||||
name = 'of'+' '+obj_emp.read(cr, uid, data['form']['emp'][0], ['name'])['name']
|
||||
|
||||
if data['form']['holiday_type']!='both':
|
||||
type=data['form']['holiday_type']
|
||||
if data['form']['holiday_type']=='Confirmed':
|
||||
|
@ -118,6 +122,7 @@ class report_custom(report_rml):
|
|||
date_xml.append('<from>%s</from>\n'% (str(rml_obj.formatLang(som.strftime("%Y-%m-%d"),date=True))))
|
||||
date_xml.append('<to>%s</to>\n' %(str(rml_obj.formatLang(eom.strftime("%Y-%m-%d"),date=True))))
|
||||
date_xml.append('<type>%s</type>'%(type))
|
||||
date_xml.append('<name>%s</name>'%(name))
|
||||
|
||||
# date_xml=[]
|
||||
for l in range(0,len(legend)):
|
||||
|
|
|
@ -32,11 +32,9 @@
|
|||
<field name="target">new</field>
|
||||
</record>
|
||||
|
||||
<menuitem id="menu_hr_leaves_reports" parent="base.menu_hr_reports" sequence="10" name="Leaves"/>
|
||||
|
||||
<menuitem
|
||||
name="Leaves by Department"
|
||||
parent="menu_hr_leaves_reports"
|
||||
parent="menu_hr_reporting_holidays"
|
||||
action="action_hr_holidays_summary_dept"
|
||||
id="menu_account_central_journal"
|
||||
icon="STOCK_PRINT"/>
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
<data>
|
||||
<!-- Root Menus -->
|
||||
|
||||
<menuitem id="payroll_configure" parent="hr.menu_hr_configuration" name="Payroll" groups="base.group_no_one" sequence="45"/>
|
||||
<menuitem id="payroll_configure" parent="hr.menu_hr_configuration" name="Payroll" groups="base.group_hr_manager" sequence="45"/>
|
||||
<menuitem id="menu_hr_root_payroll" parent="hr.menu_hr_root" name="Payroll" sequence="30"/>
|
||||
<menuitem id="menu_hr_payroll_reporting" parent="hr.menu_hr_reporting" name="Payroll" groups="base.group_hr_manager"/>
|
||||
|
||||
|
@ -483,6 +483,7 @@
|
|||
action="action_hr_salary_rule_category"
|
||||
parent="payroll_configure"
|
||||
sequence="11"
|
||||
groups="base.group_no_one"
|
||||
/>
|
||||
<record id="action_hr_salary_rule_category_tree_view" model="ir.actions.act_window">
|
||||
<field name="name">Salary Rule Categories Hierarchy</field>
|
||||
|
@ -497,6 +498,7 @@
|
|||
parent="payroll_configure"
|
||||
sequence="12"
|
||||
icon="STOCK_INDENT"
|
||||
groups="base.group_no_one"
|
||||
/>
|
||||
|
||||
<!--
|
||||
|
@ -672,7 +674,7 @@
|
|||
<field name="search_view_id" ref="view_hr_rule_filter"/>
|
||||
</record>
|
||||
|
||||
<menuitem id="menu_action_hr_salary_rule_form" action="action_salary_rule_form" parent="payroll_configure" sequence="12" groups="base.group_no_one"/>
|
||||
<menuitem id="menu_action_hr_salary_rule_form" action="action_salary_rule_form" parent="payroll_configure" sequence="12"/>
|
||||
|
||||
|
||||
<act_window name="All Children Rules"
|
||||
|
|
|
@ -187,7 +187,7 @@ class hr_applicant(base_stage, osv.Model):
|
|||
'email_from': fields.char('Email', size=128, help="These people will receive email."),
|
||||
'email_cc': fields.text('Watchers Emails', size=252, help="These email addresses will be added to the CC field of all inbound and outbound emails for this record before being sent. Separate multiple email addresses with a comma"),
|
||||
'probability': fields.float('Probability'),
|
||||
'partner_id': fields.many2one('res.partner', 'Partner'),
|
||||
'partner_id': fields.many2one('res.partner', 'Contact Name'),
|
||||
'create_date': fields.datetime('Creation Date', readonly=True, select=True),
|
||||
'write_date': fields.datetime('Update Date', readonly=True),
|
||||
'stage_id': fields.many2one ('hr.recruitment.stage', 'Stage',
|
||||
|
@ -221,7 +221,7 @@ class hr_applicant(base_stage, osv.Model):
|
|||
'department_id': fields.many2one('hr.department', 'Department'),
|
||||
'survey': fields.related('job_id', 'survey_id', type='many2one', relation='survey', string='Survey'),
|
||||
'response': fields.integer("Response"),
|
||||
'reference': fields.char('Refered By', size=128),
|
||||
'reference': fields.char('Referred By', size=128),
|
||||
'source_id': fields.many2one('hr.recruitment.source', 'Source'),
|
||||
'day_open': fields.function(_compute_day, string='Days to Open', \
|
||||
multi='day_open', type="float", store=True),
|
||||
|
@ -321,12 +321,13 @@ class hr_applicant(base_stage, osv.Model):
|
|||
if id3:
|
||||
id3 = data_obj.browse(cr, uid, id3, context=context).res_id
|
||||
|
||||
context = {
|
||||
context.update({
|
||||
'default_applicant_id': opp.id,
|
||||
'default_partner_id': opp.partner_id and opp.partner_id.id or False,
|
||||
'default_email_from': opp.email_from,
|
||||
'default_state': 'open',
|
||||
'default_name': opp.name
|
||||
}
|
||||
})
|
||||
value = {
|
||||
'name': ('Meetings'),
|
||||
'domain': "[('user_id','=',%s)]" % (uid),
|
||||
|
@ -557,6 +558,30 @@ class hr_job(osv.osv):
|
|||
_columns = {
|
||||
'survey_id': fields.many2one('survey', 'Interview Form', help="Choose an interview form for this job position and you will be able to print/answer this interview from all applicants who apply for this job"),
|
||||
}
|
||||
|
||||
def action_print_survey(self, cr, uid, ids, context=None):
|
||||
if context is None:
|
||||
context = {}
|
||||
datas = {}
|
||||
record = self.browse(cr, uid, ids, context=context)[0]
|
||||
if record.survey_id:
|
||||
datas['ids'] = [record.survey_id.id]
|
||||
datas['model'] = 'survey.print'
|
||||
context.update({'response_id': [0], 'response_no': 0,})
|
||||
return {
|
||||
'type': 'ir.actions.report.xml',
|
||||
'report_name': 'survey.form',
|
||||
'datas': datas,
|
||||
'context' : context,
|
||||
'nodestroy':True,
|
||||
}
|
||||
|
||||
hr_job()
|
||||
|
||||
class crm_meeting(osv.osv):
|
||||
_inherit = 'crm.meeting'
|
||||
_columns = {
|
||||
'applicant_id': fields.many2one('hr.applicant','Applicant Meeting'),
|
||||
}
|
||||
|
||||
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
|
||||
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
|
|
@ -54,7 +54,7 @@
|
|||
parent="base.menu_crm_case_job_req_main"
|
||||
id="menu_crm_case_categ0_act_job" action="crm_case_categ0_act_job" sequence="1"/>
|
||||
|
||||
<menuitem parent="base.menu_crm_case_job_req_main" id="menu_hr_job" action="hr.action_hr_job" sequence="2"/>
|
||||
<menuitem parent="hr.menu_hr_configuration" id="base.menu_hr_job" action="hr.action_hr_job" sequence="2"/>
|
||||
|
||||
|
||||
</data>
|
||||
|
|
|
@ -7,6 +7,15 @@
|
|||
parent="hr.menu_hr_configuration"
|
||||
sequence="40" />
|
||||
|
||||
<act_window
|
||||
domain="[('applicant_id', '=', active_id)]"
|
||||
id="act_hr_applicant_to_meeting"
|
||||
name="Meetings"
|
||||
res_model="crm.meeting"
|
||||
src_model="hr.applicant"
|
||||
view_mode="tree,form,calendar,graph"
|
||||
view_type="form"/>
|
||||
|
||||
# ------------------------------------------------------
|
||||
# Job Categories
|
||||
# ------------------------------------------------------
|
||||
|
@ -89,37 +98,39 @@
|
|||
<field name="stage_id" widget="statusbar"/>
|
||||
</header>
|
||||
<sheet string="Jobs - Recruitment Form" layout="auto">
|
||||
<group colspan="4" col="4">
|
||||
<group col="7" colspan="4">
|
||||
<field name="name" string="Subject"/>
|
||||
<group colspan="2" col="4">
|
||||
<field name="partner_name"/>
|
||||
<button name="action_makeMeeting" type="object" string="Meeting" icon="gtk-index"/>
|
||||
<button string="Send New Email" name="%(mail.action_email_compose_message_wizard)d" icon="terp-mail-message-new" type="action"/>
|
||||
<field name="partner_name"/>
|
||||
<field name="priority" string="Appreciation"/>
|
||||
<newline/>
|
||||
<group col="4" colspan="2">
|
||||
<field name="stage_id" domain="['|',('department_id','=',department_id),('department_id','=',False)]"/>
|
||||
<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="user_id"/>
|
||||
<field name="job_id" on_change="onchange_job(job_id)"/>
|
||||
<field name="department_id" widget="selection" on_change="onchange_department_id(department_id)"/>
|
||||
<field name="state" groups="base.group_no_one"/>
|
||||
<field name="date_action"/>
|
||||
<group colspan="2" col="8">
|
||||
</group>
|
||||
<group col="11" colspan="4">
|
||||
<field name="user_id"/>
|
||||
<field name="title_action"/>
|
||||
<field name="date_action"/>
|
||||
<field name="survey" invisible="1"/>
|
||||
<button name="action_print_survey" string="Interview" type="object" icon="gtk-print" attrs="{'readonly':[('survey','=',False)]}"/>
|
||||
<button name="%(survey.action_view_survey_question_message)d" string="Answer" type="action" icon="gtk-execute" context="{'survey_id': survey, 'response_id': [response], 'response_no':0 ,'active' : response, 'object' : 'hr.applicant'}" attrs="{'readonly':[('survey','=',False)]}"/>
|
||||
<button name="action_makeMeeting" type="object" string="Meeting" icon="gtk-index" help="Create meeting"/>
|
||||
<button name="action_print_survey" string="Print Interview" type="object" icon="gtk-print" attrs="{'invisible':[('survey','=',False)]}" help="Print interview report"/>
|
||||
<button name="%(survey.action_view_survey_question_message)d" string="Answer" type="action" icon="gtk-execute" context="{'survey_id': survey, 'response_id': [response], 'response_no':0 ,'active' : response, 'object' : 'hr.applicant'}" attrs="{'invisible':[('survey','=',False)]}" help="Answer related job question"/>
|
||||
<field name="response" invisible="1"/>
|
||||
</group>
|
||||
<newline/>
|
||||
</group>
|
||||
<notebook colspan="4">
|
||||
<page string="Job Info">
|
||||
<group col="3" colspan="2">
|
||||
<separator colspan="3" string="Contact"/>
|
||||
<field name="partner_id" on_change="onchange_partner_id(partner_id, email_from)"/>
|
||||
<button string="Create Partner"
|
||||
<field name="partner_id" on_change="onchange_partner_id(partner_id, email_from)" colspan="2"/>
|
||||
<button string="Create Contact"
|
||||
name="%(action_hr_recruitment_partner_create)d"
|
||||
icon="gtk-index" type="action" attrs="{'readonly':[('partner_id','!=',False)]}" groups="base.group_partner_manager"/>
|
||||
<newline/>
|
||||
<field name="email_from" colspan="3"/>
|
||||
icon="gtk-index" type="action" attrs="{'invisible':[('partner_id','!=',False)]}"/>
|
||||
<field name="email_from" colspan="2"/>
|
||||
<button string="Send New Email" name="%(mail.action_email_compose_message_wizard)d" icon="terp-mail-message-new" type="action" attrs="{'invisible':[('email_from','=',False)]}"/>
|
||||
<field name="partner_phone" colspan="3"/>
|
||||
<field name="partner_mobile" colspan="3"/>
|
||||
</group>
|
||||
|
@ -134,7 +145,6 @@
|
|||
<group col="2" colspan="2">
|
||||
<separator colspan="2" string="Qualification"/>
|
||||
<field name="type_id"/>
|
||||
<field name="priority" string="Appreciation"/>
|
||||
<field name="source_id"/>
|
||||
<field name="reference"/>
|
||||
</group>
|
||||
|
@ -349,8 +359,9 @@
|
|||
<field name="type">form</field>
|
||||
<field name="inherit_id" ref="hr.view_hr_job_form"/>
|
||||
<field name="arch" type="xml">
|
||||
<field name="department_id" position="after">
|
||||
<field name="survey_id"/>
|
||||
<field name="expected_employees" position="after">
|
||||
<field name="survey_id" />
|
||||
<button name="action_print_survey" string="Interview" type="object" icon="gtk-print" attrs="{'invisible':[('survey_id','=',False)]}"/>
|
||||
</field>
|
||||
</field>
|
||||
</record>
|
||||
|
@ -407,7 +418,7 @@
|
|||
name="Stages"
|
||||
parent="menu_hr_recruitment_recruitment"
|
||||
action="hr_recruitment_stage_act"
|
||||
sequence="1"/>
|
||||
sequence="1" groups="base.group_no_one"/>
|
||||
|
||||
<!-- Degree Tree View -->
|
||||
|
||||
|
|
|
@ -54,14 +54,9 @@ msgstr ""
|
|||
msgid "Sources of Applicants"
|
||||
msgstr ""
|
||||
|
||||
#. module: hr_recruitment
|
||||
#: field:hr.recruitment.report,delay_open:0
|
||||
msgid "Avg. Delay to Open"
|
||||
msgstr ""
|
||||
|
||||
#. module: hr_recruitment
|
||||
#: field:hr.recruitment.report,nbr:0
|
||||
msgid "# of Cases"
|
||||
msgid "# of Applications"
|
||||
msgstr ""
|
||||
|
||||
#. module: hr_recruitment
|
||||
|
@ -150,7 +145,7 @@ msgstr ""
|
|||
#. module: hr_recruitment
|
||||
#: view:hr.applicant:0 view:hr.recruitment.partner.create:0
|
||||
#: model:ir.actions.act_window,name:hr_recruitment.action_hr_recruitment_partner_create
|
||||
msgid "Create Partner"
|
||||
msgid "Create Contact"
|
||||
msgstr ""
|
||||
|
||||
#. module: hr_recruitment
|
||||
|
@ -160,7 +155,7 @@ msgstr ""
|
|||
|
||||
#. module: hr_recruitment
|
||||
#: field:hr.applicant,reference:0
|
||||
msgid "Refered By"
|
||||
msgid "Referred By"
|
||||
msgstr ""
|
||||
|
||||
#. module: hr_recruitment
|
||||
|
@ -239,6 +234,11 @@ msgstr ""
|
|||
msgid "Interview Form"
|
||||
msgstr ""
|
||||
|
||||
#. module: hr_recruitment
|
||||
#: view:hr.job:0
|
||||
msgid "Interview"
|
||||
msgstr ""
|
||||
|
||||
#. module: hr_recruitment
|
||||
#: help:hr.job,survey_id:0
|
||||
msgid ""
|
||||
|
@ -349,7 +349,7 @@ msgstr ""
|
|||
#. module: hr_recruitment
|
||||
#: code:addons/hr_recruitment/wizard/hr_recruitment_create_partner_job.py:39
|
||||
#, python-format
|
||||
msgid "A partner is already defined on this job request."
|
||||
msgid "A contact is already defined on this job request."
|
||||
msgstr ""
|
||||
|
||||
#. module: hr_recruitment
|
||||
|
@ -516,6 +516,7 @@ msgstr ""
|
|||
|
||||
#. module: hr_recruitment
|
||||
#: view:hr.applicant:0
|
||||
#: field:hr.applicant,partner_id:0 view:hr.recruitment.report:0
|
||||
msgid "Contact"
|
||||
msgstr ""
|
||||
|
||||
|
@ -530,7 +531,6 @@ msgid "Qualification"
|
|||
msgstr ""
|
||||
|
||||
#. module: hr_recruitment
|
||||
#: field:hr.applicant,partner_id:0 view:hr.recruitment.report:0
|
||||
#: field:hr.recruitment.report,partner_id:0
|
||||
msgid "Partner"
|
||||
msgstr ""
|
||||
|
@ -828,7 +828,12 @@ msgstr ""
|
|||
|
||||
#. module: hr_recruitment
|
||||
#: field:hr.recruitment.report,salary_prop_avg:0
|
||||
msgid "Avg Salary Proposed"
|
||||
msgid "Avg. Proposed Salary"
|
||||
msgstr ""
|
||||
|
||||
#. module: hr_recruitment
|
||||
#: field:hr.recruitment.report,salary_exp_avg:0
|
||||
msgid "Avg. Expected Salary"
|
||||
msgstr ""
|
||||
|
||||
#. module: hr_recruitment
|
||||
|
@ -871,7 +876,7 @@ msgstr ""
|
|||
|
||||
#. module: hr_recruitment
|
||||
#: view:hr.recruitment.partner.create:0
|
||||
msgid "Are you sure you want to create a partner based on this job request ?"
|
||||
msgid "Are you sure you want to create a contact based on this job request ?"
|
||||
msgstr ""
|
||||
|
||||
#. module: hr_recruitment
|
||||
|
@ -959,7 +964,7 @@ msgstr ""
|
|||
#. module: hr_recruitment
|
||||
#: code:addons/hr_recruitment/wizard/hr_recruitment_create_partner_job.py:57
|
||||
#, python-format
|
||||
msgid "A partner is already existing with the same name."
|
||||
msgid "A contact is already existing with the same name."
|
||||
msgstr ""
|
||||
|
||||
#. module: hr_recruitment
|
||||
|
|
|
@ -40,8 +40,8 @@ class hr_recruitment_report(osv.osv):
|
|||
|
||||
_columns = {
|
||||
'user_id': fields.many2one('res.users', 'User', readonly=True),
|
||||
'nbr': fields.integer('# of Cases', readonly=True),
|
||||
'state': fields.selection(AVAILABLE_STATES, 'Status', size=16, readonly=True),
|
||||
'nbr': fields.integer('# of Applications', readonly=True),
|
||||
'state': fields.selection(AVAILABLE_STATES, 'State', size=16, readonly=True),
|
||||
'month':fields.selection([('01', 'January'), ('02', 'February'), \
|
||||
('03', 'March'), ('04', 'April'),\
|
||||
('05', 'May'), ('06', 'June'), \
|
||||
|
@ -59,12 +59,11 @@ class hr_recruitment_report(osv.osv):
|
|||
'department_id': fields.many2one('hr.department','Department',readonly=True),
|
||||
'priority': fields.selection(hr_recruitment.AVAILABLE_PRIORITIES, 'Appreciation'),
|
||||
'salary_prop' : fields.float("Salary Proposed", digits_compute=dp.get_precision('Account')),
|
||||
'salary_prop_avg' : fields.float("Avg Salary Proposed", group_operator="avg", digits_compute=dp.get_precision('Account')),
|
||||
'salary_prop_avg' : fields.float("Avg. Proposed Salary", group_operator="avg", digits_compute=dp.get_precision('Account')),
|
||||
'salary_exp' : fields.float("Salary Expected", digits_compute=dp.get_precision('Account')),
|
||||
'salary_exp_avg' : fields.float("Avg. Expected Salary", group_operator="avg", digits_compute=dp.get_precision('Account')),
|
||||
'partner_id': fields.many2one('res.partner', 'Partner',readonly=True),
|
||||
'available': fields.float("Availability"),
|
||||
'delay_open': fields.float('Avg. Delay to Open', digits=(16,2), readonly=True, group_operator="avg",
|
||||
help="Number of Days to close the project issue"),
|
||||
'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"),
|
||||
}
|
||||
|
@ -93,7 +92,7 @@ class hr_recruitment_report(osv.osv):
|
|||
sum(salary_proposed) as salary_prop,
|
||||
(sum(salary_proposed)/count(*)) as salary_prop_avg,
|
||||
sum(salary_expected) as salary_exp,
|
||||
extract('epoch' from (s.date_open-s.create_date))/(3600*24) as delay_open,
|
||||
(sum(salary_expected)/count(*)) as salary_exp_avg,
|
||||
extract('epoch' from (s.date_closed-s.create_date))/(3600*24) as delay_close,
|
||||
count(*) as nbr
|
||||
from hr_applicant s
|
||||
|
|
|
@ -19,13 +19,14 @@
|
|||
<field name="year" invisible="1"/>
|
||||
<field name="day" invisible="1"/>
|
||||
<field name="month" invisible="1"/>
|
||||
<field name="nbr" sum="# Cases"/>
|
||||
<field name="nbr" sum="# of Applications"/>
|
||||
<field name="available" sum="Available"/>
|
||||
<field name="salary_exp" sum="Expected Salary"/>
|
||||
<field name="salary_exp_avg" sum="Avg Expected Salary" />
|
||||
<field name="salary_prop" sum="Proposed Salary" />
|
||||
<field name="salary_prop_avg" sum="Avg Proposed Salary" />
|
||||
<field name="delay_open" avg='Avg Delay to Open'/>
|
||||
<field name="delay_close" avg='Avg Delay to Close'/>
|
||||
<field name="priority"/>
|
||||
</tree>
|
||||
</field>
|
||||
</record>
|
||||
|
@ -129,7 +130,6 @@
|
|||
<field name="context">{'search_default_year':1,'search_default_month':1,'search_default_department':1,'group_by_no_leaf':1,'group_by':[]}</field>
|
||||
<field name="search_view_id" ref="view_hr_recruitment_report_search"/>
|
||||
</record>
|
||||
<menuitem id="hr.menu_hr_reporting" name="Reporting" parent="hr.menu_hr_root" sequence="10" groups="base.group_hr_manager,base.group_hr_user"/>
|
||||
<menuitem action="action_hr_recruitment_report_all" id="menu_hr_recruitment_report_all" parent="hr.menu_hr_reporting" sequence="1"/>
|
||||
|
||||
</data>
|
||||
|
|
|
@ -36,7 +36,7 @@ class hr_recruitment_partner_create(osv.osv_memory):
|
|||
for case in case_obj.browse(cr, uid, context['active_ids'], context=context):
|
||||
if case.partner_id:
|
||||
raise osv.except_osv(_('Error !'),
|
||||
_('A partner is already defined on this job request.'))
|
||||
_('A contact is already defined on this job request.'))
|
||||
pass
|
||||
|
||||
def make_order(self, cr, uid, ids, context=None):
|
||||
|
@ -53,7 +53,7 @@ class hr_recruitment_partner_create(osv.osv_memory):
|
|||
for case in case_obj.browse(cr, uid, context['active_ids'], context=context):
|
||||
partner_id = partner_obj.search(cr, uid, [('name', '=', case.partner_name or case.name)], context=context)
|
||||
if partner_id:
|
||||
raise osv.except_osv(_('Error !'),_('A partner is already existing with the same name.'))
|
||||
raise osv.except_osv(_('Error !'),_('A contact is already existing with the same name.'))
|
||||
partner_id = partner_obj.create(cr, uid, {
|
||||
'name': case.partner_name or case.name,
|
||||
'user_id': case.user_id.id,
|
||||
|
|
|
@ -9,19 +9,19 @@
|
|||
<field name="arch" type="xml">
|
||||
<form string="Convert To Partner">
|
||||
<group col="4" colspan="6">
|
||||
<label string="Are you sure you want to create a partner based on this job request ?"/>
|
||||
<label string="Are you sure you want to create a contact based on this job request ?"/>
|
||||
</group>
|
||||
<separator colspan="4"/>
|
||||
<group col="2" colspan="4">
|
||||
<button special="cancel" string="Cancel" icon='gtk-cancel'/>
|
||||
<button name="make_order" string="Create Partner" colspan="1" type="object" icon="gtk-execute" groups="base.group_partner_manager"/>
|
||||
<button name="make_order" string="Create Contact" colspan="1" type="object" icon="gtk-execute" groups="base.group_partner_manager"/>
|
||||
</group>
|
||||
</form>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="action_hr_recruitment_partner_create" model="ir.actions.act_window">
|
||||
<field name="name">Create Partner</field>
|
||||
<field name="name">Create Contact</field>
|
||||
<field name="type">ir.actions.act_window</field>
|
||||
<field name="res_model">hr.recruitment.partner.create</field>
|
||||
<field name="view_type">form</field>
|
||||
|
|
|
@ -111,7 +111,7 @@
|
|||
</field>
|
||||
</record>
|
||||
|
||||
<menuitem id="menu_hr_timesheet_reports" parent="base.menu_hr_reports" sequence="5" name="Timesheet"/>
|
||||
<menuitem id="menu_hr_timesheet_reports" parent="hr.menu_hr_reporting" sequence="5" name="Timesheet"/>
|
||||
|
||||
|
||||
</data>
|
||||
|
|
|
@ -34,7 +34,7 @@
|
|||
|
||||
<menuitem action="action_hr_timesheet_employee"
|
||||
id="menu_hr_timesheet_employee"
|
||||
parent="menu_hr_timesheet_reports"
|
||||
parent="menu_hr_reporting_timesheet"
|
||||
sequence="2" icon="STOCK_PRINT"/>
|
||||
|
||||
|
||||
|
|
|
@ -37,7 +37,7 @@
|
|||
|
||||
<menuitem action="action_hr_timesheet_users"
|
||||
id="menu_hr_timesheet_users"
|
||||
parent="menu_hr_timesheet_reports"
|
||||
parent="menu_hr_reporting_timesheet"
|
||||
groups="base.group_hr_manager" sequence="3" icon="STOCK_PRINT"/>
|
||||
|
||||
|
||||
|
|
|
@ -38,7 +38,7 @@
|
|||
|
||||
<menuitem action="action_hr_timesheet_analytic_profit"
|
||||
id="menu_hr_timesheet_analytic_profit"
|
||||
parent="hr_timesheet.menu_hr_timesheet_reports" icon="STOCK_PRINT"/>
|
||||
parent="hr_timesheet.menu_hr_reporting_timesheet" icon="STOCK_PRINT"/>
|
||||
|
||||
</data>
|
||||
</openerp>
|
||||
|
|
|
@ -293,8 +293,7 @@ class mail_thread(osv.osv):
|
|||
'res_id': thread.id,
|
||||
}
|
||||
to_attach.append(ir_attachment.create(cr, uid, data_attach, context=context))
|
||||
|
||||
partner_id = hasattr(thread, 'partner_id') and (thread.partner_id and thread.partner_id.id or False) or False
|
||||
partner_id = ('partner_id' in thread._columns.keys()) and (thread.partner_id and thread.partner_id.id or False) or False
|
||||
if not partner_id and thread._name == 'res.partner':
|
||||
partner_id = thread.id
|
||||
data = {
|
||||
|
@ -313,7 +312,6 @@ class mail_thread(osv.osv):
|
|||
'res_id': thread.id,
|
||||
'partner_id': partner_id,
|
||||
}
|
||||
|
||||
if email_from or type == 'email':
|
||||
for param in (email_to, email_cc, email_bcc):
|
||||
if isinstance(param, list):
|
||||
|
|
|
@ -450,6 +450,7 @@ class survey_question_wiz(osv.osv_memory):
|
|||
|
||||
# hr.applicant: if survey answered directly in system: attach report to applicant
|
||||
if context.get('active_model') == 'hr.applicant':
|
||||
self.pool.get('hr.applicant').write(cr,uid,[context.get('active_ids')[0]],{'response':context.get('response_id')})
|
||||
result = base64.b64encode(result)
|
||||
file_name = file_name + '.pdf'
|
||||
ir_attachment = self.pool.get('ir.attachment').create(cr, uid,
|
||||
|
|
|
@ -7,7 +7,7 @@
|
|||
-->
|
||||
|
||||
<record id="view_survey_question_message" model="ir.ui.view">
|
||||
<field name="name">Survey Question</field>
|
||||
<field name="name">Answer Survey</field>
|
||||
<field name="model">survey.question.wiz</field>
|
||||
<field name="type">form</field>
|
||||
<field name="arch" type="xml">
|
||||
|
@ -29,7 +29,7 @@
|
|||
</record>
|
||||
|
||||
<record id="action_view_survey_question_message" model="ir.actions.act_window">
|
||||
<field name="name">Survey Question</field>
|
||||
<field name="name">Answer Survey</field>
|
||||
<field name="type">ir.actions.act_window</field>
|
||||
<field name="res_model">survey.question.wiz</field>
|
||||
<field name="view_type">form</field>
|
||||
|
|
Loading…
Reference in New Issue