summaryrefslogtreecommitdiff
path: root/addons/project_long_term/wizard/project_compute_phases.py
diff options
context:
space:
mode:
authormra (Open ERP) <mra@tinyerp.com>2010-04-12 12:48:32 +0530
committermra (Open ERP) <mra@tinyerp.com>2010-04-12 12:48:32 +0530
commit684bdfe21a7ea2e1a904818872a7a3ba1fe84823 (patch)
tree70492b0e3c15650b9c923f0c3606a331c8f1e08e /addons/project_long_term/wizard/project_compute_phases.py
parent514f0cab5c1390cb6e5ff07bcb201f8d4f4e5ba4 (diff)
[IMP] Project Long Term: Scheduler Improvement
bzr revid: mra@tinyerp.com-20100412071832-6v7ukkw0zj1zpqmn
Diffstat (limited to 'addons/project_long_term/wizard/project_compute_phases.py')
-rw-r--r--addons/project_long_term/wizard/project_compute_phases.py21
1 files changed, 19 insertions, 2 deletions
diff --git a/addons/project_long_term/wizard/project_compute_phases.py b/addons/project_long_term/wizard/project_compute_phases.py
index a9b800d20ce..ddf8ba315c0 100644
--- a/addons/project_long_term/wizard/project_compute_phases.py
+++ b/addons/project_long_term/wizard/project_compute_phases.py
@@ -32,10 +32,22 @@ class project_compute_phases(osv.osv_memory):
_name = 'project.compute.phases'
_description = 'Project Compute Phases'
_columns = {
- 'project_id': fields.many2one('project.project', 'Project', help='If you do not specify project then it will take All projects with state=draft, open, pending')
+ 'target_project': fields.selection([('all', 'Compute All Projects'),
+ ('one', 'Compute a Single Project'),
+ ], 'Schedule', required = True),
+
+ 'project_id': fields.many2one('project.project', 'Project')
+ }
+
+ _defaults = {
+ 'target_project': 'all'
}
- def _phase_schedule(self, cr, uid, phase, start_date, calendar_id=False, context={}):
+ def check_selection(self, cr, uid, ids, context=None):
+ data_select = self.read(cr, uid, ids, ['target_project'])[0]
+ return self.compute_date(cr, uid, ids, context=context)
+
+ def _phase_schedule(self, cr, uid, phase, start_date, calendar_id=False, context=None):
"""Schedule phase with the start date till all the next phases are completed.
@@ -47,6 +59,9 @@ class project_compute_phases(osv.osv_memory):
resource_obj = self.pool.get('resource.resource')
uom_obj = self.pool.get('product.uom')
phase_resource_obj = False
+
+ if context is None:
+ context = {}
if phase:
leaves = []
time_efficiency = 1.0
@@ -120,6 +135,8 @@ class project_compute_phases(osv.osv_memory):
project_obj = self.pool.get('project.project')
phase_obj = self.pool.get('project.phase')
data = self.read(cr, uid, ids, [], context=context)[0]
+ if not data['project_id'] and data['target_project'] == 'one':
+ raise osv.except_osv(_('Error!'), _('Please Specify Project to be schedule'))
if data['project_id']: # If project mentioned find its phases
project_id = project_obj.browse(cr, uid, data['project_id'], context=context)
phase_ids = phase_obj.search(cr, uid, [('project_id', '=', project_id.id),