Task-ID 847 :sends an email to the scrum master and/or the product owner with the detail of the scrum daily meeting and add the missing demo data

bzr revid: sbh@tinyerp.com-20100602105832-u3stwm4astvzh23o
This commit is contained in:
sbh (Open ERP) 2010-06-02 16:28:32 +05:30
parent 64447b1c77
commit 7538b0a280
3 changed files with 113 additions and 2 deletions

View File

@ -24,6 +24,8 @@ import netsvc
from osv import fields, osv, orm
from mx import DateTime
import re
import tools
from tools.translate import _
class scrum_project(osv.osv):
_inherit = 'project.project'
@ -287,5 +289,43 @@ class scrum_meeting(osv.osv):
_defaults = {
'date' : time.strftime('%Y-%m-%d'),
}
def button_send_to_master(self, cr, uid, ids, context={}):
meeting_id=self.browse(cr,uid,ids)[0]
user = self.pool.get('res.users').browse(cr, uid, uid, context=context)
email=meeting_id and meeting_id.sprint_id.scrum_master_id.user_email
body = ""
if email:
self.email_send(cr,uid,ids,email)
else:
raise osv.except_osv(_('Warining !'), _('%s User no Email Address!' % meeting_id.sprint_id.scrum_master_id.name))
return True
def button_send_product_owner(self, cr, uid, ids, context={}):
meeting_id=self.browse(cr,uid,ids)[0]
email=meeting_id.sprint_id.product_owner_id.user_email
if email:
self.email_send(cr,uid,ids,email)
else:
raise osv.except_osv(_('Warining !'), _('%s User no Email Address!' % meeting_id.sprint_id.scrum_master_id.name))
return True
def email_send(self, cr, uid, ids,email, context={}):
email_from=tools.config.get('email_from', False)
meeting_id=self.browse(cr,uid,ids)[0]
user = self.pool.get('res.users').browse(cr, uid, uid, context=context)
user_email= email_from or user.address_id.email or email_from
body=""
body+="Hello " + meeting_id.sprint_id.scrum_master_id.name+",\n" +" \n Daily Meeting Details of date %s for the Sprint %s " % (meeting_id.date, meeting_id.sprint_id.name)
body += '\n\nDate :%s' % (meeting_id.date) + '\n\nTasks since yesterday \n\n:%s' % (meeting_id.question_yesterday) + '\n\n Task for Today :\n\n%s' % (meeting_id.question_today )+ '\n\n Blocks encountered \n :%s' % (meeting_id.question_blocks or 'No Blocks')
body+="'\n\nThanks\n"+ user.name
sub_name=meeting_id.name or 'Scrum Meeting of %s '%meeting_id.date
tools.email_send(user_email , [email],sub_name, body, reply_to=None,openobject_id = str(meeting_id.id))
return True
scrum_meeting()

View File

