[IMP] scrum: Replace date with create_date on backlog

bzr revid: mra@tinyerp.com-20100528120447-fugp96q28gbfkv60
This commit is contained in:
mra (Open ERP) 2010-05-28 17:34:47 +05:30
parent 850bb48ef4
commit 3648b428bd
2 changed files with 20 additions and 2 deletions

View File

@ -42,6 +42,7 @@ scrum_project()
class scrum_sprint(osv.osv):
_name = 'scrum.sprint'
_description = 'Scrum Sprint'
def _calc_progress(self, cr, uid, ids, name, args, context):
res = {}
for sprint in self.browse(cr, uid, ids):
@ -54,6 +55,7 @@ class scrum_sprint(osv.osv):
if tot>0:
res[sprint.id] = round(prog/tot*100)
return res
def _calc_effective(self, cr, uid, ids, name, args, context):
res = {}
for sprint in self.browse(cr, uid, ids):
@ -61,6 +63,7 @@ class scrum_sprint(osv.osv):
for bl in sprint.backlog_ids:
res[sprint.id] += bl.effective_hours
return res
def _calc_planned(self, cr, uid, ids, name, args, context):
res = {}
for sprint in self.browse(cr, uid, ids):
@ -68,6 +71,7 @@ class scrum_sprint(osv.osv):
for bl in sprint.backlog_ids:
res[sprint.id] += bl.planned_hours
return res
def _calc_expected(self, cr, uid, ids, name, args, context):
res = {}
for sprint in self.browse(cr, uid, ids):
@ -75,21 +79,27 @@ class scrum_sprint(osv.osv):
for bl in sprint.backlog_ids:
res[sprint.id] += bl.expected_hours
return res
def button_cancel(self, cr, uid, ids, context={}):
self.write(cr, uid, ids, {'state':'cancel'}, context=context)
return True
def button_draft(self, cr, uid, ids, context={}):
self.write(cr, uid, ids, {'state':'draft'}, context=context)
return True
def button_open(self, cr, uid, ids, context={}):
self.write(cr, uid, ids, {'state':'open'}, context=context)
return True
def button_close(self, cr, uid, ids, context={}):
self.write(cr, uid, ids, {'state':'done'}, context=context)
return True
def button_pending(self, cr, uid, ids, context={}):
self.write(cr, uid, ids, {'state':'pending'}, context=context)
return True
_columns = {
'name' : fields.char('Sprint Name', required=True, size=64),
'date_start': fields.date('Starting Date', required=True),
@ -165,6 +175,7 @@ class scrum_product_backlog(osv.osv):
if tot>0:
res[bl.id] = round(prog/tot*100)
return res
def _calc_effective(self, cr, uid, ids, name, args, context):
res = {}
for bl in self.browse(cr, uid, ids):
@ -172,6 +183,7 @@ class scrum_product_backlog(osv.osv):
for task in bl.tasks_id:
res[bl.id] += task.effective_hours
return res
def _calc_planned(self, cr, uid, ids, name, args, context):
res = {}
for bl in self.browse(cr, uid, ids):
@ -185,17 +197,21 @@ class scrum_product_backlog(osv.osv):
for backlog in self.browse(cr, uid, ids, context=context):
self.pool.get('project.task').write(cr, uid, [i.id for i in backlog.tasks_id], {'state': 'cancelled'})
return True
def button_draft(self, cr, uid, ids, context={}):
self.write(cr, uid, ids, {'state':'draft'}, context=context)
return True
def button_open(self, cr, uid, ids, context={}):
self.write(cr, uid, ids, {'state':'open'}, context=context)
return True
def button_close(self, cr, uid, ids, context={}):
self.write(cr, uid, ids, {'state':'done'}, context=context)
for backlog in self.browse(cr, uid, ids, context=context):
self.pool.get('project.task').write(cr, uid, [i.id for i in backlog.tasks_id], {'state': 'done'})
return True
def button_pending(self, cr, uid, ids, context={}):
self.write(cr, uid, ids, {'state':'pending'}, context=context)
return True
@ -214,7 +230,7 @@ class scrum_product_backlog(osv.osv):
'effective_hours': fields.function(_calc_effective, method=True, string='Effective hours', help="Computed using the sum of the task work done (Time spent on tasks)"),
'planned_hours': fields.function(_calc_planned, method=True, string='Planned Hours', help='Estimated time to do the task, usually set by the project manager when the task is in draft state.'),
'expected_hours': fields.float('Expected Hours', help='Estimated total time to do the Backlog'),
'date':fields.datetime("Created Date"),
'create_date': fields.datetime("Creation Date", readonly=True),
}
_defaults = {
'state': 'draft',
@ -227,6 +243,7 @@ scrum_product_backlog()
class scrum_task(osv.osv):
_name = 'project.task'
_inherit = 'project.task'
def _get_task(self, cr, uid, ids, context={}):
result = {}
for line in self.pool.get('scrum.product.backlog').browse(cr, uid, ids, context=context):
@ -241,6 +258,7 @@ class scrum_task(osv.osv):
'scrum.product.backlog': (_get_task, ['sprint_id'], 10)
}),
}
def onchange_backlog_id(self, cr, uid, backlog_id):
if not backlog_id:
return {}

View File

@ -63,7 +63,7 @@
<field domain="[('project_id','=',project_id), ('state','in', ['draft','open'])]" name="sprint_id" select="1"/>
<field name="user_id" select="1"/>
<field name="sequence" groups="base.group_extended"/>
<field name="date"/>
<field name="create_date"/>
<field name="progress" widget="progressbar"/>
</group>
<notebook colspan="4">