diff options
| author | mra (Open ERP) <mra@tinyerp.com> | 2010-04-12 12:48:32 +0530 |
|---|---|---|
| committer | mra (Open ERP) <mra@tinyerp.com> | 2010-04-12 12:48:32 +0530 |
| commit | 684bdfe21a7ea2e1a904818872a7a3ba1fe84823 (patch) | |
| tree | 70492b0e3c15650b9c923f0c3606a331c8f1e08e /addons/project_long_term/wizard | |
| parent | 514f0cab5c1390cb6e5ff07bcb201f8d4f4e5ba4 (diff) | |
[IMP] Project Long Term: Scheduler Improvement
bzr revid: mra@tinyerp.com-20100412071832-6v7ukkw0zj1zpqmn
Diffstat (limited to 'addons/project_long_term/wizard')
| -rw-r--r-- | addons/project_long_term/wizard/project_compute_phases.py | 21 | ||||
| -rw-r--r-- | addons/project_long_term/wizard/project_compute_phases_view.xml | 14 |
2 files changed, 28 insertions, 7 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), diff --git a/addons/project_long_term/wizard/project_compute_phases_view.xml b/addons/project_long_term/wizard/project_compute_phases_view.xml index 9ba57d1625f..900112ba409 100644 --- a/addons/project_long_term/wizard/project_compute_phases_view.xml +++ b/addons/project_long_term/wizard/project_compute_phases_view.xml @@ -2,16 +2,20 @@ <openerp> <data> - <record id="view_project_compute_phases" model="ir.ui.view"> + <record id="view_project_compute_phases_select" model="ir.ui.view"> <field name="name">Compute Scheduling of Phases</field> <field name="model">project.compute.phases</field> <field name="type">form</field> <field name="arch" type="xml"> <form string="Compute Scheduling of Phases"> - <field name="project_id" /> - <group colspan="4" col="6"> + <field name="target_project" /> + <newline /> + <group colspan="4" col="6" attrs="{'invisible':[('target_project','=','all')]}"> + <field name="project_id"/> + </group> + <group colspan="4" col="6"> <!-- Improve me --> <button icon="gtk-cancel" special="cancel" string="_Cancel"/> - <button icon="gtk-ok" name="compute_date" string="Compute" type="object"/> + <button icon="gtk-ok" name="check_selection" string="_Compute" type="object"/> </group> </form> </field> @@ -23,7 +27,7 @@ <field name="res_model">project.compute.phases</field> <field name="view_type">form</field> <field name="view_mode">form</field> - <field name="view_id" ref="view_project_compute_phases"/> + <field name="view_id" ref="view_project_compute_phases_select"/> <field name="context">{'record_id' : active_id}</field> <field name="target">new</field> </record> |
