diff --git a/addons/account/account_installer.xml b/addons/account/account_installer.xml
index 2b736a514c3..495b4f4e5ba 100644
--- a/addons/account/account_installer.xml
+++ b/addons/account/account_installer.xml
@@ -45,7 +45,7 @@
-
+
diff --git a/addons/analytic/analytic.py b/addons/analytic/analytic.py
index 5f68cf98c1a..bfaa59adf2d 100644
--- a/addons/analytic/analytic.py
+++ b/addons/analytic/analytic.py
@@ -187,7 +187,7 @@ class account_analytic_account(osv.osv):
'credit': fields.function(_credit_calc, method=True, type='float', string='Credit'),
'quantity': fields.function(_quantity_calc, method=True, type='float', string='Quantity'),
'quantity_max': fields.float('Maximum Quantity', help='Sets the higher limit of quantity of hours.'),
- 'partner_id': fields.many2one('res.partner', 'Associated Partner'),
+ 'partner_id': fields.many2one('res.partner', 'Partner'),
'contact_id': fields.many2one('res.partner.address', 'Contact'),
'user_id': fields.many2one('res.users', 'Account Manager'),
'date_start': fields.date('Date Start'),
diff --git a/addons/hr/board_hr_view.xml b/addons/hr/board_hr_view.xml
index 58204352ac4..c740114789a 100644
--- a/addons/hr/board_hr_view.xml
+++ b/addons/hr/board_hr_view.xml
@@ -7,7 +7,7 @@
name="Human Resources"
parent="base.dashboard"/>
-
+
board.hr.formboard.board
diff --git a/addons/hr/hr.py b/addons/hr/hr.py
index 655b9d9bfd1..c05836c393a 100644
--- a/addons/hr/hr.py
+++ b/addons/hr/hr.py
@@ -97,7 +97,7 @@ class hr_job(osv.osv):
'requirements': fields.text('Requirements'),
'department_id': fields.many2one('hr.department', 'Department'),
'company_id': fields.many2one('res.company', 'Company'),
- 'state': fields.selection([('open', 'Open'),('old', 'Old'),('recruit', 'In Recruitement')], 'State', readonly=True, required=True),
+ 'state': fields.selection([('open', 'In Position'),('old', 'Old'),('recruit', 'In Recruitement')], 'State', readonly=True, required=True),
}
_defaults = {
'expected_employees': 1,
diff --git a/addons/hr/hr_view.xml b/addons/hr/hr_view.xml
index e171f2dfba7..2b1cd596024 100644
--- a/addons/hr/hr_view.xml
+++ b/addons/hr/hr_view.xml
@@ -340,10 +340,10 @@
-
-
-
-
+
+
+
+
diff --git a/addons/hr/installer.py b/addons/hr/installer.py
index 1bd615b8699..cdeb2ca77a3 100644
--- a/addons/hr/installer.py
+++ b/addons/hr/installer.py
@@ -48,10 +48,6 @@ class hr_installer(osv.osv_memory):
'hr_payroll_account': fields.boolean('Payroll Accounting',
help="Generic Payroll system Integrated with Accountings."),
}
- _defaults = {
- 'hr_holidays': True,
- 'hr_expense': True,
- }
hr_installer()
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/hr_attendance/hr_attendance_view.xml b/addons/hr_attendance/hr_attendance_view.xml
index 44d09bec6cd..7070db1d5b2 100644
--- a/addons/hr_attendance/hr_attendance_view.xml
+++ b/addons/hr_attendance/hr_attendance_view.xml
@@ -52,11 +52,11 @@
-
+
-
-
-
+
+
+
@@ -72,7 +72,7 @@
hr.attendanceformtree,form
- {"search_default_employee":1}
+ {"search_default_today":1}Time Tracking functionality aims to manage employee's attendances on the basis of the actions (Sign in/Sign out) performed by them. You can also link this to an attendance machine using OpenERP's webservices features.
@@ -81,7 +81,7 @@
-
+
hr.action.reason.form
@@ -116,7 +116,9 @@
-
+
diff --git a/addons/hr_evaluation/board_hr_evaluation_view.xml b/addons/hr_evaluation/board_hr_evaluation_view.xml
index 5a67fe1945d..70d6245b1ee 100644
--- a/addons/hr_evaluation/board_hr_evaluation_view.xml
+++ b/addons/hr_evaluation/board_hr_evaluation_view.xml
@@ -14,19 +14,14 @@
board.hr.evaluation.formboard.board
-
+ form
-
-
-
+
+
+
-
+
diff --git a/addons/hr_expense/board_hr_expense_view.xml b/addons/hr_expense/board_hr_expense_view.xml
index 69dbad767d9..e79f581dce0 100644
--- a/addons/hr_expense/board_hr_expense_view.xml
+++ b/addons/hr_expense/board_hr_expense_view.xml
@@ -20,12 +20,12 @@
board.hr.expense.formboard.board
-
+ form
-
-
-
+
+
+
diff --git a/addons/hr_expense/hr_expense_view.xml b/addons/hr_expense/hr_expense_view.xml
index 5f07333787e..5d22113272c 100644
--- a/addons/hr_expense/hr_expense_view.xml
+++ b/addons/hr_expense/hr_expense_view.xml
@@ -168,7 +168,7 @@
Expenseshr.expense.expenseform
- {"search_default_user_id":uid,"search_default_department_id": department_id,"search_default_this":1}
+ {"search_default_user_id":uid}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_holidays/__openerp__.py b/addons/hr_holidays/__openerp__.py
index 435465e3ddd..f06b41e69da 100644
--- a/addons/hr_holidays/__openerp__.py
+++ b/addons/hr_holidays/__openerp__.py
@@ -56,6 +56,7 @@
'security/ir.model.access.csv',
'hr_holidays_workflow.xml',
'hr_holidays_view.xml',
+ 'hr_holidays_data.xml',
'hr_holidays_wizard.xml',
'hr_holidays_report.xml',
'report/hr_holidays_report_view.xml',
diff --git a/addons/hr_holidays/board_hr_holidays_view.xml b/addons/hr_holidays/board_hr_holidays_view.xml
index 86786ad1baf..00412073532 100644
--- a/addons/hr_holidays/board_hr_holidays_view.xml
+++ b/addons/hr_holidays/board_hr_holidays_view.xml
@@ -22,36 +22,36 @@
board.hr.holidays.formboard.board
-
+ form
-
-
-
+
+
+
-
+
-
- Leaves by Month
- ir.actions.act_window
- available.holidays.report
- form
- graph,tree
- [('user_id','=',uid)]
+
+ Leaves by Month
+ ir.actions.act_window
+ available.holidays.report
+ form
+ graph,tree
+ [('user_id','=',uid)]{'group_by_no_leaf':1,'group_by':['month']}
-
-
-
+
+
+ board.hr.holidays.leave.month.formboard.board
- form
-
+ form
+
-
-
-
+
+
+
diff --git a/addons/hr_holidays/hr_holidays.py b/addons/hr_holidays/hr_holidays.py
index 356d697f2c1..eca3c02f301 100644
--- a/addons/hr_holidays/hr_holidays.py
+++ b/addons/hr_holidays/hr_holidays.py
@@ -110,9 +110,9 @@ class hr_holidays_status(osv.osv):
# To do: we can add remaining_leaves_category field to display remaining leaves for particular type
_columns = {
- 'name': fields.char('Name', size=64, required=True, translate=True),
+ 'name': fields.char('Leave Type', size=64, required=True, translate=True),
'categ_id': fields.many2one('crm.case.categ', 'Meeting Category', domain="[('object_id.model', '=', 'crm.meeting')]", help='If you link this type of leave with a category in the CRM, it will synchronize each leave asked with a case in this category, to display it in the company shared calendar for example.'),
- 'color_name': fields.selection([('red', 'Red'), ('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'),
+ '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.'),
'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, method=True, string='Maximum Leaves Allowed', help='This value is given by the sum of all holidays requests with a positive value.', multi='user_left_days'),
@@ -162,7 +162,7 @@ class hr_holidays(osv.osv):
'linked_request_ids': fields.one2many('hr.holidays', 'parent_id', 'Linked Requests',),
'department_id':fields.related('employee_id', 'department_id', string='Department', type='many2one', relation='hr.department', readonly=True, store=True),
'category_id': fields.many2one('hr.employee.category', "Category", help='Category Of employee'),
- 'holiday_type': fields.selection([('employee','By Employee'),('category','By Employee Category')], 'Allocation Type', help='By Employee: Allocation/Request for individual Employee, By Employee Category: Allocation/Request for group of employees in category'),
+ 'holiday_type': fields.selection([('employee','By Employee'),('category','By Employee Category')], 'Allocation Type', help='By Employee: Allocation/Request for individual Employee, By Employee Category: Allocation/Request for group of employees in category', required=True),
'manager_id2': fields.many2one('hr.employee', 'Second Approval', readonly=True, help='This area is automaticly filled by the user who validate the leave with second level (If Leave type need second validation)')
}
diff --git a/addons/hr_holidays/hr_holidays_data.xml b/addons/hr_holidays/hr_holidays_data.xml
new file mode 100644
index 00000000000..54f53f47a32
--- /dev/null
+++ b/addons/hr_holidays/hr_holidays_data.xml
@@ -0,0 +1,26 @@
+
+
+
+
+
+
+ Casual Leave
+ True
+ black
+
+
+
+
+ Legal Holidays
+ blue
+
+
+
+
+ Sick Leave
+ True
+ red
+
+
+
+
diff --git a/addons/hr_holidays/hr_holidays_demo.xml b/addons/hr_holidays/hr_holidays_demo.xml
index e59bd5a0353..e12d7de16b5 100644
--- a/addons/hr_holidays/hr_holidays_demo.xml
+++ b/addons/hr_holidays/hr_holidays_demo.xml
@@ -2,13 +2,6 @@
-
-
- Casual Leave
- True
- black
-
-
Casual Leave for Fabien Pinckaers
@@ -27,13 +20,6 @@
-
-
- Sick Leave
- True
- red
-
-
Doctor Appointment
diff --git a/addons/hr_holidays/hr_holidays_view.xml b/addons/hr_holidays/hr_holidays_view.xml
index b1225f04609..6a644d4ec18 100644
--- a/addons/hr_holidays/hr_holidays_view.xml
+++ b/addons/hr_holidays/hr_holidays_view.xml
@@ -15,10 +15,15 @@
-
-
+
+
+
@@ -32,14 +37,14 @@
-
+
-
-
+
-
-
+
+
@@ -89,7 +94,7 @@
-
+
@@ -112,7 +117,7 @@
@@ -349,12 +354,15 @@
form
diff --git a/addons/hr_timesheet_invoice/hr_timesheet_invoice.py b/addons/hr_timesheet_invoice/hr_timesheet_invoice.py
index 7f79051edce..f605fd760be 100644
--- a/addons/hr_timesheet_invoice/hr_timesheet_invoice.py
+++ b/addons/hr_timesheet_invoice/hr_timesheet_invoice.py
@@ -63,7 +63,8 @@ class account_analytic_account(osv.osv):
_inherit = "account.analytic.account"
_columns = {
- 'pricelist_id' : fields.many2one('product.pricelist', 'Sale Pricelist'),
+ 'pricelist_id' : fields.many2one('product.pricelist', 'Sale Pricelist',
+ help="The product to invoice is defined on the employee form, the price will be deduced by this pricelist on the product."),
'amount_max': fields.float('Max. Invoice Price'),
'amount_invoiced': fields.function(_invoiced_calc, method=True, string='Invoiced Amount',
help="Total invoiced"),
diff --git a/addons/hr_timesheet_invoice/wizard/hr_timesheet_invoice_create.py b/addons/hr_timesheet_invoice/wizard/hr_timesheet_invoice_create.py
index 1bb7765b372..475315068ae 100644
--- a/addons/hr_timesheet_invoice/wizard/hr_timesheet_invoice_create.py
+++ b/addons/hr_timesheet_invoice/wizard/hr_timesheet_invoice_create.py
@@ -35,31 +35,14 @@ class hr_timesheet_invoice_create(osv.osv_memory):
_name = 'hr.timesheet.invoice.create'
_description = 'Create invoice from timesheet'
_columns = {
- 'accounts': fields.many2many('account.analytic.account', 'invoice_id', 'account_id', 'Analytic Accounts', required=True),
'date': fields.boolean('Date', help='The real date of each work will be displayed on the invoice'),
'time': fields.boolean('Time spent', help='The time of each work done will be displayed on the invoice'),
'name': fields.boolean('Description', help='The detail of each work done will be displayed on the invoice'),
'price': fields.boolean('Cost', help='The cost of each work done will be displayed on the invoice. You probably don\'t want to check this'),
'product': fields.many2one('product.product', 'Product', help='Complete this field only if you want to force to use a specific product. Keep empty to use the real product that comes from the cost.'),
- }
-
- def _get_accounts(self, cr, uid, context=None):
- if context is None:
- context = {}
- if not len(context['active_ids']):
- return {}
- #Checking whether the analytic line is invoiced or not
- analytic_line_obj = self.pool.get('account.analytic.line').browse(cr, uid, context['active_ids'], context=context)
- for obj_acc in analytic_line_obj:
- if obj_acc.invoice_id and obj_acc.invoice_id.state !='cancel':
- raise osv.except_osv(_('Warning'),_('The analytic entry "%s" is already invoiced!')%(obj_acc.name,))
-
- cr.execute("SELECT distinct(account_id) from account_analytic_line where id IN %s",(tuple(context['active_ids']),))
- account_ids = cr.fetchall()
- return [x[0] for x in account_ids]
+ }
_defaults = {
- 'accounts': _get_accounts,
'date': lambda *args: 1,
'name': lambda *args: 1
}
@@ -82,12 +65,17 @@ class hr_timesheet_invoice_create(osv.osv_memory):
result = mod_obj._get_id(cr, uid, 'account', 'view_account_invoice_filter')
res = mod_obj.read(cr, uid, result, ['res_id'], context=context)
data = self.read(cr, uid, ids, [], context=context)[0]
- account_ids = data['accounts']
+
+ account_ids = {}
+ for line in self.pool.get('account.analytic.line').browse(cr, uid, context['active_ids'], context=context):
+ account_ids[line.account_id.id] = True
+
+ account_ids = account_ids.keys() #data['accounts']
for account in analytic_account_obj.browse(cr, uid, account_ids, context=context):
partner = account.partner_id
if (not partner) or not (account.pricelist_id):
raise osv.except_osv(_('Analytic Account incomplete'),
- _('Please fill in the Associate Partner and Sale Pricelist fields in the Analytic Account:\n%s') % (account.name,))
+ _('Please fill in the Partner or Customer and Sale Pricelist fields in the Analytic Account:\n%s') % (account.name,))
if not partner.address:
raise osv.except_osv(_('Partner incomplete'),
@@ -190,7 +178,7 @@ class hr_timesheet_invoice_create(osv.osv_memory):
invoice_line_obj.create(cr, uid, curr_line, context=context)
cr.execute("update account_analytic_line set invoice_id=%s WHERE account_id = %s and id IN %s" ,(last_invoice, account.id, tuple(context['active_ids'])))
- invoice_obj.button_reset_taxes(cr, uid, [last_invoice], context)
+ invoice_obj.button_reset_taxes(cr, uid, [last_invoice], context)
mod_obj = self.pool.get('ir.model.data')
act_obj = self.pool.get('ir.actions.act_window')
diff --git a/addons/hr_timesheet_invoice/wizard/hr_timesheet_invoice_create_view.xml b/addons/hr_timesheet_invoice/wizard/hr_timesheet_invoice_create_view.xml
index 82276553edd..c02215cf742 100644
--- a/addons/hr_timesheet_invoice/wizard/hr_timesheet_invoice_create_view.xml
+++ b/addons/hr_timesheet_invoice/wizard/hr_timesheet_invoice_create_view.xml
@@ -10,21 +10,17 @@
diff --git a/addons/project/project_view.xml b/addons/project/project_view.xml
index 91564583729..6fd11bd245f 100644
--- a/addons/project/project_view.xml
+++ b/addons/project/project_view.xml
@@ -27,7 +27,7 @@
-
+
@@ -67,16 +67,18 @@
-
-
+
+
-
-
-
-
-
+
+
+
+
+
+
+
diff --git a/addons/project_timesheet/project_timesheet_view.xml b/addons/project_timesheet/project_timesheet_view.xml
index 2a1b94620a8..61834abbe66 100644
--- a/addons/project_timesheet/project_timesheet_view.xml
+++ b/addons/project_timesheet/project_timesheet_view.xml
@@ -11,9 +11,9 @@
-
-
-
+
+
+