From 5b202562aefd1db0d9131a4c4dcee9720e7ccd6d Mon Sep 17 00:00:00 2001 From: "Rvo (Open ERP)" Date: Wed, 10 Feb 2010 11:44:22 +0530 Subject: [PATCH] [IMP]:Improved phase scheduling with resource allocation bzr revid: rvo@tinyerp.co.in-20100210061422-cr69k568arzm7b5a --- addons/project_long_term/project.py | 9 +- .../wizard/compute_phases_date.py | 278 +++++++++++------- 2 files changed, 173 insertions(+), 114 deletions(-) diff --git a/addons/project_long_term/project.py b/addons/project_long_term/project.py index 3f16b33ea31..ffe3ac38842 100644 --- a/addons/project_long_term/project.py +++ b/addons/project_long_term/project.py @@ -40,12 +40,12 @@ class project_phase(osv.osv): if (obj_self in prev_ids) or (obj_self in next_ids): return False ids = [id for id in prev_ids if id in next_ids] - + #both prev_ids and next_ids must be unique if ids: return False #unrelated project - + prev_ids = [rec.id for rec in prev_ids] next_ids = [rec.id for rec in next_ids] @@ -59,7 +59,7 @@ class project_phase(osv.osv): if ids: return False prev_ids = prv_phase_ids - + #iter next_ids while next_ids: cr.execute('select distinct next_phase_id from project_phase_next_rel where phase_id in ('+','.join(map(str, next_ids))+')') @@ -100,7 +100,9 @@ project_phase() class project_resource_allocation(osv.osv): _name = 'project.resource.allocation' _description = 'Project Resource Allocation' + _rec_name = 'resource_id' _columns = { +# 'name': fields.char('Name',size = 64), 'resource_id': fields.many2one('resource.resource', 'Resource', required=True), 'phase_id': fields.many2one('project.phase', 'Project Phase', required=True), 'useability': fields.float('Useability', help="Useability of this ressource for this project phase in percentage (=50%)"), @@ -108,6 +110,7 @@ class project_resource_allocation(osv.osv): _defaults = { 'useability': lambda *a: 100, } + project_resource_allocation() class project(osv.osv): diff --git a/addons/project_long_term/wizard/compute_phases_date.py b/addons/project_long_term/wizard/compute_phases_date.py index 8b3c76c9ef3..ec51739628e 100644 --- a/addons/project_long_term/wizard/compute_phases_date.py +++ b/addons/project_long_term/wizard/compute_phases_date.py @@ -24,19 +24,29 @@ import pooler from tools.translate import _ import datetime from resource.faces import * +from new import classobj +import operator compute_form = """ -
+ - + """ compute_fields = { - 'project_id': {'string':'Project', 'type':'many2one', 'relation': 'project.project', 'required':'True'}, + 'phase_id': {'string':'Phase', 'type':'many2one', 'relation': 'project.phase', 'required':'True'}, } + +success_msg = """ +
+