[MERGE] Merge project_long_term improvement
bzr revid: sbh@tinyerp.com-20110111123921-7wefa2rtb553xt4z
This commit is contained in:
@@ -40,15 +40,15 @@ Features.
|
||||
"init_xml": [],
|
||||
"demo_xml": ["project_long_term_demo.xml"],
|
||||
"test": [
|
||||
'test/project_schedule_consecutive_day.yml',
|
||||
'test/project_schedule_without_wroking_hour.yml',
|
||||
'test/schedule_project_phases.yml',
|
||||
'test/phase_constraint.yml',
|
||||
'test/test_schedule_phases_case2.yml',
|
||||
'test/test_schedule_phases_case1.yml',
|
||||
'test/schedule_project_phases.yml',
|
||||
'test/schedule_project_tasks.yml',
|
||||
'test/test_schedule_phases_case2.yml',
|
||||
'test/project_schedule_consecutive_day.yml',
|
||||
'test/project_schedule_without_wroking_hour.yml',
|
||||
'test/schedule_phase_tasks.yml',
|
||||
'test/test_schedule_tasks_case1.yml'
|
||||
'test/phase_constraint.yml',
|
||||
'test/test_schedule_tasks_case1.yml',
|
||||
],
|
||||
"update_xml": [
|
||||
"security/ir.model.access.csv",
|
||||
|
||||
@@ -1,124 +1,124 @@
|
||||
-
|
||||
Create a project 'Develop yaml Project Module'.
|
||||
-
|
||||
!record {model: project.project, id: project_project_developyamlproject123}:
|
||||
!record {model: project.project, id: project_project_developyamlproject_2}:
|
||||
name: "Develop Yaml Project Module"
|
||||
date_start: !eval time.strftime('%Y-%m-%d')
|
||||
|
||||
-
|
||||
I have set Working Time from Monday to Friday from 9am to 17pm.
|
||||
-
|
||||
!record {model: resource.calendar, id: resource_calendar_hoursweekstest2}:
|
||||
!record {model: resource.calendar, id: resource_calendar_hoursweekstest_P2}:
|
||||
name: "from Monday to Friday, from 9am to 17pm"
|
||||
|
||||
-
|
||||
I have set Day1 Working Time for Monday to Friday from 9am to 17pm working hour
|
||||
-
|
||||
!record {model: resource.calendar.attendance, id: resource_calendar_atendanceday1}:
|
||||
!record {model: resource.calendar.attendance, id: resource_calendar_hoursweekstest_P2day1}:
|
||||
name: "Day1"
|
||||
hour_from : 09.00
|
||||
hour_to : 17.00
|
||||
dayofweek : "0"
|
||||
calendar_id : resource_calendar_hoursweekstest2
|
||||
calendar_id : resource_calendar_hoursweekstest_P2
|
||||
|
||||
-
|
||||
I have set Day2 Working Time for Monday to Friday from 9am to 17pm working hour
|
||||
-
|
||||
!record {model: resource.calendar.attendance, id: resource_calendar_atendanceday2}:
|
||||
!record {model: resource.calendar.attendance, id: rresource_calendar_hoursweekstest_P2day2}:
|
||||
name: "Day2"
|
||||
hour_from : 09.00
|
||||
hour_to : 17.00
|
||||
dayofweek : "1"
|
||||
calendar_id : resource_calendar_hoursweekstest2
|
||||
calendar_id : resource_calendar_hoursweekstest_P2
|
||||
|
||||
-
|
||||
I have set Day3 Working Time for Monday to Friday from 9am to 17pm working hour
|
||||
-
|
||||
!record {model: resource.calendar.attendance, id: resource_calendar_atendanceday3}:
|
||||
!record {model: resource.calendar.attendance, id: resource_calendar_hoursweekstest_P2day3}:
|
||||
name: "Day3"
|
||||
hour_from : 09.00
|
||||
hour_to : 17.00
|
||||
dayofweek : "2"
|
||||
calendar_id : resource_calendar_hoursweekstest2
|
||||
calendar_id : resource_calendar_hoursweekstest_P2
|
||||
|
||||
-
|
||||
I have set Day4 Working Time for Monday to Friday from 9am to 17pm working hour
|
||||
-
|
||||
!record {model: resource.calendar.attendance, id: resource_calendar_atendanceday4}:
|
||||
!record {model: resource.calendar.attendance, id: resource_calendar_hoursweekstest_P2day4}:
|
||||
name: "Day4"
|
||||
hour_from : 09.00
|
||||
hour_to : 17.00
|
||||
dayofweek : "3"
|
||||
calendar_id : resource_calendar_hoursweekstest2
|
||||
hour_from: 09.00
|
||||
hour_to: 17.00
|
||||
dayofweek: "3"
|
||||
calendar_id: resource_calendar_hoursweekstest_P2
|
||||
|
||||
-
|
||||
I have set Day5 Working Time for Monday to Friday from 9am to 17pm working hour
|
||||
-
|
||||
!record {model: resource.calendar.attendance, id: resource_calendar_atendanceday5}:
|
||||
-
|
||||
!record {model: resource.calendar.attendance, id: resource_calendar_hoursweekstest_P2day5}:
|
||||
name: "Day5"
|
||||
hour_from : 09.00
|
||||
hour_to : 17.00
|
||||
dayofweek : "4"
|
||||
calendar_id : resource_calendar_hoursweekstest2
|
||||
hour_from: 09.00
|
||||
hour_to: 17.00
|
||||
dayofweek: "4"
|
||||
calendar_id: resource_calendar_hoursweekstest_P2
|
||||
|
||||
-
|
||||
Now Set working period to Project 'Develop yaml Project Module'
|
||||
-
|
||||
!python {model: project.project}: |
|
||||
self.write(cr, uid, [ref("project_project_developyamlproject123")], {'resource_calendar_id': ref("resource_calendar_hoursweekstest2")})
|
||||
self.write(cr, uid, [ref("project_project_developyamlproject_2")], {'resource_calendar_id': ref("resource_calendar_hoursweekstest_P2")})
|
||||
|
||||
-
|
||||
Create 3 a project phase.
|
||||
First 'Analysis Flow for Yaml'Project Phase
|
||||
-
|
||||
!record {model: project.phase, id: project_phase_analysisflowforyaml0}:
|
||||
!record {model: project.phase, id: project_project_developyamlproject_2_Phase1}:
|
||||
date_start: !eval time.strftime('%Y-%m-%d')
|
||||
duration: 5.0
|
||||
name: "Analysis Flow for Yaml"
|
||||
product_uom: product.uom_day
|
||||
project_id: project_project_developyamlproject123
|
||||
project_id: project_project_developyamlproject_2
|
||||
state: draft
|
||||
|
||||
-
|
||||
Create project phase 'Develop yaml'
|
||||
-
|
||||
!record {model: project.phase, id: project_phase_establishingprojectfeasibility0}:
|
||||
!record {model: project.phase, id: project_project_developyamlproject_2_Phase2}:
|
||||
duration: 5.0
|
||||
name: Develop Yaml
|
||||
product_uom: product.uom_day
|
||||
project_id: project_project_developyamlproject123
|
||||
project_id: project_project_developyamlproject_2
|
||||
previous_phase_ids:
|
||||
- project_phase_analysisflowforyaml0
|
||||
- project_project_developyamlproject_2_Phase1
|
||||
|
||||
-
|
||||
Create project phase 'Test Yaml'
|
||||
-
|
||||
!record {model: project.phase, id: project_phase_preparationofengineeringdesigns0}:
|
||||
!record {model: project.phase, id: project_project_developyamlproject_2_Phase3}:
|
||||
duration: 5.0
|
||||
name: Testing Yaml
|
||||
product_uom: product.uom_day
|
||||
project_id: project_project_developyamlproject123
|
||||
project_id: project_project_developyamlproject_2
|
||||
previous_phase_ids:
|
||||
- project_phase_establishingprojectfeasibility0
|
||||
- project_project_developyamlproject_2_Phase2
|
||||
|
||||
-
|
||||
Compute Schedule of phases For One project
|
||||
-
|
||||
!record {model: project.compute.phases, id: project_compute_phases_0}:
|
||||
project_id: project_project_developyamlproject123
|
||||
project_id: project_project_developyamlproject_2
|
||||
target_project: one
|
||||
|
||||
-
|
||||
Schedule project phases using Compute Phase Scheduling
|
||||
-
|
||||
!python {model: project.project}: |
|
||||
self.schedule_phases(cr, uid, [ref("project_project_developyamlproject123")])
|
||||
self.schedule_phases(cr, uid, [ref("project_project_developyamlproject_2")])
|
||||
|
||||
-
|
||||
After scheduling, Check that phases scheduled, check that either of phase's start_date, end_date not null.
|
||||
-
|
||||
!python {model: project.project}: |
|
||||
proj=self.browse(cr, uid, [ref("project_project_developyamlproject123")])[0]
|
||||
proj=self.browse(cr, uid, [ref("project_project_developyamlproject_2")])[0]
|
||||
for phase in proj.phase_ids:
|
||||
if (not phase.responsible_id) or (not phase.date_start) or (not phase.date_end):
|
||||
raise AssertionError("Phases not scheduled")
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
-
|
||||
Create a project 'Develop yaml Implementation Module'.
|
||||
-
|
||||
!record {model: project.project, id: project_project_developyamlproject0}:
|
||||
!record {model: project.project, id: project_project_developyamlproject_2}:
|
||||
name: "Develop Yaml Project Module"
|
||||
date_start: !eval time.strftime('%Y-%m-%d')
|
||||
|
||||
@@ -9,67 +9,67 @@
|
||||
Create 4 Project phase.
|
||||
First Project Phase 'Analysis Flow for Yaml'
|
||||
-
|
||||
!record {model: project.phase, id: project_phase_analysisflowforyaml0}:
|
||||
!record {model: project.phase, id: project_project_developyamlproject_2_phase_1}:
|
||||
date_start: !eval time.strftime('%Y-%m-%d')
|
||||
duration: 6.0
|
||||
product_uom: product.uom_day
|
||||
name: "Analysis Flow for Yaml"
|
||||
project_id: project_project_developyamlproject0
|
||||
project_id: project_project_developyamlproject_2
|
||||
responsible_id: project.res_users_analyst
|
||||
state: draft
|
||||
|
||||
-
|
||||
Create project phase 'Develop yaml'
|
||||
-
|
||||
!record {model: project.phase, id: project_phase_establishingprojectfeasibility0}:
|
||||
!record {model: project.phase, id: project_project_developyamlproject_2_phase_2}:
|
||||
duration: 6.0
|
||||
name: "Develop yaml"
|
||||
product_uom: product.uom_day
|
||||
project_id: project_project_developyamlproject0
|
||||
project_id: project_project_developyamlproject_2
|
||||
previous_phase_ids:
|
||||
- project_phase_analysisflowforyaml0
|
||||
- project_project_developyamlproject_2_phase_1
|
||||
state: draft
|
||||
-
|
||||
Create project phase 'Test Yaml'
|
||||
-
|
||||
!record {model: project.phase, id: project_phase_preparationofengineeringdesigns0}:
|
||||
!record {model: project.phase, id: project_project_developyamlproject_2_phase_3}:
|
||||
duration: 6.0
|
||||
name: Testing Yaml
|
||||
product_uom: product.uom_day
|
||||
project_id: project_project_developyamlproject0
|
||||
project_id: project_project_developyamlproject_2
|
||||
previous_phase_ids:
|
||||
- project_phase_establishingprojectfeasibility0
|
||||
- project_project_developyamlproject_2_phase_2
|
||||
state: draft
|
||||
|
||||
-
|
||||
Create project phase 'Implement Yaml'
|
||||
-
|
||||
!record {model: project.phase, id: project_phase_implementingreadycase0}:
|
||||
!record {model: project.phase, id: project_project_developyamlproject_2_phase_4}:
|
||||
duration: 6.0
|
||||
name: Testing Yaml
|
||||
product_uom: product.uom_day
|
||||
project_id: project_project_developyamlproject0
|
||||
project_id: project_project_developyamlproject_2
|
||||
previous_phase_ids:
|
||||
- project_phase_preparationofengineeringdesigns0
|
||||
- project_project_developyamlproject_2_phase_3
|
||||
state: draft
|
||||
-
|
||||
Compute Schedule of phases For One project
|
||||
-
|
||||
!record {model: project.compute.phases, id: project_compute_phases_0}:
|
||||
project_id: project_project_developyamlproject0
|
||||
project_id: project_project_developyamlproject_2
|
||||
target_project: one
|
||||
|
||||
-
|
||||
Schedule project phases using Compute Phase Scheduling
|
||||
-
|
||||
!python {model: project.project}: |
|
||||
self.schedule_phases(cr, uid, [ref("project_project_developyamlproject0")])
|
||||
self.schedule_phases(cr, uid, [ref("project_project_developyamlproject_2")])
|
||||
|
||||
-
|
||||
After scheduling, Check that phases scheduled, check that either of phase's start_date, end_date not null.
|
||||
-
|
||||
!python {model: project.project}: |
|
||||
proj=self.browse(cr, uid, [ref("project_project_developyamlproject0")])[0]
|
||||
proj=self.browse(cr, uid, [ref("project_project_developyamlproject_2")])[0]
|
||||
for phase in proj.phase_ids:
|
||||
if (not phase.responsible_id) or (not phase.date_start) or (not phase.date_end):
|
||||
raise AssertionError("Phases not scheduled")
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
-
|
||||
Create project 'Develop an outlook-openerp synchronization plugin'
|
||||
-
|
||||
!record {model: project.project, id: project_project_project0}:
|
||||
!record {model: project.project, id: project_project_project4}:
|
||||
name: Develop an outlook-openerp synchronization plugin
|
||||
members:
|
||||
- project.res_users_project_manager
|
||||
@@ -19,7 +19,7 @@
|
||||
duration: 200.0
|
||||
name: Develop GUI in Outlook
|
||||
product_uom: product.uom_day
|
||||
project_id: project_project_project0
|
||||
project_id: project_project_project4
|
||||
state: draft
|
||||
resource_ids:
|
||||
- resource_id: project_long_term.resource_analyst
|
||||
@@ -37,7 +37,7 @@
|
||||
remaining_hours: 20.0
|
||||
state: draft
|
||||
phase_id: project_phase_phase0
|
||||
project_id: project_project_project0
|
||||
project_id: project_project_project4
|
||||
|
||||
|
||||
-
|
||||
@@ -49,7 +49,7 @@
|
||||
remaining_hours: 25.0
|
||||
state: draft
|
||||
phase_id: project_phase_phase0
|
||||
project_id: project_project_project0
|
||||
project_id: project_project_project4
|
||||
|
||||
-
|
||||
Create the phase task 'Develop GUI for OpenERP Synchronisation'
|
||||
@@ -60,7 +60,7 @@
|
||||
remaining_hours: 30.0
|
||||
state: draft
|
||||
phase_id: project_phase_phase0
|
||||
project_id: project_project_project0
|
||||
project_id: project_project_project4
|
||||
|
||||
-
|
||||
Create the phase task 'Design required GUI/Menus'
|
||||
@@ -71,7 +71,7 @@
|
||||
remaining_hours: 25.0
|
||||
state: draft
|
||||
phase_id: project_phase_phase0
|
||||
project_id: project_project_project0
|
||||
project_id: project_project_project4
|
||||
|
||||
-
|
||||
Schedule phase tasks
|
||||
|
||||
@@ -2,9 +2,10 @@
|
||||
In order to test scheduling of project phases, I create two different phases and
|
||||
test it with two different dates for scheduling.
|
||||
-
|
||||
I create a project 'Development and Testing'.
|
||||
I create a project Development and Testing.
|
||||
-
|
||||
!record {model: project.project, id: project_project_project0}:
|
||||
!record {model: project.project, id: project_project_project_case1}:
|
||||
name: "Development and Testing"
|
||||
date_start: !eval time.strftime('%Y-%m-%d')
|
||||
balance: 0.0
|
||||
credit: 0.0
|
||||
@@ -13,7 +14,7 @@
|
||||
effective_hours: 0.0
|
||||
members:
|
||||
- base.user_admin
|
||||
name: Development and Testing
|
||||
|
||||
planned_hours: 0.0
|
||||
progress_rate: 0.0
|
||||
quantity: 0.0
|
||||
@@ -27,29 +28,29 @@
|
||||
-
|
||||
I create first phase of the project.
|
||||
-
|
||||
!record {model: project.phase, id: project_phase_firstphase0}:
|
||||
!record {model: project.phase, id: project_phase_firstphase0_case1}:
|
||||
duration: 2.0
|
||||
name: First Phase
|
||||
product_uom: product.uom_day
|
||||
project_id: project_project_project0
|
||||
project_id: project_project_project_case1
|
||||
state: draft
|
||||
-
|
||||
I create second phase of the project.
|
||||
-
|
||||
!record {model: project.phase, id: project_phase_secondphase0}:
|
||||
!record {model: project.phase, id: project_phase_secondphase0_case2}:
|
||||
duration: 3.0
|
||||
name: Second Phase
|
||||
previous_phase_ids:
|
||||
- project_phase_firstphase0
|
||||
- project_phase_firstphase0_case1
|
||||
product_uom: product.uom_day
|
||||
project_id: project_project_project0
|
||||
project_id: project_project_project_case1
|
||||
state: draft
|
||||
-
|
||||
Now I create a record to compute the phase of project.
|
||||
-
|
||||
!record {model: project.compute.phases, id: project_compute_phases0}:
|
||||
target_project: 'one'
|
||||
project_id: project_project_project0
|
||||
project_id: project_project_project_case1
|
||||
-
|
||||
I schedule the phases.
|
||||
-
|
||||
@@ -62,9 +63,10 @@
|
||||
import datetime
|
||||
from dateutil.relativedelta import *
|
||||
start = (datetime.date.today()).strftime('%Y-%m-%d')
|
||||
end = (datetime.date.today() + relativedelta(days=3)).strftime('%Y-%m-%d')
|
||||
first_phase = self.browse(cr, uid, ref('project_phase_firstphase0'))
|
||||
assert (first_phase.date_start >= start and first_phase.date_end <= end),'Dates are wrong!'
|
||||
second_phase = self.browse(cr, uid, ref('project_phase_secondphase0'))
|
||||
end = (datetime.date.today() + relativedelta(days=10)).strftime('%Y-%m-%d')
|
||||
assert (second_phase.date_start >= first_phase.date_end and second_phase.date_end <= end),'Dates are wrong!'
|
||||
end = (datetime.date.today() + relativedelta(days=2)).strftime('%Y-%m-%d')
|
||||
first_phase = self.browse(cr, uid, ref('project_phase_firstphase0_case1'))
|
||||
assert (first_phase.date_start == start and first_phase.date_end == end),'Dates are wrong!'
|
||||
second_phase = self.browse(cr, uid, ref('project_phase_secondphase0_case2'))
|
||||
start = first_phase.date_end
|
||||
end = (datetime.date.today() + relativedelta(days=5)).strftime('%Y-%m-%d')
|
||||
assert (second_phase.date_start == start and second_phase.date_end == end),'Dates are wrong!'
|
||||
|
||||
Reference in New Issue
Block a user