[IMP] Project Long Term: Scheduler Improvement

bzr revid: mra@tinyerp.com-20100412071832-6v7ukkw0zj1zpqmn
This commit is contained in:
mra (Open ERP) 2010-04-12 12:48:32 +05:30
parent 514f0cab5c
commit 684bdfe21a
2 changed files with 28 additions and 7 deletions

View File

@ -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')
}
def _phase_schedule(self, cr, uid, phase, start_date, calendar_id=False, context={}):
_defaults = {
'target_project': 'all'
}
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),

View File

@ -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>