diff --git a/addons/audittrail/audittrail.py b/addons/audittrail/audittrail.py
index 4278e0a9179..dd843449c8c 100644
--- a/addons/audittrail/audittrail.py
+++ b/addons/audittrail/audittrail.py
@@ -35,15 +35,15 @@ class audittrail_rule(osv.osv):
_description = "Audittrail Rule"
_columns = {
"name": fields.char("Rule Name", size=32, required=True),
- "object_id": fields.many2one('ir.model', 'Object', required=True),
+ "object_id": fields.many2one('ir.model', 'Object', required=True, help="Select object for which you want to generate log."),
"user_id": fields.many2many('res.users', 'audittail_rules_users',
'user_id', 'rule_id', 'Users', help="if User is not added then it will applicable for all users"),
- "log_read": fields.boolean("Log Reads"),
- "log_write": fields.boolean("Log Writes"),
- "log_unlink": fields.boolean("Log Deletes"),
- "log_create": fields.boolean("Log Creates"),
- "log_action": fields.boolean("Log Action"),
- "log_workflow": fields.boolean("Log Workflow"),
+ "log_read": fields.boolean("Log Reads", help="Select this if you want to keep track of read/open on any record of the object of this rule"),
+ "log_write": fields.boolean("Log Writes", help="Select this if you want to keep track of modification on any record of the object of this rule"),
+ "log_unlink": fields.boolean("Log Deletes", help="Select this if you want to keep track of deletion on any record of the object of this rule"),
+ "log_create": fields.boolean("Log Creates",help="Select this if you want to keep track of creation on any record of the object of this rule"),
+ "log_action": fields.boolean("Log Action",help="Select this if you want to keep track of actions on the object of this rule"),
+ "log_workflow": fields.boolean("Log Workflow",help="Select this if you want to keep track of workflow on any record of the object of this rule"),
"state": fields.selection((("draft", "Draft"),
("subscribed", "Subscribed")),
"State", required=True),
diff --git a/addons/hr/__openerp__.py b/addons/hr/__openerp__.py
index 70c91fbe362..0aa26987aa5 100755
--- a/addons/hr/__openerp__.py
+++ b/addons/hr/__openerp__.py
@@ -44,6 +44,7 @@
'hr_installer.xml',
'hr_data.xml',
'board_hr_view.xml',
+ 'board_hr_manager_view.xml',
],
'demo_xml': [
'hr_demo.xml',
@@ -54,4 +55,4 @@
'active': False,
'certificate': '0086710558965',
}
-# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
\ No newline at end of file
+# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/hr/board_hr_manager_view.xml b/addons/hr/board_hr_manager_view.xml
new file mode 100644
index 00000000000..3cfaf165840
--- /dev/null
+++ b/addons/hr/board_hr_manager_view.xml
@@ -0,0 +1,31 @@
+
+
+
+
+
+
+ board.hr.manager.form
+ board.board
+ form
+
+
+
+
+
+
+ HR Manager Dashboard
+ board.board
+ form
+ form
+ menu
+
+
+
+
diff --git a/addons/hr/hr.py b/addons/hr/hr.py
index 95355d7c303..9ce0b535401 100644
--- a/addons/hr/hr.py
+++ b/addons/hr/hr.py
@@ -107,10 +107,10 @@ class hr_employee(osv.osv):
_inherits = {'resource.resource': "resource_id"}
_columns = {
'country_id': fields.many2one('res.country', 'Nationality'),
- 'birthday': fields.date("Birthday"),
+ 'birthday': fields.date("Date of Birth"),
'ssnid': fields.char('SSN No', size=32, help='Social Security Number'),
'sinid': fields.char('SIN No', size=32, help="Social Insurance Number"),
- 'otherid': fields.char('Other ID', size=32),
+ 'identification_id': fields.char('Identification No', size=32),
'gender': fields.selection([('male', 'Male'),('female', 'Female')], 'Gender'),
'marital': fields.many2one('hr.employee.marital.status', 'Marital Status'),
'bank_account': fields.char('Bank Account', size=64),
@@ -119,10 +119,10 @@ class hr_employee(osv.osv):
'address_id': fields.many2one('res.partner.address', 'Working Address'),
'address_home_id': fields.many2one('res.partner.address', 'Home Address'),
'work_phone': fields.related('address_id', 'phone', type='char', string='Work Phone', readonly=True),
- 'work_email': fields.related('address_id', 'email', type='char', size=240, string='Work E-mail', readonly=True),
+ 'work_email': fields.related('address_id', 'email', type='char', size=240, string='Work E-mail'),
'work_location': fields.char('Office Location', size=32),
'notes': fields.text('Notes'),
- 'parent_id': fields.related('department_id', 'manager_id', relation='hr.employee', string='Manager', type='many2one', store=True, select=True),
+ 'parent_id': fields.related('department_id', 'manager_id', relation='hr.employee', string='Manager', type='many2one', store=True, select=True, readonly=True, help="It is linked with manager of Department"),
'category_ids': fields.many2many('hr.employee.category', 'employee_category_rel','category_id','emp_id','Category'),
'child_ids': fields.one2many('hr.employee', 'parent_id', 'Subordinates'),
'resource_id': fields.many2one('resource.resource', 'Resource', ondelete='cascade', required=True),
@@ -131,14 +131,29 @@ class hr_employee(osv.osv):
'photo': fields.binary('Photo')
}
+ def onchange_company(self, cr, uid, ids, company, context=None):
+ company_id = self.pool.get('res.company').browse(cr,uid,company)
+ for address in company_id.partner_id.address:
+ return {'value': {'address_id': address.id}}
+ return {'value':{}}
+
+ def onchange_department(self, cr, uid, ids, department_id, context=None):
+ manager = self.pool.get('hr.department').browse(cr, uid, department_id).manager_id.id
+ return {'value': {'parent_id':manager or False}}
+
+ def onchange_user(self, cr, uid, ids, user_id, context=None):
+ mail = self.pool.get('res.users').browse(cr,uid,user_id)
+ return {'value': {'work_email':mail.user_email}}
+
def _get_photo(self, cr, uid, context=None):
return open(os.path.join(
tools.config['addons_path'], 'hr/image', 'photo.png'),
'rb') .read().encode('base64')
-
+
_defaults = {
'active': 1,
'photo': _get_photo,
+ 'address_id': lambda self,cr,uid,c: self.pool.get('res.partner.address').browse(cr, uid, uid, c).partner_id.id
}
def _check_recursion(self, cr, uid, ids, context=None):
@@ -174,4 +189,4 @@ class hr_department(osv.osv):
hr_department()
-# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
\ No newline at end of file
+# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/hr/hr_department_view.xml b/addons/hr/hr_department_view.xml
index 7626c501167..23ae3a9d7e3 100644
--- a/addons/hr/hr_department_view.xml
+++ b/addons/hr/hr_department_view.xml
@@ -14,9 +14,9 @@
@@ -148,7 +150,7 @@
The employee directory contains all data related to your employees: from their photo up to their hourly estimated costs for the timesheets. Employees are managed by departments and can be linked to users to manage their access rights.
-
+
+
+ Employee
+
+
+
+ Worker
+
+
+
+ Subcontractor
+
diff --git a/addons/hr_contract/hr_contract_view.xml b/addons/hr_contract/hr_contract_view.xml
index c049d92a783..cb486df91b1 100644
--- a/addons/hr_contract/hr_contract_view.xml
+++ b/addons/hr_contract/hr_contract_view.xml
@@ -49,7 +49,7 @@
- Contract Wage Type
+ Wage Typehr.contract.wage.typeformtree,form
@@ -58,7 +58,7 @@
-
+
hr.contract.wage.type.period.view.form
@@ -101,7 +101,7 @@
hr.employee
-
+
@@ -133,7 +133,7 @@
form
-
+
@@ -154,8 +154,11 @@
-
+
+
@@ -182,7 +185,10 @@
-
+
+
+
+
@@ -205,13 +211,14 @@
+
+
-
-
-
+
+
@@ -268,8 +275,8 @@
-
-
+
+
diff --git a/addons/hr_contract/security/ir.model.access.csv b/addons/hr_contract/security/ir.model.access.csv
index 7db79a1de7f..9ed14b14755 100644
--- a/addons/hr_contract/security/ir.model.access.csv
+++ b/addons/hr_contract/security/ir.model.access.csv
@@ -12,7 +12,9 @@
"access_hr_contract_wage_type_system","hr.contract.wage.type.system","model_hr_contract_wage_type","base.group_system",1,1,1,1
"access_hr_contract_wage_type_period_system","hr.contract.wage.type.period.system","model_hr_contract_wage_type_period","base.group_system",1,1,1,1
"access_hr_contract_type_system","hr.contract.type.system","model_hr_contract_type","base.group_system",1,1,1,1
-"access_hr_contract_system","hr.contract.system","model_hr_contract","base.group_system",1,0,0,0
+"access_hr_contract_system","hr.contract.system","model_hr_contract","base.group_system",1,1,1,1
"access_hr_employee_category_contract","hr.employee.category.contract","hr.model_hr_employee_category","base.group_hr_contract",1,1,1,1
"access_hr_department_contract","hr.department.contract","hr.model_hr_department","base.group_hr_contract",1,1,1,1
-"access_hr_contract_manager","hr.contract.manager","model_hr_contract","base.group_hr_manager",1,0,0,0
+"access_hr_contract_manager","hr.contract.manager","model_hr_contract","base.group_hr_manager",1,1,1,1
+"access_hr_contract_employee","hr.contract.employee","model_hr_contract","base.group_user",1,0,0,0
+"access_hr_contract_type_manager","hr.contract.type.manager","model_hr_contract_type","base.group_hr_manager",1,1,1,1
diff --git a/addons/hr_contract/test/test_hr_contract.yml b/addons/hr_contract/test/test_hr_contract.yml
index 084e45620a4..e5ecc57f144 100644
--- a/addons/hr_contract/test/test_hr_contract.yml
+++ b/addons/hr_contract/test/test_hr_contract.yml
@@ -41,7 +41,10 @@
advantages_net: 0.0
date_end: '2011-05-18'
date_start: '2010-05-18'
+ trial_date_end: '2010-03-01'
+ trial_date_start: '2010-04-30'
name: contract1
wage: 1.0
wage_type_id: hr_contract_wage_type_monthlygrosswage0
+ type_id: hr_contract_type_emp
working_hours: resource.timesheet_group1
diff --git a/addons/hr_evaluation/__openerp__.py b/addons/hr_evaluation/__openerp__.py
index b28c6d4e913..9db64bbb27c 100644
--- a/addons/hr_evaluation/__openerp__.py
+++ b/addons/hr_evaluation/__openerp__.py
@@ -33,7 +33,7 @@
in which various surveys can be created and it can be defined which
level of employee hierarchy fills what and final review and evaluation
is done by the manager.Every evaluation filled by the employees can be viewed
- in the form of.Implements a dashboard for My Current Evaluations
+ in the form of.Implements a dashboard for My Current Evaluations
""",
"init_xml": [],
"demo_xml": ["hr_evaluation_demo.xml",
@@ -43,7 +43,8 @@
"security/hr_evaluation_security.xml",
"wizard/hr_evaluation_mail_view.xml",
"hr_evaluation_view.xml",
- "report/hr_evaluation_report_view.xml"
+ "report/hr_evaluation_report_view.xml",
+ "board_hr_evaluation_view.xml"
],
"test": ["test/test_hr_evaluation.yml"],
"active": False,
diff --git a/addons/hr_evaluation/board_hr_evaluation_view.xml b/addons/hr_evaluation/board_hr_evaluation_view.xml
index 7822c0d3111..5a67fe1945d 100644
--- a/addons/hr_evaluation/board_hr_evaluation_view.xml
+++ b/addons/hr_evaluation/board_hr_evaluation_view.xml
@@ -2,12 +2,12 @@
- My Current Evaluations
+ My Evaluation Remainingir.actions.act_windowhr_evaluation.evaluationform
- [('state','!=','done'),('create_uid','=',uid)]
+ [('state','in',('wait', 'progress')),('create_uid','=',uid)]
@@ -18,9 +18,15 @@
form
-
+
+
diff --git a/addons/hr_evaluation/hr_evaluation.py b/addons/hr_evaluation/hr_evaluation.py
index c80c12f10ff..263b34322b9 100644
--- a/addons/hr_evaluation/hr_evaluation.py
+++ b/addons/hr_evaluation/hr_evaluation.py
@@ -34,7 +34,7 @@ class hr_evaluation_plan(osv.osv):
'company_id': fields.many2one('res.company', 'Company', required=True),
'phase_ids': fields.one2many('hr_evaluation.plan.phase', 'plan_id', 'Evaluation Phases'),
'month_first': fields.integer('First Evaluation After'),
- 'month_next': fields.integer('Next Evaluation After'),
+ 'month_next': fields.integer('After the Date of Start'),
'active': fields.boolean('Active')
}
_defaults = {
@@ -67,10 +67,10 @@ class hr_evaluation_plan_phase(osv.osv):
'send_anonymous_employee': fields.boolean('Anonymous Summary',
help="Send an anonymous summary to the employee"),
'wait': fields.boolean('Wait Previous Phases',
- help="Check this box if you want to wait that all preceeding phases " +
+ help="Check this box if you want to wait that all preceding phases " +
"are finished before launching this phase."),
'mail_feature': fields.boolean('Send mail for this phase', help="Check this box if you want to send mail to employees"+
- "coming under this phase"),
+ " coming under this phase"),
'mail_body': fields.text('Email'),
'email_subject':fields.text('char')
}
@@ -161,13 +161,13 @@ class hr_evaluation(osv.osv):
('2','Meet expectations'),
('3','Exceeds expectations'),
('4','Significantly exceeds expectations'),
- ], "Overall Rating", help="This is the overall rating on that summarize the evaluation"),
+ ], "Appreciation", help="This is the appreciation on that summarize the evaluation"),
'survey_request_ids': fields.one2many('hr.evaluation.interview','evaluation_id','Appraisal Forms'),
'plan_id': fields.many2one('hr_evaluation.plan', 'Plan', required=True),
'state': fields.selection([
('draft','Draft'),
('wait','Plan In Progress'),
- ('progress','Final Validation'),
+ ('progress','Waiting Appreciation'),
('done','Done'),
('cancel','Cancelled'),
], 'State', required=True, readonly=True),
@@ -220,8 +220,8 @@ class hr_evaluation(osv.osv):
elif phase.action == "self":
childs = [evaluation.employee_id]
for child in childs:
- if not child.user_id:
- continue
+# if not child.user_id:
+# continue
int_id = hr_eval_inter_obj.create(cr, uid, {
'evaluation_id': evaluation.id,
@@ -284,6 +284,7 @@ survey_request()
class hr_evaluation_interview(osv.osv):
_name = 'hr.evaluation.interview'
_inherits = {'survey.request': 'request_id'}
+ _rec_name = 'request_id'
_description = 'Evaluation Interview'
_columns = {
'request_id': fields.many2one('survey.request','Request_id', ondelete='cascade', required=True),
@@ -293,7 +294,19 @@ class hr_evaluation_interview(osv.osv):
_defaults = {
'is_evaluation': True,
}
-
+
+ def name_get(self, cr, uid, ids, context=None):
+ if context is None:
+ context = {}
+ if not len(ids):
+ return []
+ reads = self.browse(cr, uid, ids, context=context)
+ res = []
+ for record in reads:
+ name = record.request_id.survey_id.title
+ res.append((record['id'], name))
+ return res
+
def survey_req_waiting_answer(self, cr, uid, ids, context=None):
if context is None:
context = {}
diff --git a/addons/hr_evaluation/hr_evaluation_demo.xml b/addons/hr_evaluation/hr_evaluation_demo.xml
index eaad7d3865d..0a03ec0e0b6 100644
--- a/addons/hr_evaluation/hr_evaluation_demo.xml
+++ b/addons/hr_evaluation/hr_evaluation_demo.xml
@@ -9,6 +9,7 @@
5
+ open
@@ -1610,6 +1611,19 @@ Once the form had been filled, the employee send it to his supervisor.
+
+
+ Employee Evaluation
+
+ [('employee_id.user_id','=',user.id)]
+
+
+
+ Manager Evaluation
+
+ ['|',('employee_id.user_id','=',user.id),('employee_id.parent_id.user_id','=',user.id )]
+
+
diff --git a/addons/hr_evaluation/hr_evaluation_view.xml b/addons/hr_evaluation/hr_evaluation_view.xml
index 55bc22ac505..9ec02b4ad0b 100644
--- a/addons/hr_evaluation/hr_evaluation_view.xml
+++ b/addons/hr_evaluation/hr_evaluation_view.xml
@@ -26,13 +26,14 @@
form
@@ -44,15 +47,13 @@
-
-
-
+
+
+
-
-
@@ -62,24 +63,25 @@
-
-
-
+
+
+
+
-
-
-
-
-
-
+
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
diff --git a/addons/hr_evaluation/security/ir.model.access.csv b/addons/hr_evaluation/security/ir.model.access.csv
index 181e412ce69..7c57d67d1cd 100644
--- a/addons/hr_evaluation/security/ir.model.access.csv
+++ b/addons/hr_evaluation/security/ir.model.access.csv
@@ -2,9 +2,9 @@
"access_hr_evaluation_evaluation_user","hr_evaluation.evaluation.user","model_hr_evaluation_evaluation","base.group_hr_user",1,1,1,1
"access_hr_evaluation_evaluation_manager","hr_evaluation.evaluation.manager","model_hr_evaluation_evaluation","base.group_hr_manager",1,1,1,1
"access_hr_evaluation_plan_user","hr_evaluation.plan.user","model_hr_evaluation_evaluation","base.group_hr_user",1,0,0,0
-"access_hr_evaluation_plan_manager","hr_evaluation.plan.manager","model_hr_evaluation_plan","base.group_hr_manager",1,0,0,0
+"access_hr_evaluation_plan_manager","hr_evaluation.plan.manager","model_hr_evaluation_plan","base.group_hr_manager",1,1,1,1
"access_hr_evaluation_plan_phase_user","hr_evaluation.plan.phase.user","model_hr_evaluation_plan_phase","base.group_hr_user",1,0,0,0
-"access_hr_evaluation_plan_phase_manager","hr_evaluation.plan.phase.manager","model_hr_evaluation_plan_phase","base.group_hr_manager",1,0,0,0
+"access_hr_evaluation_plan_phase_manager","hr_evaluation.plan.phase.manager","model_hr_evaluation_plan_phase","base.group_hr_manager",1,1,1,1
"access_hr_evaluation_interview_user","hr.evaluation.interview.user","model_hr_evaluation_interview","base.group_hr_user",1,1,1,1
"access_hr_evaluation_interview_manager","hr.evaluation.interview.manager","model_hr_evaluation_interview","base.group_hr_manager",1,1,1,1
"access_hr_evaluation_report","hr.evaluation.report","model_hr_evaluation_report","base.group_hr_manager",1,1,1,1
@@ -12,6 +12,10 @@
"access_hr_evaluation_plan_phase_system","hr_evaluation.plan.phase.system","model_hr_evaluation_plan_phase","base.group_system",1,1,1,1
"access_hr_evaluation_evaluation_system","hr_evaluation.evaluation.system","model_hr_evaluation_evaluation","base.group_system",1,0,0,0
"access_hr_evaluation_interview_system","hr.evaluation.interview.system","model_hr_evaluation_interview","base.group_system",1,0,0,0
+"access_hr_evaluation_evaluation_employee","hr_evaluation.evaluation.employee","model_hr_evaluation_evaluation","base.group_user",1,0,0,0
+"access_hr_evaluation_interview_employee","hr.evaluation.interview.employee","model_hr_evaluation_interview","base.group_user",1,0,0,0
+"access_hr_evaluation_user","hr_evaluation.user","model_hr_evaluation_plan","base.group_hr_user",1,1,1,1
+"access_hr_evaluation_employee","hr_evaluation.employee","model_hr_evaluation_plan","base.group_user",1,0,0,0
"access_survey_type_hr_manager","survey.type","survey.model_survey_type","base.group_hr_manager",1,1,1,1
"access_survey_hr_manager","survey.hr.manager","survey.model_survey","base.group_hr_manager",1,1,1,1
"access_survey_history_manager","survey.history","survey.model_survey_history","base.group_hr_manager",1,1,1,1
@@ -28,4 +32,11 @@
"access_survey_answer_hr_user","survey.answer.hr.user","survey.model_survey_answer","base.group_hr_user",1,1,1,0
"access_survey_response_answer_hr_user","survey.response.answer.hr.user","survey.model_survey_response_answer","base.group_hr_user",1,1,1,0
"access_survey_type_hr_user","survey.type.hr.user","survey.model_survey_type","base.group_hr_user",1,1,1,0
-"access_survey_question_hr_user","survey.question.hr.user","survey.model_survey_question","base.group_hr_user",1,1,1,0
\ No newline at end of file
+"access_survey_question_hr_user","survey.question.hr.user","survey.model_survey_question","base.group_hr_user",1,1,1,0
+"access_survey_page_hr_user","survey.page.hr.user","survey.model_survey_page","base.group_hr_user",1,1,1,1
+"access_survey_response_hr_user","survey.response.hr.user","survey.model_survey_response","base.group_hr_user",1,1,1,0
+"access_survey_history_hr_user","survey.history.hr.user","survey.model_survey_history","base.group_hr_user",1,1,1,0
+"access_survey_request_hr_user","survey.request.hr.user","survey.model_survey_request","base.group_hr_user",1,1,1,0
+"access_survey_question_column_heading_hr_user","survey.question.column.heading.hr.user","survey.model_survey_question_column_heading","base.group_hr_user",1,0,0,0
+"access_survey_response_line_hr_user","survey.response.line.hr.user","survey.model_survey_response_line","base.group_hr_user",1,1,1,0
+"access_survey_tbl_column_heading_hr_user","survey.tbl.column.heading.hr.user","survey.model_survey_tbl_column_heading","base.group_hr_user",1,1,1,0
diff --git a/addons/hr_evaluation/wizard/hr_evaluation_mail.py b/addons/hr_evaluation/wizard/hr_evaluation_mail.py
index 75aecf6a9f1..576c782bfd8 100644
--- a/addons/hr_evaluation/wizard/hr_evaluation_mail.py
+++ b/addons/hr_evaluation/wizard/hr_evaluation_mail.py
@@ -25,7 +25,7 @@ class hr_evaluation_reminder(osv.osv_memory):
_name = "hr.evaluation.reminder"
_description = "Sends Reminders to employess to fill the evaluations"
_columns = {
- 'evaluation_id': fields.many2one('hr_evaluation.evaluation', 'Evaluations', required=True)
+ 'evaluation_id': fields.many2one('hr.evaluation.interview', 'Interview', required=True)
}
def send_mail(self, cr, uid, ids, context=None):
diff --git a/addons/hr_expense/__openerp__.py b/addons/hr_expense/__openerp__.py
index fe06b0110c2..c9df8587153 100644
--- a/addons/hr_expense/__openerp__.py
+++ b/addons/hr_expense/__openerp__.py
@@ -51,6 +51,7 @@
'process/hr_expense_process.xml',
'report/hr_expense_report_view.xml',
'board_hr_expense_view.xml',
+ 'board_hr_expense_manager_view.xml'
],
'demo_xml': [
'hr_expense_demo.xml',
diff --git a/addons/hr_expense/board_hr_expense_manager_view.xml b/addons/hr_expense/board_hr_expense_manager_view.xml
new file mode 100644
index 00000000000..9063ac32458
--- /dev/null
+++ b/addons/hr_expense/board_hr_expense_manager_view.xml
@@ -0,0 +1,32 @@
+
+
+
+
+
+ All Employee Expenses
+ hr.expense.expense
+ form
+ [('state','in',('confirm', 'accepted'))]
+
+
+
+
+ board.hr.manager.expense.form
+ board.board
+
+ form
+
+
+
+
+
+
+
+
+
diff --git a/addons/hr_expense/board_hr_expense_view.xml b/addons/hr_expense/board_hr_expense_view.xml
index 4b06cd758b1..69dbad767d9 100644
--- a/addons/hr_expense/board_hr_expense_view.xml
+++ b/addons/hr_expense/board_hr_expense_view.xml
@@ -13,7 +13,7 @@
My Expenseshr.expense.expenseform
- [('state','in',('draft', 'confirm')),('user_id','=',uid)]
+ [('state','in',('confirm', 'accepted')),('user_id','=',uid)]
diff --git a/addons/hr_expense/hr_expense.py b/addons/hr_expense/hr_expense.py
index c5818536f8c..4003cded168 100644
--- a/addons/hr_expense/hr_expense.py
+++ b/addons/hr_expense/hr_expense.py
@@ -61,12 +61,12 @@ class hr_expense_expense(osv.osv):
_name = "hr.expense.expense"
_description = "Expense"
_columns = {
- 'name': fields.char('Expense Sheet', size=128, required=True),
+ 'name': fields.char('Description', size=128, required=True),
'id': fields.integer('Sheet ID', readonly=True),
'ref': fields.char('Reference', size=32),
'date': fields.date('Date'),
'journal_id': fields.many2one('account.journal', 'Force Journal', help = "The journal used when the expense is invoiced"),
- 'employee_id': fields.many2one('hr.employee', "Employee's Name", required=True),
+ 'employee_id': fields.many2one('hr.employee', "Employee", required=True),
'user_id': fields.many2one('res.users', 'User', required=True),
'date_confirm': fields.date('Confirmation Date', help = "Date of the confirmation of the sheet expense. It's filled when the button Confirm is pressed."),
'date_valid': fields.date('Validation Date', help = "Date of the acceptation of the sheet expense. It's filled when the button Accept is pressed."),
@@ -81,11 +81,11 @@ class hr_expense_expense(osv.osv):
'company_id': fields.many2one('res.company', 'Company', required=True),
'state': fields.selection([
('draft', 'Draft'),
- ('confirm', 'Waiting confirmation'),
- ('accepted', 'Accepted'),
+ ('confirm', 'Waiting Approval'),
+ ('accepted', 'Approved'),
('invoiced', 'Invoiced'),
('paid', 'Reimbursed'),
- ('cancelled', 'Cancelled')],
+ ('cancelled', 'Refused')],
'State', readonly=True, help='When the expense request is created the state is \'Draft\'.\n It is confirmed by the user and request is sent to admin, the state is \'Waiting Confirmation\'.\
\nIf the admin accepts it, the state is \'Accepted\'.\n If an invoice is made for the expense request, the state is \'Invoiced\'.\n If the expense is paid to user, the state is \'Reimbursed\'.'),
}
diff --git a/addons/hr_expense/hr_expense_demo.xml b/addons/hr_expense/hr_expense_demo.xml
index da348b02ab4..c3fa9e90c67 100644
--- a/addons/hr_expense/hr_expense_demo.xml
+++ b/addons/hr_expense/hr_expense_demo.xml
@@ -104,6 +104,17 @@
-
+
+ Employee Expense
+
+ [('employee_id.user_id','=',user.id)]
+
+
+
+ Manager Expense
+
+ ['|',('employee_id.user_id','=',user.id),('employee_id.parent_id.user_id','=',user.id )]
+
+
diff --git a/addons/hr_expense/hr_expense_view.xml b/addons/hr_expense/hr_expense_view.xml
index 4d25c01e773..79c0d5513f0 100644
--- a/addons/hr_expense/hr_expense_view.xml
+++ b/addons/hr_expense/hr_expense_view.xml
@@ -27,12 +27,12 @@
tree
-
+
+
-
@@ -77,7 +77,7 @@
-
+
@@ -98,10 +98,10 @@
-
+
+
-
-
+
@@ -134,14 +134,16 @@
-
-
+
-
+
@@ -149,8 +151,9 @@
+
+
-
@@ -162,7 +165,7 @@
Expenseshr.expense.expenseform
- {"search_default_user_id":uid}
+ {"search_default_user_id":uid,'search_default_this':1}The OpenERP expenses management module allows you to track the full flow. Every month, the employees record their expenses. At the end of the month, their managers validates the expenses sheets which creates costs on projects/analytic accounts. The accountant validates the proposed entries and the employee can be reimbursed. You can also reinvoice the customer at the end of the flow.
diff --git a/addons/hr_expense/report/expense.rml b/addons/hr_expense/report/expense.rml
index 4ae45ad0aa2..fa9e78c68cd 100644
--- a/addons/hr_expense/report/expense.rml
+++ b/addons/hr_expense/report/expense.rml
@@ -181,7 +181,7 @@