From 3a741fc37ae7911dc96eb64d6ed811f200e0a956 Mon Sep 17 00:00:00 2001 From: "Turkesh Patel (Open ERP)" Date: Mon, 7 May 2012 17:33:23 +0530 Subject: [PATCH 1/9] [IMP] project_scrum: inhetrit from mail.thread bzr revid: tpa@tinyerp.com-20120507120323-dq39n179r8swiol2 --- addons/project_scrum/project_scrum.py | 1 + addons/project_scrum/wizard/project_scrum_backlog_sprint.py | 1 + 2 files changed, 2 insertions(+) diff --git a/addons/project_scrum/project_scrum.py b/addons/project_scrum/project_scrum.py index 85eba636b90..f67c328e244 100644 --- a/addons/project_scrum/project_scrum.py +++ b/addons/project_scrum/project_scrum.py @@ -44,6 +44,7 @@ class project_scrum_sprint(osv.osv): _name = 'project.scrum.sprint' _description = 'Project Scrum Sprint' _order = 'date_start desc' + _inherit = ['mail.thread'] def _compute(self, cr, uid, ids, fields, arg, context=None): res = {}.fromkeys(ids, 0.0) progress = {} diff --git a/addons/project_scrum/wizard/project_scrum_backlog_sprint.py b/addons/project_scrum/wizard/project_scrum_backlog_sprint.py index 72b80a969fb..14c0d219355 100644 --- a/addons/project_scrum/wizard/project_scrum_backlog_sprint.py +++ b/addons/project_scrum/wizard/project_scrum_backlog_sprint.py @@ -24,6 +24,7 @@ from tools.translate import _ class backlog_sprint_assign(osv.osv_memory): _name = 'project.scrum.backlog.assign.sprint' _description = 'Assign sprint to backlogs' + _inherit = ['mail.thread'] _columns = { 'sprint_id': fields.many2one('project.scrum.sprint', 'Sprint', required=True, help="Select Sprint to assign backlog."), 'state_open': fields.boolean('Open Backlog', help="Change the state of product backlogs to open if its in draft state"), From b05b6720ddffc044a1806c0b0a57e6fce6e72e0a Mon Sep 17 00:00:00 2001 From: "Turkesh Patel (Open ERP)" Date: Mon, 7 May 2012 17:37:07 +0530 Subject: [PATCH 2/9] [IMP] account: inhetrit from mail.thread bzr revid: tpa@tinyerp.com-20120507120707-dgwdaum3wjzb8mi8 --- addons/account/account_bank_statement.py | 1 + 1 file changed, 1 insertion(+) diff --git a/addons/account/account_bank_statement.py b/addons/account/account_bank_statement.py index 5601179e0fc..a320f6de41d 100644 --- a/addons/account/account_bank_statement.py +++ b/addons/account/account_bank_statement.py @@ -127,6 +127,7 @@ class account_bank_statement(osv.osv): _order = "date desc, id desc" _name = "account.bank.statement" _description = "Bank Statement" + _inherit = ['mail.thread'] _columns = { 'name': fields.char('Name', size=64, required=True, states={'draft': [('readonly', False)]}, readonly=True, help='if you give the Name other then /, its created Accounting Entries Move will be with same name as statement name. This allows the statement entries to have the same references than the statement itself'), # readonly for account_cash_statement 'date': fields.date('Date', required=True, states={'confirm': [('readonly', True)]}, select=True), From ad486dd4ba0ea26f8ca58c0fcd8dc4297597bc23 Mon Sep 17 00:00:00 2001 From: "Turkesh Patel (Open ERP)" Date: Tue, 8 May 2012 11:43:58 +0530 Subject: [PATCH 3/9] [IMP] project_scrum: add openchatter functionality. bzr revid: tpa@tinyerp.com-20120508061358-ileak0qc2h8vuxz4 --- addons/project_scrum/project_scrum.py | 44 ++++++++++++++++++--- addons/project_scrum/project_scrum_view.xml | 7 +++- 2 files changed, 44 insertions(+), 7 deletions(-) diff --git a/addons/project_scrum/project_scrum.py b/addons/project_scrum/project_scrum.py index f67c328e244..d34669df255 100644 --- a/addons/project_scrum/project_scrum.py +++ b/addons/project_scrum/project_scrum.py @@ -72,28 +72,27 @@ class project_scrum_sprint(osv.osv): def button_cancel(self, cr, uid, ids, context=None): self.write(cr, uid, ids, {'state':'cancel'}, context=context) + self.cancel_send_note(cr, uid, ids, context=None) return True def button_draft(self, cr, uid, ids, context=None): self.write(cr, uid, ids, {'state':'draft'}, context=context) + self.draft_send_note(cr, uid, ids, context=None) return True def button_open(self, cr, uid, ids, context=None): self.write(cr, uid, ids, {'state':'open'}, context=context) - for (id, name) in self.name_get(cr, uid, ids): - message = _("The sprint '%s' has been opened.") % (name,) - self.log(cr, uid, id, message) + self.open_send_note(cr, uid, ids, context=None) return True def button_close(self, cr, uid, ids, context=None): self.write(cr, uid, ids, {'state':'done'}, context=context) - for (id, name) in self.name_get(cr, uid, ids): - message = _("The sprint '%s' has been closed.") % (name,) - self.log(cr, uid, id, message) + self.close_send_note(cr, uid, ids, context=None) return True def button_pending(self, cr, uid, ids, context=None): self.write(cr, uid, ids, {'state':'pending'}, context=context) + self.pending_send_note(cr, uid, ids, context=None) return True _columns = { @@ -139,6 +138,39 @@ class project_scrum_sprint(osv.osv): v['date_stop'] = (datetime.now() + relativedelta(days=int(proj.sprint_size or 14))).strftime('%Y-%m-%d') return {'value':v} + # ---------------------------------------- + # OpenChatter methods and notifications + # ---------------------------------------- + + def create(self, cr, uid, vals, context=None): + obj_id = super(project_scrum_sprint, self).create(cr, uid, vals, context) + self.create_send_note(cr, uid, [obj_id], context=context) + return obj_id + + def draft_send_note(self, cr, uid, ids, context=None): + for obj in self.browse(cr, uid, ids, context=context): + self.message_append_note(cr, uid, [obj.id], body=_("Sprint has been set to draft."), context=context) + + def create_send_note(self, cr, uid, ids, context=None): + for obj in self.browse(cr, uid, ids, context=context): + self.message_append_note(cr, uid, [obj.id], body=_("Sprint has been created."), context=context) + + def open_send_note(self, cr, uid, ids, context=None): + for obj in self.browse(cr, uid, ids, context=context): + self.message_append_note(cr, uid, [obj.id], body=_("Sprint has been opened."), context=context) + + def pending_send_note(self, cr, uid, ids, context=None): + for obj in self.browse(cr, uid, ids, context=context): + self.message_append_note(cr, uid, [obj.id], body=_("Sprint has been set to pending."), context=context) + + def cancel_send_note(self, cr, uid, ids, context=None): + for obj in self.browse(cr, uid, ids, context=context): + self.message_append_note(cr, uid, [obj.id], body=_("Sprint has been cancelled."), context=context) + + def close_send_note(self, cr, uid, ids, context=None): + for obj in self.browse(cr, uid, ids, context=context): + self.message_append_note(cr, uid, [obj.id], body=_("Sprint has been closed."), context=context) + project_scrum_sprint() class project_scrum_product_backlog(osv.osv): diff --git a/addons/project_scrum/project_scrum_view.xml b/addons/project_scrum/project_scrum_view.xml index 0f33ded8523..7805c9021a1 100644 --- a/addons/project_scrum/project_scrum_view.xml +++ b/addons/project_scrum/project_scrum_view.xml @@ -232,7 +232,8 @@ project.scrum.sprint form -
+ + @@ -307,6 +308,10 @@