[IMP] added yml files for Project_scrum module
bzr revid: tpa@tinyerp.com-20111118064830-mg28ugws5ylrdupm
This commit is contained in:
@@ -65,7 +65,12 @@ More information on the methodology:
|
||||
"board_project_scrum_view.xml",
|
||||
],
|
||||
'demo_xml': ['project_scrum_demo.xml'],
|
||||
'test': ['test/project_scrum_report.yml'],
|
||||
'test': ['test/project_scrum_report.yml',
|
||||
'test/draft2open2close_sprint.yml',
|
||||
'test/draft2open2close_backlog.yml',
|
||||
'test/cancel_backlog.yml',
|
||||
'test/project_scrum_test.yml'
|
||||
],
|
||||
'installable': True,
|
||||
'active': False,
|
||||
'certificate' : '00736750152003010781',
|
||||
|
||||
@@ -262,7 +262,7 @@ class project_scrum_task(osv.osv):
|
||||
'project.scrum.product.backlog': (_get_task, ['sprint_id'], 10)
|
||||
}),
|
||||
}
|
||||
|
||||
#dead code
|
||||
def onchange_backlog_id(self, cr, uid, backlog_id=False):
|
||||
if not backlog_id:
|
||||
return {}
|
||||
@@ -292,7 +292,7 @@ class project_scrum_meeting(osv.osv):
|
||||
_defaults = {
|
||||
'date' : lambda *a: time.strftime('%Y-%m-%d'),
|
||||
}
|
||||
|
||||
# dead code
|
||||
def button_send_to_master(self, cr, uid, ids, context=None):
|
||||
meeting_id = self.browse(cr, uid, ids, context=context)[0]
|
||||
if meeting_id and meeting_id.sprint_id.scrum_master_id.user_email:
|
||||
@@ -303,6 +303,7 @@ class project_scrum_meeting(osv.osv):
|
||||
raise osv.except_osv(_('Error !'), _('Please provide email address for scrum master defined on sprint.'))
|
||||
return True
|
||||
|
||||
#dead code
|
||||
def button_send_product_owner(self, cr, uid, ids, context=None):
|
||||
if context is None:
|
||||
context = {}
|
||||
@@ -316,6 +317,7 @@ class project_scrum_meeting(osv.osv):
|
||||
raise osv.except_osv(_('Error !'), _('Please provide email address for product owner defined on sprint.'))
|
||||
return True
|
||||
|
||||
#dead code
|
||||
def email_send(self, cr, uid, ids, email, context=None):
|
||||
mail_message_obj = self.pool.get('mail.message')
|
||||
meeting_id = self.browse(cr, uid, ids, context=context)[0]
|
||||
|
||||
@@ -10,7 +10,6 @@
|
||||
<field name="project_id" ref="project.project_project_9"/>
|
||||
<field name="product_owner_id" ref="base.user_root"/>
|
||||
<field model="res.users" name="scrum_master_id" search="[('login','=','admin')]"/>
|
||||
<field name="state">open</field>
|
||||
</record>
|
||||
|
||||
<record id="scrum_sprint_1" model="project.scrum.sprint">
|
||||
@@ -387,6 +386,9 @@
|
||||
<field name="state">open</field>
|
||||
<field name="product_backlog_id" ref="scrum_product_backlog_7"/>
|
||||
</record>
|
||||
|
||||
<!-- Resource: project_scrum.meeting -->
|
||||
|
||||
<record id="scrum_meeting_0" model="project.scrum.meeting">
|
||||
<field name="question_yesterday">
|
||||
Admin: Worked on the Automatic migration system
|
||||
|
||||
@@ -263,6 +263,8 @@
|
||||
<group colspan="4" col="6">
|
||||
<field name="date"/>
|
||||
<field name="user_id"/>
|
||||
<button name="%(mail.action_email_compose_message_wizard)d"
|
||||
string="Send Email" type="action" icon="terp-mail-message-new"/>
|
||||
</group>
|
||||
<notebook colspan="4">
|
||||
<page string="Scrum Meeting">
|
||||
@@ -273,8 +275,6 @@
|
||||
<separator colspan="4" string="Are there anything blocking you?"/>
|
||||
<field colspan="4" name="question_blocks" nolabel="1"/>
|
||||
<separator colspan="4" string=""/>
|
||||
<button name="button_send_to_master" type="object" string="Send to Scrum Master" icon="gtk-ok"/>
|
||||
<button name="button_send_product_owner" type="object" string="Send to Product Owner" icon="gtk-ok"/>
|
||||
</page>
|
||||
<page string="Optional Info">
|
||||
<separator colspan="4" string="Are your Sprint Backlog estimate accurate ?"/>
|
||||
|
||||
@@ -0,0 +1,52 @@
|
||||
-
|
||||
In Order to Test process of Backlog cancellation,
|
||||
-
|
||||
I cancel Backlog "Automatic migration system" from draft state.
|
||||
-
|
||||
!python {model: project.scrum.product.backlog}: |
|
||||
self.button_cancel(cr, uid, [ref("scrum_product_backlog_0")])
|
||||
-
|
||||
I check state of Backlog after canceled.
|
||||
-
|
||||
!assert {model: project.scrum.product.backlog, id: scrum_product_backlog_0, severity: error, string: backlog should be in cancel state}:
|
||||
- state == "cancel"
|
||||
-
|
||||
I cancel Backlog "Editable Trees" from open state.
|
||||
-
|
||||
!python {model: project.scrum.product.backlog}: |
|
||||
self.button_cancel(cr, uid, [ref("scrum_product_backlog_7")])
|
||||
-
|
||||
I check state of Backlog after canceled.
|
||||
-
|
||||
!assert {model: project.scrum.product.backlog, id: scrum_product_backlog_7, severity: error, string: backlog should be in cancel state}:
|
||||
- state == "cancel"
|
||||
-
|
||||
I put Backlog in pending state because of resource unavailability.
|
||||
-
|
||||
!python {model: project.scrum.product.backlog}: |
|
||||
self.button_pending(cr, uid, [ref("scrum_product_backlog_0")])
|
||||
-
|
||||
I check state of Backlog after put in pending.
|
||||
-
|
||||
!assert {model: project.scrum.product.backlog, id: scrum_product_backlog_0, severity: error, string: Backlog should be in pending state}:
|
||||
- state == "pending"
|
||||
-
|
||||
I cancel Backlog "Automatic migration system" from pending state.
|
||||
-
|
||||
!python {model: project.scrum.product.backlog}: |
|
||||
self.button_cancel(cr, uid, [ref("scrum_product_backlog_0")])
|
||||
-
|
||||
I check state of Backlog after canceled.
|
||||
-
|
||||
!assert {model: project.scrum.product.backlog, id: scrum_product_backlog_0, severity: error, string: backlog should be in cancel state}:
|
||||
- state == "cancel"
|
||||
-
|
||||
I Postpone Backlog "Reshape the complete menu" from open state.
|
||||
-
|
||||
!python {model: project.scrum.product.backlog}: |
|
||||
self.button_postpone(cr, uid, [ref("scrum_product_backlog_6")])
|
||||
-
|
||||
I check state of Backlog after Postpone.
|
||||
-
|
||||
!assert {model: project.scrum.product.backlog, id: scrum_product_backlog_6, severity: error, string: backlog should be in cancel state}:
|
||||
- state == "cancel"
|
||||
@@ -0,0 +1,41 @@
|
||||
-
|
||||
In Order to Test process of Backlog,
|
||||
-
|
||||
I put Backlog in pending state because of specification is not ready.
|
||||
-
|
||||
!python {model: project.scrum.product.backlog}: |
|
||||
self.button_pending(cr, uid, [ref("scrum_product_backlog_0")])
|
||||
-
|
||||
I check state of Backlog after put in pending.
|
||||
-
|
||||
!assert {model: project.scrum.product.backlog, id: scrum_product_backlog_0, severity: error, string: Backlog should be in pending state}:
|
||||
- state == "pending"
|
||||
-
|
||||
Now Specification is ready so I Open backlog "Automatic migration system".
|
||||
-
|
||||
!python {model: project.scrum.product.backlog}: |
|
||||
self.button_open(cr, uid, [ref("scrum_product_backlog_0")])
|
||||
-
|
||||
I check state of Backlog after opened.
|
||||
-
|
||||
!assert {model: project.scrum.product.backlog, id: scrum_product_backlog_0, severity: error, string: Backlog should be in open state}:
|
||||
- state == "open"
|
||||
-
|
||||
I close Backlog after review
|
||||
-
|
||||
!python {model: project.scrum.product.backlog}: |
|
||||
self.button_close(cr, uid, [ref("scrum_product_backlog_0")])
|
||||
-
|
||||
I check state of Backlog after closed.
|
||||
-
|
||||
!assert {model: project.scrum.product.backlog, id: scrum_product_backlog_0, severity: error, string: Backlog should be in close state}:
|
||||
- state == "done"
|
||||
-
|
||||
I merge two Backlogs in to one Backlog
|
||||
-
|
||||
First check If only one product backlog selected and If any of the backlog state is done Then not allow merge.then do merge
|
||||
-
|
||||
!python {model: project.scrum.backlog.merge}: |
|
||||
self.check_backlogs(cr, uid, [ref("scrum_product_backlog_1"),ref("scrum_product_backlog_2")], {"active_ids": [ref("scrum_product_backlog_1"),ref("scrum_product_backlog_2")],
|
||||
"active_model": 'project.scrum.product.backlog', "active_id": ref("scrum_product_backlog_1")
|
||||
})
|
||||
@@ -0,0 +1,57 @@
|
||||
-
|
||||
In Order to Test process of Sprint,
|
||||
-
|
||||
I Open sprint of "Week 31"
|
||||
-
|
||||
!python {model: project.scrum.sprint}: |
|
||||
self.button_open(cr, uid, [ref("scrum_sprint_0")])
|
||||
-
|
||||
I check state of sprint after opened.
|
||||
-
|
||||
!assert {model: project.scrum.sprint, id: scrum_sprint_0, severity: error, string: Sprint should be in Open state}:
|
||||
- state == "open"
|
||||
-
|
||||
I put sprint in pending state to allocate task to resources.
|
||||
-
|
||||
!python {model: project.scrum.sprint}: |
|
||||
self.button_pending(cr, uid, [ref("scrum_sprint_0")])
|
||||
-
|
||||
I check state of sprint after put in pending.
|
||||
-
|
||||
!assert {model: project.scrum.sprint, id: scrum_sprint_0, severity: error, string: Sprint should be in pending state}:
|
||||
- state == "pending"
|
||||
-
|
||||
I assign Backlog into this Sprint
|
||||
-
|
||||
!python {model: project.scrum.backlog.assign.sprint}: |
|
||||
new_id = self.create(cr, uid, {'sprint_id': ref("scrum_sprint_0")})
|
||||
self.assign_sprint(cr, uid, [new_id], {"active_ids": [ref("scrum_product_backlog_1")],
|
||||
"active_model": 'project.scrum.product.backlog', "active_id": ref("scrum_product_backlog_1")
|
||||
})
|
||||
-
|
||||
I create tasks from backlog for sprint
|
||||
-
|
||||
!python {model: project.scrum.backlog.create.task}: |
|
||||
new_id = self.create(cr, uid, {'user_id': ref("base.user_root")})
|
||||
self.do_create(cr, uid, [new_id], {
|
||||
"active_ids": [ref("scrum_product_backlog_0")], 'active_model': 'project.scrum.product.backlog', "active_id": ref("scrum_product_backlog_0")
|
||||
})
|
||||
-
|
||||
I send email to scrum master with scrum meeting details.
|
||||
-
|
||||
!python {model: mail.compose.message }: |
|
||||
ctx = context.copy()
|
||||
ctx.update({'active_model': 'project.scrum.meeting', 'active_id': ref("scrum_meeting_0"), 'active_ids': [ref("scrum_meeting_0")]})
|
||||
vals = self.default_get(cr, uid , [], context=ctx)
|
||||
new_id = self.create(cr, uid, {'email_to': 'tpa@tinyerp.com', 'subject': 'test'})
|
||||
self.send_mail(cr, uid, [new_id], context=ctx)
|
||||
-
|
||||
I close sprint after review
|
||||
-
|
||||
!python {model: project.scrum.sprint}: |
|
||||
self.button_close(cr, uid, [ref("scrum_sprint_0")])
|
||||
-
|
||||
I check state after closed sprint.
|
||||
-
|
||||
!assert {model: project.scrum.sprint, id: scrum_sprint_0, severity: error, string: Sprint shoud be in close state}:
|
||||
- state == "done"
|
||||
@@ -0,0 +1,8 @@
|
||||
-
|
||||
!record {model: project.scrum.sprint, id: project_scrum_sprint_test0, view: False}:
|
||||
date_start: '2011-11-16'
|
||||
date_stop: '2011-12-01'
|
||||
name: test
|
||||
product_owner_id: base.user_admin
|
||||
project_id: project.project_integrate_openerp
|
||||
scrum_master_id: project.res_users_project_manager
|
||||
Reference in New Issue
Block a user