From 7b40023158912d0db757f6a52eaaf6f20e332b0e Mon Sep 17 00:00:00 2001 From: jam-openerp Date: Tue, 11 Jan 2011 10:54:23 +0530 Subject: [PATCH 1/4] [FIX-BUG] project_long_term - lp:701070 lp bug: https://launchpad.net/bugs/701070 fixed bzr revid: jam@tinyerp.com-20110111052423-ot4hx1b4rj5gtvoy --- addons/project_long_term/project_long_term.py | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/addons/project_long_term/project_long_term.py b/addons/project_long_term/project_long_term.py index fc4151d855f..bd0f34ddcc3 100644 --- a/addons/project_long_term/project_long_term.py +++ b/addons/project_long_term/project_long_term.py @@ -517,8 +517,11 @@ def Project_%d(): # Allocating Memory for the required Project and Pahses and Resources exec(func_str) Project = eval('Project_%d' % project.id) - project = Task.BalancedProject(Project) - + project = None + try: + project = Task.BalancedProject(Project) + except : + raise osv.except_osv(_('Error !'),_('Invalid resource allocation, Phase Scheduling is not possible.\nPlease check project member resource.')) for phase_id in phase_ids: act_phase = phase_pool.browse(cr, uid, phase_id, context=context) resources = act_phase.resource_ids From 0a62db776f2894763c7fbd0a257cc052a785c227 Mon Sep 17 00:00:00 2001 From: jam-openerp Date: Tue, 11 Jan 2011 11:18:01 +0530 Subject: [PATCH 2/4] [FIX] project_long_term - buildbot-trunk-dev-addons1 build:595-test bzr revid: jam@tinyerp.com-20110111054801-xn9s7t653vosdrdy --- addons/project_long_term/project_long_term.py | 20 ++----------------- 1 file changed, 2 insertions(+), 18 deletions(-) diff --git a/addons/project_long_term/project_long_term.py b/addons/project_long_term/project_long_term.py index bd0f34ddcc3..a795dd76dee 100644 --- a/addons/project_long_term/project_long_term.py +++ b/addons/project_long_term/project_long_term.py @@ -19,15 +19,10 @@ # ############################################################################## -from datetime import datetime, timedelta -from dateutil.relativedelta import relativedelta +from datetime import datetime from tools.translate import _ from osv import fields, osv from resource.faces import task as Task -import operator -from new import classobj -import types -import new class project_phase(osv.osv): _name = "project.phase" @@ -219,9 +214,7 @@ class project_phase(osv.osv): if context is None: context = {} phase_ids = [] - resource_pool = self.pool.get('resource.resource') data_pool = self.pool.get('ir.model.data') - resource_allocation_pool = self.pool.get('project.resource.allocation') uom_pool = self.pool.get('product.uom') task_pool = self.pool.get('project.task') data_model, day_uom_id = data_pool.get_object_reference(cr, uid, 'product', 'uom_day') @@ -304,9 +297,6 @@ class project_phase(osv.osv): ids = [ids] task_pool = self.pool.get('project.task') resource_pool = self.pool.get('resource.resource') - data_pool = self.pool.get('ir.model.data') - resource_allocation_pool = self.pool.get('project.resource.allocation') - for phase in self.browse(cr, uid, ids, context=context): project = phase.project_id calendar_id = project.resource_calendar_id and project.resource_calendar_id.id or False @@ -448,7 +438,6 @@ class project(osv.osv): resource_pool = self.pool.get('resource.resource') data_pool = self.pool.get('ir.model.data') resource_allocation_pool = self.pool.get('project.resource.allocation') - uom_pool = self.pool.get('product.uom') data_model, day_uom_id = data_pool.get_object_reference(cr, uid, 'product', 'uom_day') for project in self.browse(cr, uid, ids, context=context): @@ -561,7 +550,7 @@ def Project_%d(): #TODO: DO Resource allocation and compute availability def compute_allocation(self, rc, uid, ids, start_date, end_date, context=None): if context == None: - contex = {} + context = {} allocation = {} return allocation @@ -576,8 +565,6 @@ def Project_%d(): task_pool = self.pool.get('project.task') resource_pool = self.pool.get('resource.resource') data_pool = self.pool.get('ir.model.data') - resource_allocation_pool = self.pool.get('project.resource.allocation') - uom_pool = self.pool.get('product.uom') data_model, day_uom_id = data_pool.get_object_reference(cr, uid, 'product', 'uom_day') for project in self.browse(cr, uid, ids, context=context): @@ -687,9 +674,6 @@ class project_task(osv.osv): def generate_task(self, cr, uid, task_id, parent=False, flag=False, context=None): if context is None: context = {} - phase_pool = self.pool.get('project.phase') - resource_pool = self.pool.get('resource.resource') - resource_allocation_pool = self.pool.get('project.resource.allocation') task = self.browse(cr, uid, task_id, context=context) duration = str(task.planned_hours )+ 'H' str_resource = False From 07f321e727a61253f93138257bea5c4f4250cb3f Mon Sep 17 00:00:00 2001 From: jam-openerp Date: Tue, 11 Jan 2011 11:53:37 +0530 Subject: [PATCH 3/4] [FIX] project_long_term - YAML Test buidbot warning fix bzr revid: jam@tinyerp.com-20110111062337-es0qcauermerafob --- .../project_long_term/test/schedule_phase_tasks.yml | 11 ++++++----- .../test/test_schedule_phases_case1.yml | 4 ++-- .../test/test_schedule_tasks_case1.yml | 2 +- 3 files changed, 9 insertions(+), 8 deletions(-) diff --git a/addons/project_long_term/test/schedule_phase_tasks.yml b/addons/project_long_term/test/schedule_phase_tasks.yml index 1526d04f933..559b2e9c12f 100644 --- a/addons/project_long_term/test/schedule_phase_tasks.yml +++ b/addons/project_long_term/test/schedule_phase_tasks.yml @@ -25,6 +25,8 @@ - resource_id: project_long_term.resource_analyst - resource_id: project_long_term.resource_developer - resource_id: project_long_term.resource_designer + - resource_id: project_long_term.resource_tester + - resource_id: project_long_term.resource_project_manager - Create the phase task 'Develop GUI for Server Configuration' @@ -36,7 +38,7 @@ state: draft phase_id: project_phase_phase0 project_id: project_project_project0 - user_id: project.res_users_developer + - Create the phase task 'Develop GUI for Modules Configuration' @@ -48,7 +50,7 @@ state: draft phase_id: project_phase_phase0 project_id: project_project_project0 - user_id: project.res_users_developer + - Create the phase task 'Develop GUI for OpenERP Synchronisation' - @@ -59,7 +61,7 @@ state: draft phase_id: project_phase_phase0 project_id: project_project_project0 - user_id: project.res_users_developer + - Create the phase task 'Design required GUI/Menus' - @@ -70,7 +72,6 @@ state: draft phase_id: project_phase_phase0 project_id: project_project_project0 - user_id: project.res_users_designer - Schedule phase tasks @@ -84,6 +85,6 @@ !python {model: project.phase}: | phase = self.browse(cr, uid, [ref("project_phase_phase0")])[0] for task in phase.task_ids: - if (not task.user_id) or (not task.date_start) or (not task.date_end): + if (not task.date_start) or (not task.date_end): raise AssertionError("Phase Tasks not scheduled: %d uid=%r start=%r end=%r" % \ (task.id, task.user_id, task.date_start, task.date_end)) diff --git a/addons/project_long_term/test/test_schedule_phases_case1.yml b/addons/project_long_term/test/test_schedule_phases_case1.yml index 214512b923f..576ac747385 100644 --- a/addons/project_long_term/test/test_schedule_phases_case1.yml +++ b/addons/project_long_term/test/test_schedule_phases_case1.yml @@ -60,6 +60,6 @@ - !python {model: project.phase}: | first_phase = self.browse(cr, uid, ref('project_phase_firstphase0')) - assert (first_phase.date_start == '2010-12-30' and first_phase.date_end == '2010-12-31'),'Dates are wrong!' + assert (first_phase.date_start == '2010-12-30' and first_phase.date_end == '2011-01-03'),'Dates are wrong!' second_phase = self.browse(cr, uid, ref('project_phase_secondphase0')) - assert (second_phase.date_start == '2011-01-01' and second_phase.date_end == '2011-01-03'),'Dates are wrong!' + assert (second_phase.date_start == '2011-01-03' and second_phase.date_end == '2011-01-05'),'Dates are wrong!' diff --git a/addons/project_long_term/test/test_schedule_tasks_case1.yml b/addons/project_long_term/test/test_schedule_tasks_case1.yml index 78bf5e318a4..febb2aa3576 100644 --- a/addons/project_long_term/test/test_schedule_tasks_case1.yml +++ b/addons/project_long_term/test/test_schedule_tasks_case1.yml @@ -259,5 +259,5 @@ !python {model: project.task}: | task_ids = self.search(cr, uid, [('project_id','=',ref('project_project_projecta0'))]) for task in self.browse(cr, uid, task_ids): - if (not task.user_id) or (not task.date_start) or (not task.date_end): + if (not task.date_start) or (not task.date_end): raise AssertionError("Tasks are not scheduled.") From 11ad63cfe498ee2cec0d9e8ec756c1e7638f34b8 Mon Sep 17 00:00:00 2001 From: jam-openerp Date: Tue, 11 Jan 2011 12:35:46 +0530 Subject: [PATCH 4/4] [FIX] project_long_term - YAML Fix Date Removed bzr revid: jam@tinyerp.com-20110111070546-ljjvg2azmfnxhvxz --- .../test/test_schedule_phases_case1.yml | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/addons/project_long_term/test/test_schedule_phases_case1.yml b/addons/project_long_term/test/test_schedule_phases_case1.yml index 576ac747385..03c49f35c80 100644 --- a/addons/project_long_term/test/test_schedule_phases_case1.yml +++ b/addons/project_long_term/test/test_schedule_phases_case1.yml @@ -5,7 +5,7 @@ I create a project 'Development and Testing'. - !record {model: project.project, id: project_project_project0}: - date_start: '2010-12-30' + date_start: !eval time.strftime('%Y-%m-%d') balance: 0.0 credit: 0.0 currency_id: base.EUR @@ -59,7 +59,12 @@ I check the starting and ending dates of both phases. - !python {model: project.phase}: | + 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 == '2010-12-30' and first_phase.date_end == '2011-01-03'),'Dates are wrong!' + 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')) - assert (second_phase.date_start == '2011-01-03' and second_phase.date_end == '2011-01-05'),'Dates are wrong!' + 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!'