[MERGE]:project
bzr revid: apa@tinyerp.com-20121122085833-7pb6s04q8jexklzt
This commit is contained in:
@@ -12,11 +12,12 @@
|
||||
<span class="oe_unfollow">Unfollow</span>
|
||||
<span class="oe_following">Following</span>
|
||||
</button>
|
||||
<t t-if="widget.comment">
|
||||
<h5 class="oe_comment"><t t-raw="widget.comment"/></h5>
|
||||
</t>
|
||||
<div class="oe_subtype_list"></div>
|
||||
</div>
|
||||
<t t-if="widget.comment">
|
||||
<h5 class="oe_comment"><t t-raw="widget.comment"/></h5>
|
||||
</t>
|
||||
<hr size="2"></hr>
|
||||
<div class='oe_follower_title_box'>
|
||||
<h4 class='oe_follower_title'>Followers</h4>
|
||||
<a href='#' class="oe_invite">Invite others</a>
|
||||
|
||||
+14
-10
@@ -311,7 +311,6 @@ class project(osv.osv):
|
||||
task_ids = task_obj.search(cr, uid, [('project_id', 'in', ids), ('state', '!=', 'done')])
|
||||
task_obj.case_cancel(cr, uid, task_ids, context=context)
|
||||
self.write(cr, uid, ids, {'state':'cancelled'}, context=context)
|
||||
self.set_cancel_send_note(cr, uid, ids, context=context)
|
||||
return True
|
||||
|
||||
def set_pending(self, cr, uid, ids, context=None):
|
||||
@@ -556,9 +555,6 @@ def Project():
|
||||
def set_pending_send_note(self, cr, uid, ids, context=None):
|
||||
return self.message_post(cr, uid, ids, body=_("Project is now <b>pending</b>."), context=context)
|
||||
|
||||
def set_cancel_send_note(self, cr, uid, ids, context=None):
|
||||
return self.message_post(cr, uid, ids, body=_("Project has been <b>canceled</b>."), context=context)
|
||||
|
||||
def set_close_send_note(self, cr, uid, ids, context=None):
|
||||
return self.message_post(cr, uid, ids, body=_("Project has been <b>closed</b>."), context=context)
|
||||
|
||||
@@ -1012,7 +1008,6 @@ class task(base_stage, osv.osv):
|
||||
self._check_child_task(cr, uid, ids, context=context)
|
||||
for task in tasks:
|
||||
self.case_set(cr, uid, [task.id], 'cancelled', {'remaining_hours': 0.0}, context=context)
|
||||
self.case_cancel_send_note(cr, uid, [task.id], context=context)
|
||||
return True
|
||||
|
||||
def do_open(self, cr, uid, ids, context=None):
|
||||
@@ -1105,11 +1100,13 @@ class task(base_stage, osv.osv):
|
||||
|
||||
def set_kanban_state_blocked(self, cr, uid, ids, context=None):
|
||||
self.write(cr, uid, ids, {'kanban_state': 'blocked'}, context=context)
|
||||
return False
|
||||
self.case_block_send_note(cr, uid, ids, context=context)
|
||||
return True
|
||||
|
||||
def set_kanban_state_normal(self, cr, uid, ids, context=None):
|
||||
self.write(cr, uid, ids, {'kanban_state': 'normal'}, context=context)
|
||||
return False
|
||||
self.case_open_send_note(cr, uid, ids, context=context)
|
||||
return True
|
||||
|
||||
def set_kanban_state_done(self, cr, uid, ids, context=None):
|
||||
self.write(cr, uid, ids, {'kanban_state': 'done'}, context=context)
|
||||
@@ -1178,7 +1175,7 @@ class task(base_stage, osv.osv):
|
||||
#raise osv.except_osv(_('Warning!'), _('Stage is not defined in the project.'))
|
||||
write_vals = vals_reset_kstate if t.stage_id != new_stage else vals
|
||||
super(task, self).write(cr, uid, [t.id], write_vals, context=context)
|
||||
self.stage_set_send_note(cr, uid, [t.id], new_stage, context=context)
|
||||
self.stage_set_send_note(cr, uid, [t.id], new_stage, context=context)
|
||||
result = True
|
||||
else:
|
||||
result = super(task, self).write(cr, uid, ids, vals, context=context)
|
||||
@@ -1288,15 +1285,22 @@ class task(base_stage, osv.osv):
|
||||
res = super(task, self).message_get_monitored_follower_fields(cr, uid, ids, context=context)
|
||||
return res + ['user_id', 'manager_id']
|
||||
|
||||
def create_send_note(self, cr, uid, ids, context=None):
|
||||
return self.message_post(cr, uid, ids, body=_("Task has been <b>created</b>."), subtype="project.mt_task_new", context=context)
|
||||
def stage_set_send_note(self, cr, uid, ids, stage_id, context=None):
|
||||
""" Override of the (void) default notification method. """
|
||||
stage_name = self.pool.get('project.task.type').name_get(cr, uid, [stage_id], context=context)[0][1]
|
||||
return self.message_post(cr, uid, ids, body=_("Stage changed to <b>%s</b>.") % (stage_name),
|
||||
context=context)
|
||||
def case_open_send_note(self, cr, uid, ids, context=None):
|
||||
return self.message_post(cr, uid, ids, body=_("Task has been <b>started</b>."), subtype="project.mt_task_started", context=context)
|
||||
|
||||
def create_send_note(self, cr, uid, ids, context=None):
|
||||
return self.message_post(cr, uid, ids, body=_("Task has been <b>created</b>."), context=context)
|
||||
def case_close_send_note(self, cr, uid, ids, context=None):
|
||||
return self.message_post(cr, uid, ids, body=_("Task has been <b>done</b>."), subtype="project.mt_task_closed", context=context)
|
||||
|
||||
def case_block_send_note(self, cr, uid, ids, context=None):
|
||||
return self.message_post(cr, uid, ids, body=_("Task has been <b>blocked</b>."), subtype="project.mt_task_blocked", context=context)
|
||||
|
||||
def case_draft_send_note(self, cr, uid, ids, context=None):
|
||||
return self.message_post(cr, uid, ids, body=_('Task has been set as <b>draft</b>.'), context=context)
|
||||
|
||||
|
||||
@@ -86,37 +86,35 @@
|
||||
|
||||
<!-- mail: subtypes -->
|
||||
<record id="mt_project_new" model="mail.message.subtype">
|
||||
<field name="name">New</field>
|
||||
<field name="name">Task Created</field>
|
||||
<field name="res_model">project.project</field>
|
||||
<field name="default" eval="False"/>
|
||||
</record>
|
||||
<record id="mt_project_started" model="mail.message.subtype">
|
||||
<field name="name">Task Started</field>
|
||||
<field name="res_model">project.project</field>
|
||||
</record>
|
||||
<record id="mt_project_closed" model="mail.message.subtype">
|
||||
<field name="name">Closed</field>
|
||||
<field name="name">Task Done</field>
|
||||
<field name="res_model">project.project</field>
|
||||
</record>
|
||||
<record id="mt_project_canceled" model="mail.message.subtype">
|
||||
<field name="name">Canceled</field>
|
||||
<field name="res_model">project.project</field>
|
||||
</record>
|
||||
<record id="mt_project_stage" model="mail.message.subtype">
|
||||
<field name="name">Stage Changed</field>
|
||||
<field name="res_model">project.project</field>
|
||||
</record>
|
||||
|
||||
|
||||
<record id="mt_task_new" model="mail.message.subtype">
|
||||
<field name="name">New</field>
|
||||
<field name="name">Task Created</field>
|
||||
<field name="res_model">project.task</field>
|
||||
<field name="default" eval="False"/>
|
||||
</record>
|
||||
<record id="mt_task_started" model="mail.message.subtype">
|
||||
<field name="name">Task Started</field>
|
||||
<field name="res_model">project.task</field>
|
||||
</record>
|
||||
<record id="mt_task_blocked" model="mail.message.subtype">
|
||||
<field name="name">Tasks Blocked</field>
|
||||
<field name="res_model">project.task</field>
|
||||
<field name="default" eval="False"/>
|
||||
</record>
|
||||
<record id="mt_task_closed" model="mail.message.subtype">
|
||||
<field name="name">Closed</field>
|
||||
<field name="res_model">project.task</field>
|
||||
</record>
|
||||
<record id="mt_task_canceled" model="mail.message.subtype">
|
||||
<field name="name">Canceled</field>
|
||||
<field name="res_model">project.task</field>
|
||||
</record>
|
||||
<record id="mt_task_change" model="mail.message.subtype">
|
||||
<field name="name">Stage Changed</field>
|
||||
<field name="name">Task Done</field>
|
||||
<field name="res_model">project.task</field>
|
||||
</record>
|
||||
|
||||
|
||||
@@ -152,7 +152,7 @@
|
||||
</notebook>
|
||||
</sheet>
|
||||
<div class="oe_chatter">
|
||||
<field name="message_follower_ids" widget="mail_followers" help="Follow this project to automatically follow all related tasks and issues."/>
|
||||
<field name="message_follower_ids" widget="mail_followers" help="Follow this project to automatically track the events associated to tasks and issues of this project."/>
|
||||
<field name="message_ids" widget="mail_thread"/>
|
||||
</div>
|
||||
</form>
|
||||
|
||||
@@ -394,8 +394,10 @@ class project_issue(base_stage, osv.osv):
|
||||
if vals.get('project_id'):
|
||||
for id in ids:
|
||||
self._subscribe_project_followers_to_issue(cr, uid, id, context=context)
|
||||
|
||||
return super(project_issue, self).write(cr, uid, ids, vals, context)
|
||||
|
||||
def issue_start_send_note(self, cr, uid, ids, context=None):
|
||||
return self.message_post(cr, uid, ids, body=_("Issue has been <b>started</b>."), subtype="mt_issue_change", context=context)
|
||||
|
||||
def onchange_task_id(self, cr, uid, ids, task_id, context=None):
|
||||
if not task_id:
|
||||
@@ -457,7 +459,6 @@ class project_issue(base_stage, osv.osv):
|
||||
def case_cancel(self, cr, uid, ids, context=None):
|
||||
""" Cancels case """
|
||||
self.case_set(cr, uid, ids, 'cancelled', {'active': True}, context=context)
|
||||
self.case_cancel_send_note(cr, uid, ids, context=context)
|
||||
return True
|
||||
|
||||
def case_escalate(self, cr, uid, ids, context=None):
|
||||
@@ -535,12 +536,11 @@ class project_issue(base_stage, osv.osv):
|
||||
# -------------------------------------------------------
|
||||
# OpenChatter methods and notifications
|
||||
# -------------------------------------------------------
|
||||
|
||||
def stage_set_send_note(self, cr, uid, ids, stage_id, context=None):
|
||||
""" Override of the (void) default notification method. """
|
||||
stage_name = self.pool.get('project.task.type').name_get(cr, uid, [stage_id], context=context)[0][1]
|
||||
return self.message_post(cr, uid, ids, body= _("Stage changed to <b>%s</b>.") % (stage_name), subtype="mt_issue_new", context=context)
|
||||
|
||||
|
||||
def case_get_note_msg_prefix(self, cr, uid, id, context=None):
|
||||
""" Override of default prefix for notifications. """
|
||||
return 'Project issue'
|
||||
@@ -548,7 +548,7 @@ class project_issue(base_stage, osv.osv):
|
||||
def convert_to_task_send_note(self, cr, uid, ids, context=None):
|
||||
message = _("Project issue <b>converted</b> to task.")
|
||||
return self.message_post(cr, uid, ids, body=message, context=context)
|
||||
|
||||
|
||||
def create_send_note(self, cr, uid, ids, context=None):
|
||||
message = _("Project issue <b>created</b>.")
|
||||
return self.message_post(cr, uid, ids, body=message, subtype="mt_issue_new", context=context)
|
||||
|
||||
@@ -45,21 +45,30 @@ Access all issues from the top Project menu, and access the issues of a specific
|
||||
|
||||
<!-- Mail subtypes -->
|
||||
<record id="mail.mt_issue_new" model="mail.message.subtype">
|
||||
<field name="name">New</field>
|
||||
<field name="res_model">project.issue</field>
|
||||
</record>
|
||||
<record id="mail.mt_issue_closed" model="mail.message.subtype">
|
||||
<field name="name">Closed</field>
|
||||
<field name="res_model">project.issue</field>
|
||||
</record>
|
||||
<record id="mail.mt_issue_canceled" model="mail.message.subtype">
|
||||
<field name="name">Canceled</field>
|
||||
<field name="name">Issue Created</field>
|
||||
<field name="res_model">project.issue</field>
|
||||
</record>
|
||||
<record id="mail.mt_issue_change" model="mail.message.subtype">
|
||||
<field name="name">Stage Changed</field>
|
||||
<field name="name">Issue Started</field>
|
||||
<field name="res_model">project.issue</field>
|
||||
</record>
|
||||
<record id="mail.mt_issue_closed" model="mail.message.subtype">
|
||||
<field name="name">Issue Closed</field>
|
||||
<field name="res_model">project.issue</field>
|
||||
</record>
|
||||
|
||||
<record id="mail.mt_prj_issue_new" model="mail.message.subtype">
|
||||
<field name="name">Issue Created</field>
|
||||
<field name="res_model">project.project</field>
|
||||
</record>
|
||||
<record id="mail.mt_prj_issue_started" model="mail.message.subtype">
|
||||
<field name="name">Issue Started</field>
|
||||
<field name="res_model">project.project</field>
|
||||
</record>
|
||||
<record id="mail.mt_prj_issue_closed" model="mail.message.subtype">
|
||||
<field name="name">Issue Closed</field>
|
||||
<field name="res_model">project.project</field>
|
||||
</record>
|
||||
|
||||
</data>
|
||||
</openerp>
|
||||
|
||||
Reference in New Issue
Block a user