[MERGE] merge with parent brnach

bzr revid: ara@tinyerp.com-20120605072734-eqg19sd93rj5yftg
This commit is contained in:
ara@tinyerp.com 2012-06-05 12:57:34 +05:30
commit b71c7c244d
31 changed files with 136 additions and 126 deletions

View File

@ -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'),

View File

@ -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>

View File

@ -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 ""

View File

@ -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>

View File

@ -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>

View File

@ -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 -->

View File

@ -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">

View File

@ -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>

View File

@ -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>

View File

@ -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'),

View File

@ -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 -->

View File

@ -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

View File

@ -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" />

View File

@ -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)):

View File

@ -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"/>

View File

@ -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"

View File

@ -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:

View File

@ -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>

View File

@ -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 -->

View File

@ -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

View File

@ -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

View File

@ -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>

View File

@ -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,

View File

@ -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>

View File

@ -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>

View File

@ -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"/>

View File

@ -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"/>

View File

@ -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>

View File

@ -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):

View File

@ -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,

View File

@ -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>