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