@ -32,6 +32,7 @@
<field name="expected_hours">6.0</field>
<field name="note">This new system will enable you to migrate automatically from an old version of Open ERP to a new one. This system will migrate not only the Open ERP system but also the customers particularities. This happens without any kind of script or programming. It has been possible to carry out such a system thanks to the descriptive approach of Open ERP components. </field>
<field name="sprint_id" ref="scrum_sprint_0"/>
<field name="state">done</field>
<field name="project_id" ref="scrum_project_1"/>
</record>
<record id="scrum_product_backlog_1" model="scrum.product.backlog">
@ -40,6 +41,7 @@
<field name="expected_hours">111.0</field>
<field name="note">The accounting module of Open ERP (financial accounting and management accounting) is being reshaped. New functionnalities will be added: intangible assets, a new way of presenting ledgers and bookings, new stock valuation calculation, and lots of predefined reports. </field>
<field name="sprint_id" ref="scrum_sprint_0"/>
<field name="state">open</field>
<field name="project_id" ref="scrum_project_1"/>
</record>
<record id="scrum_product_backlog_2" model="scrum.product.backlog">
@ -48,18 +50,21 @@
<field name="expected_hours">4.0</field>
<field name="note">We have to develop a plug-in system which will enable to install/remove modules. The basic version of Open ERP will include only the required minimum, and you will select the modules thanks to the plug-in manager. This allows you to limit your system to your real needs: quality management, localisations, project and service management, marketing campaigns, and so on... </field>
<field name="sprint_id" ref="scrum_sprint_0"/>
<field name="state">open</field>
<field name="project_id" ref="scrum_project_1"/>
</record>
<record id="scrum_product_backlog_3" model="scrum.product.backlog">
<field name="name">Review all terms</field>
<field name="expected_hours">8.0</field>
<field name="sprint_id" ref="scrum_sprint_0"/>
<field name="state">done</field>
<field name="project_id" ref="scrum_project_1"/>
</record>
<record id="scrum_product_backlog_4" model="scrum.product.backlog">
<field name="name">Bugfixes</field>
<field name="expected_hours">6.0</field>
<field name="sprint_id" ref="scrum_sprint_0"/>
<field name="state">open</field>
<field name="project_id" ref="scrum_project_1"/>
</record>
<record id="scrum_product_backlog_5" model="scrum.product.backlog">
@ -74,6 +79,7 @@
<field name="expected_hours">4.0</field>
<field name="note">Restrucutre the Open ERP menu to be more like others ERP.</field>
<field name="sprint_id" ref="scrum_sprint_0"/>
<field name="state">open</field>
<field name="project_id" ref="scrum_project_1"/>
</record>
<record id="scrum_product_backlog_7" model="scrum.product.backlog">
@ -91,6 +97,8 @@
<field model="res.users" name="user_id" search="[('login','=','demo')]"/>
<field name="project_id" ref="scrum_project_1"/>
<field name="name">Review all English Terms</field>
<field name="state">done</field>
<field eval="time.strftime('%Y-%m-%d 12:12')" name="date_close"/>
<field name="product_backlog_id" ref="scrum_product_backlog_3"/>
</record>
<record id="scrum_task_4" model="project.task">
@ -98,6 +106,8 @@
<field model="res.users" name="user_id" search="[('login','=','demo')]"/>
<field name="project_id" ref="scrum_project_1"/>
<field name="name">Review all french terms</field>
<field name="state">done</field>
<field eval="time.strftime('%Y-%m-%d 12:12')" name="date_close"/>
<field name="product_backlog_id" ref="scrum_product_backlog_3"/>
</record>
<record id="scrum_task_5" model="project.task">
@ -105,6 +115,8 @@
<field model="res.users" name="user_id" search="[('login','=','demo')]"/>
<field name="project_id" ref="scrum_project_1"/>
<field name="name">Analytic Accounting features</field>
<field name="state">done</field>
<field eval="time.strftime('%Y-%m-%d 12:12')" name="date_close"/>
<field name="product_backlog_id" ref="scrum_product_backlog_1"/>
</record>
<record id="scrum_task_6" model="project.task">
@ -112,6 +124,7 @@
<field model="res.users" name="user_id" search="[('login','=','demo')]"/>
<field name="project_id" ref="scrum_project_1"/>
<field name="name">Test and improve automatic migration system</field>
<field name="state">open</field>
<field name="product_backlog_id" ref="scrum_product_backlog_0"/>
</record>
<record id="scrum_task_7" model="project.task">
@ -119,6 +132,7 @@
<field model="res.users" name="user_id" search="[('login','=','demo')]"/>
<field name="project_id" ref="scrum_project_1"/>
<field name="name">General accounting features</field>
<field name="state">open</field>
<field name="product_backlog_id" ref="scrum_product_backlog_1"/>
</record>
<record id="scrum_task_8" model="project.task">
@ -133,7 +147,9 @@
<field model="res.users" name="user_id" search="[('login','=','demo')]"/>
<field name="project_id" ref="scrum_project_1"/>
<field name="description">Cash book, general ledger, accounts list, aged trial balance</field>
<field name="name">Accounting Report General</field>
<field name="name">Accounting Report General</field>
<field name="state">open</field>
<field eval="[(6,0,[ref('scrum.scrum_task_8')])]" name="child_ids"/>
<field name="product_backlog_id" ref="scrum_product_backlog_1"/>
</record>
<record id="scrum_task_10" model="project.task">
@ -148,6 +164,7 @@
<field model="res.users" name="user_id" search="[('login','=','demo')]"/>
<field name="project_id" ref="scrum_project_1"/>
<field name="name">Accounting Report Analytic</field>
<field name="state">open</field>
<field name="product_backlog_id" ref="scrum_product_backlog_1"/>
</record>
<record id="scrum_task_12" model="project.task">
@ -155,6 +172,8 @@
<field model="res.users" name="user_id" search="[('login','=','demo')]"/>
<field name="project_id" ref="scrum_project_1"/>
<field name="name">Bugfix - memory leak</field>
<field name="state">done</field>
<field eval="time.strftime('%Y-%m-%d 12:12')" name="date_close"/>
<field name="product_backlog_id" ref="scrum_product_backlog_4"/>
</record>
<record id="scrum_task_13" model="project.task">
@ -162,6 +181,8 @@
<field model="res.users" name="user_id" search="[('login','=','demo')]"/>
<field name="project_id" ref="scrum_project_1"/>
<field name="name">Bugfix - Translations</field>
<field name="state">open</field>
<field eval="[(6,0,[ref('scrum.scrum_task_12')])]" name="child_ids"/>
<field name="product_backlog_id" ref="scrum_product_backlog_4"/>
</record>
<record id="scrum_task_14" model="project.task">
@ -169,6 +190,7 @@
<field model="res.users" name="user_id" search="[('login','=','demo')]"/>
<field name="project_id" ref="scrum_project_1"/>
<field name="name">Finish the automated plugin system</field>
<field name="state">pending</field>
<field name="product_backlog_id" ref="scrum_product_backlog_2"/>
</record>
<record id="scrum_task_15" model="project.task">
@ -183,6 +205,7 @@
<field model="res.users" name="user_id" search="[('login','=','demo')]"/>
<field name="project_id" ref="scrum_project_1"/>
<field name="name">Test 3.2.0 before releasing</field>
<field name="state">open</field>
<field name="product_backlog_id" ref="scrum_product_backlog_5"/>
</record>
<record id="scrum_task_17" model="project.task">
@ -191,8 +214,53 @@
<field name="project_id" ref="scrum_project_1"/>
<field name="description">default values, onchange, required, add on top or bottom and shortcuts (Ctrl S, Ctrl X, ...)</field>
<field name="name">Editable trees</field>
<field name="state">open</field>
<field name="product_backlog_id" ref="scrum_product_backlog_7"/>
</record>
<record id="scrum_meeting_0" model="scrum.meeting">
<field name="question_yesterday">
@MRA: review work of team member check backlogs account reconcile process
@PSI: Account Modules YAML case => running
</field>
<field name="question_today">
@MRA: review and check work of team
@PSI: Account Modules YAML case == continue</field>
<field name="sprint_id" ref="scrum.scrum_sprint_0"/>
<field name="date">2010-06-02</field>
</record>
<record id="project_task_work_scrum_task1" model="project.task.work">
<field name="user_id" ref="base.user_root"/>
<field name="name">Learn how to migration</field>
<field name="task_id" ref="scrum_task_6"/>
<field name="company_id" ref="base.main_company"/>
<field eval="1.0" name="hours"/>
<field name="date">2010-06-02 14:09:49</field>
</record>
<record id="project_task_work_scrum_task2" model="project.task.work">
<field name="user_id" ref="base.user_root"/>
<field name="name">Create a script for migration and testing</field>
<field name="task_id" ref="scrum_task_6"/>
<field name="company_id" ref="base.main_company"/>
<field eval="5.0" name="hours"/>
<field name="date">2010-06-02 14:13:13</field>
</record>
<record id="project_task_work_scrum_task2" model="project.task.work">
<field name="user_id" ref="base.user_root"/>
<field name="name">Create a script for migration and testing</field>
<field name="task_id" ref="scrum_task_6"/>
<field name="company_id" ref="base.main_company"/>
<field eval="5.0" name="hours"/>
<field name="date">2010-06-02 14:13:13</field>
</record>
<record id="project_task_work_scrum_task1" model="project.task.work">
<field name="user_id" ref="base.user_root"/>
<field name="name">Add on top or bottom and shortcuts</field>
<field name="task_id" ref="scrum_task_17"/>
<field name="company_id" ref="base.main_company"/>
<field eval="10.0" name="hours"/>
<field name="date">2010-06-02 14:13:13</field>
</record>
</data>
</openerp>

View File

@ -328,6 +328,9 @@
<field colspan="4" name="question_today" nolabel="1"/>
<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 ?"/>