[IMP] resource: set default calendar as data

Currently there is no default resource calendar. This leads to calendar
being rarely used as it is not clear how to define them and how to use
them. Moreover some code handle default-like calendar by trying to
use 8-16 work hours; this should be replaced by having a real default
calendar.

This commit replaces the demo calendar by a real data calendar. It will
soon be used as default everywhere a resource calendar can be defined.

Future improvements will come to make resource easier to use and clean
its API. This commit is only the beginning !
This commit is contained in:
Thibault Delavallée
2017-01-18 10:24:41 +01:00
parent 1c4ea80f78
commit 9250cc60e1
9 changed files with 71 additions and 128 deletions
+1 -1
View File
@@ -137,7 +137,7 @@ If you have development competencies, we can propose you specific traineeships</
<record id="employee_root" model="hr.employee">
<field name="name">Pieter Parker</field>
<field name="calendar_id" ref="resource.timesheet_group1"/>
<field name="calendar_id" ref="resource.resource_calendar_std"/>
<field name="work_location">Building 1, Second Floor</field>
<field name="work_phone">+3281813700</field>
<field name="work_email">pieter@openerp.com</field>
+2 -2
View File
@@ -148,7 +148,7 @@
<field name="employee_id" ref="hr_employee_payroll"/>
<field name="notes">Default contract for marketing executives</field>
<field eval="4000.0" name="wage"/>
<field name="working_hours" ref="resource.timesheet_group1"/>
<field name="working_hours" ref="resource.resource_calendar_std"/>
</record>
<record id="hr_contract_gilles_gravie" model="hr.contract">
@@ -160,7 +160,7 @@
<field name="employee_id" ref="hr.employee_qdp"/>
<field name="notes">This is Gilles Gravie's contract</field>
<field eval="5000.0" name="wage"/>
<field name="working_hours" ref="resource.timesheet_group1"/>
<field name="working_hours" ref="resource.resource_calendar_std"/>
</record>
</odoo>
+1 -1
View File
@@ -46,5 +46,5 @@ class TestPayslipBase(TransactionCase):
'type_id': self.ref('hr_contract.hr_contract_type_emp'),
'employee_id': self.richard_emp.id,
'struct_id': self.developer_pay_structure.id,
'working_hours': self.ref('resource.timesheet_group1')
'working_hours': self.ref('resource.resource_calendar_std')
})
@@ -70,7 +70,7 @@ class TestHrPayrollAccount(common.TransactionCase):
'type_id': self.ref('hr_contract.hr_contract_type_emp'),
'employee_id': self.hr_employee_john.id,
'struct_id': self.hr_structure_softwaredeveloper.id,
'working_hours': self.ref('resource.timesheet_group1'),
'working_hours': self.ref('resource.resource_calendar_std'),
'journal_id': self.ref('hr_payroll_account.expenses_journal'),
})
@@ -10,7 +10,7 @@
<field eval="250.0" name="car_company_amount"/>
<field eval="110" name="car_employee_deduction"/>
<field eval="50.0" name="additional_net_amount"/>
<field name="working_hours" ref="resource.timesheet_group1"/>
<field name="working_hours" ref="resource.resource_calendar_std"/>
</record>
<record id="hr_payroll.hr_employee_payroll" model="hr.employee">
+5 -5
View File
@@ -38,27 +38,27 @@
<record id="mrp_workcenter_0" model="mrp.workcenter">
<field name="name">Assembly Station 1</field>
<field name="calendar_id" ref="resource.timesheet_group1"/>
<field name="calendar_id" ref="resource.resource_calendar_std"/>
<field name="capacity">5</field>
<field name="time_start">10</field>
<field name="time_stop">8</field>
<field name="time_efficiency">87</field>
<field name="calendar_id" ref="resource.timesheet_group1"/>
<field name="calendar_id" ref="resource.resource_calendar_std"/>
</record>
<record id="mrp_workcenter_3" model="mrp.workcenter">
<field name="name">Cutting</field>
<field name="calendar_id" ref="resource.timesheet_group1"/>
<field name="calendar_id" ref="resource.resource_calendar_std"/>
</record>
<record id="mrp_workcenter_1" model="mrp.workcenter">
<field name="name">Drill Station 1</field>
<field name="calendar_id" ref="resource.timesheet_group1"/>
<field name="calendar_id" ref="resource.resource_calendar_std"/>
</record>
<record id="mrp_workcenter_2" model="mrp.workcenter">
<field name="name">Assemble Station 2</field>
<field name="calendar_id" ref="resource.timesheet_group1"/>
<field name="calendar_id" ref="resource.resource_calendar_std"/>
</record>
+1
View File
@@ -15,6 +15,7 @@ associated to every resource. It also manages the leaves of every resource.
""",
'depends': ['base'],
'data': [
'data/resource_data.xml',
'security/ir.model.access.csv',
'security/resource_security.xml',
'views/resource_views.xml',
+20
View File
@@ -0,0 +1,20 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<record id="resource_calendar_std" model="resource.calendar">
<field name="name">Standard 40 Hours/Week</field>
<field name="attendance_ids" eval="[
(5, 0),
(0, 0, {'name': 'Monday Morning', 'dayofweek': '0', 'hour_from': 8, 'hour_to': 12}),
(0, 0, {'name': 'Monday Evening', 'dayofweek': '0', 'hour_from': 13, 'hour_to': 17}),
(0, 0, {'name': 'Tuesday Morning', 'dayofweek': '1', 'hour_from': 8, 'hour_to': 12}),
(0, 0, {'name': 'Tuesday Evening', 'dayofweek': '1', 'hour_from': 13, 'hour_to': 17}),
(0, 0, {'name': 'Wednesday Morning', 'dayofweek': '2', 'hour_from': 8, 'hour_to': 12}),
(0, 0, {'name': 'Wednesday Evening', 'dayofweek': '2', 'hour_from': 13, 'hour_to': 17}),
(0, 0, {'name': 'Thursday Morning', 'dayofweek': '3', 'hour_from': 8, 'hour_to': 12}),
(0, 0, {'name': 'Thursday Evening', 'dayofweek': '3', 'hour_from': 13, 'hour_to': 17}),
(0, 0, {'name': 'Friday Morning', 'dayofweek': '4', 'hour_from': 8, 'hour_to': 12}),
(0, 0, {'name': 'Friday Evening', 'dayofweek': '4', 'hour_from': 13, 'hour_to': 17}),
]"/>
<field name="company_id" ref="base.main_company"/>
</record>
</odoo>
+39 -117
View File
@@ -1,123 +1,45 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<!-- Example employee -->
<record id="resource_analyst" model="resource.resource">
<field eval="100" name="time_efficiency"/>
<field name="user_id" ref="base.user_root"/>
<field name="name">Analyst</field>
<field eval="1" name="active"/>
<field name="calendar_id" ref="resource_calendar_std"/>
<field name="resource_type">user</field>
</record>
<!-- Example employee -->
<record id="resource_designer" model="resource.resource">
<field eval="100" name="time_efficiency"/>
<field name="user_id" ref="base.user_demo"/>
<field name="name">Designer</field>
<field eval="1" name="active"/>
<field name="calendar_id" ref="resource_calendar_std"/>
<field name="resource_type">user</field>
</record>
<record id="timesheet_group1" model="resource.calendar">
<field name="name">40 Hours/Week</field>
</record>
<record model="resource.calendar.attendance" id="calendar_attendance_mon1">
<field name="name">Monday morning</field>
<field name="dayofweek">0</field>
<field name="hour_from">08</field>
<field name="hour_to">12</field>
<field name="calendar_id" ref="timesheet_group1"/>
</record>
<record model="resource.calendar.attendance" id="calendar_attendance_mon2">
<field name="name">Monday evening</field>
<field name="dayofweek">0</field>
<field name="hour_from">13</field>
<field name="hour_to">17</field>
<field name="calendar_id" ref="timesheet_group1"/>
</record>
<record model="resource.calendar.attendance" id="calendar_attendance_tue1">
<field name="name">Tuesday morning</field>
<field name="dayofweek">1</field>
<field name="hour_from">08</field>
<field name="hour_to">12</field>
<field name="calendar_id" ref="timesheet_group1"/>
</record>
<record model="resource.calendar.attendance" id="calendar_attendance_tue2">
<field name="name">Tuesday evening</field>
<field name="dayofweek">1</field>
<field name="hour_from">13</field>
<field name="hour_to">17</field>
<field name="calendar_id" ref="timesheet_group1"/>
</record>
<record model="resource.calendar.attendance" id="calendar_attendance_wed1">
<field name="name">Wednesday morning</field>
<field name="dayofweek">2</field>
<field name="hour_from">08</field>
<field name="hour_to">12</field>
<field name="calendar_id" ref="timesheet_group1"/>
</record>
<record model="resource.calendar.attendance" id="calendar_attendance_wed2">
<field name="name">Wednesday evening</field>
<field name="dayofweek">2</field>
<field name="hour_from">13</field>
<field name="hour_to">17</field>
<field name="calendar_id" ref="timesheet_group1"/>
</record>
<record model="resource.calendar.attendance" id="calendar_attendance_thu1">
<field name="name">Thursday morning</field>
<field name="dayofweek">3</field>
<field name="hour_from">08</field>
<field name="hour_to">12</field>
<field name="calendar_id" ref="timesheet_group1"/>
</record>
<record model="resource.calendar.attendance" id="calendar_attendance_thu2">
<field name="name">Thursday evening</field>
<field name="hour_from">13</field>
<field name="hour_to">17</field>
<field name="dayofweek">3</field>
<field name="calendar_id" ref="timesheet_group1"/>
</record>
<record model="resource.calendar.attendance" id="calendar_attendance_fri1">
<field name="name">Friday morning</field>
<field name="dayofweek">4</field>
<field name="hour_from">08</field>
<field name="hour_to">12</field>
<field name="calendar_id" ref="timesheet_group1"/>
</record>
<record model="resource.calendar.attendance" id="calendar_attendance_fri2">
<field name="name">Friday evening</field>
<field name="dayofweek">4</field>
<field name="hour_from">13</field>
<field name="hour_to">17</field>
<field name="calendar_id" ref="timesheet_group1"/>
</record>
<record id="resource_analyst" model="resource.resource">
<field eval="100" name="time_efficiency"/>
<field name="user_id" ref="base.user_root"/>
<field name="name">Analyst</field>
<field eval="1" name="active"/>
<field name="calendar_id" ref="timesheet_group1"/>
<field name="resource_type">user</field>
</record>
<record id="resource_designer" model="resource.resource">
<field eval="100" name="time_efficiency"/>
<field name="user_id" ref="base.user_demo"/>
<field name="name">Designer</field>
<field eval="1" name="active"/>
<field name="calendar_id" ref="timesheet_group1"/>
<field name="resource_type">user</field>
</record>
<record id="resource_developer" model="resource.resource">
<field eval="100" name="time_efficiency"/>
<field name="user_id" ref="base.user_demo"/>
<field name="name">Developer</field>
<field eval="1" name="active"/>
<field name="calendar_id" ref="timesheet_group1"/>
<field name="resource_type">user</field>
</record>
<record id="resource_analyst_leaves_demoleave1" model="resource.calendar.leaves">
<field name="name">2 Hours On Leave</field>
<field name="resource_id" ref="resource_analyst"/>
<field name="date_from" eval="time.strftime('%Y-%m-%d 08:00:00')"/>
<field name="date_to" eval="time.strftime('%Y-%m-%d 11:00:00')"/>
<field name="calendar_id" ref="timesheet_group1"/>
</record>
<record id="resource_dummyleave" model="resource.calendar.leaves">
<field name="name">Dummy Resource Leave</field>
<field name="resource_id" ref="resource_analyst"/>
<field name="date_from" eval="time.strftime('%Y-%m-%d 08:00:00')"/>
<field name="date_to" eval="time.strftime('%Y-%m-%d 11:00:00')"/>
</record>
<record id="resource_developer" model="resource.resource">
<field eval="100" name="time_efficiency"/>
<field name="user_id" ref="base.user_demo"/>
<field name="name">Developer</field>
<field eval="1" name="active"/>
<field name="calendar_id" ref="resource_calendar_std"/>
<field name="resource_type">user</field>
</record>
<record id="resource_analyst_leaves_demoleave1" model="resource.calendar.leaves">
<field name="name">2 Hours On Leave</field>
<field name="resource_id" ref="resource_analyst"/>
<field name="date_from" eval="time.strftime('%Y-%m-%d 08:00:00')"/>
<field name="date_to" eval="time.strftime('%Y-%m-%d 11:00:00')"/>
<field name="calendar_id" ref="resource_calendar_std"/>
</record>
<record id="resource_dummyleave" model="resource.calendar.leaves">
<field name="name">Dummy Resource Leave</field>
<field name="resource_id" ref="resource_analyst"/>
<field name="date_from" eval="time.strftime('%Y-%m-%d 08:00:00')"/>
<field name="date_to" eval="time.strftime('%Y-%m-%d 11:00:00')"/>
</record>
</odoo>