summaryrefslogtreecommitdiff
path: root/addons/project_issue/project_issue.py
diff options
context:
space:
mode:
Diffstat (limited to 'addons/project_issue/project_issue.py')
-rw-r--r--addons/project_issue/project_issue.py59
1 files changed, 18 insertions, 41 deletions
diff --git a/addons/project_issue/project_issue.py b/addons/project_issue/project_issue.py
index dc4d5cf5ff5..8e789e03658 100644
--- a/addons/project_issue/project_issue.py
+++ b/addons/project_issue/project_issue.py
@@ -415,18 +415,20 @@ class project_issue(osv.Model):
return stage_ids[0]
return False
- def case_escalate(self, cr, uid, ids, context=None):
- cases = self.browse(cr, uid, ids)
- for case in cases:
+ def case_escalate(self, cr, uid, ids, context=None): # FIXME rename this method to issue_escalate
+ for issue in self.browse(cr, uid, ids, context=context):
data = {}
- if case.project_id.project_escalation_id:
- data['project_id'] = case.project_id.project_escalation_id.id
- if case.project_id.project_escalation_id.user_id:
- data['user_id'] = case.project_id.project_escalation_id.user_id.id
- if case.task_id:
- self.pool.get('project.task').write(cr, uid, [case.task_id.id], {'project_id': data['project_id'], 'user_id': False})
- else:
+ esc_proj = issue.project_id.project_escalation_id
+ if not esc_proj:
raise osv.except_osv(_('Warning!'), _('You cannot escalate this issue.\nThe relevant Project has not configured the Escalation Project!'))
+
+ data['project_id'] = esc_proj.id
+ if esc_proj.user_id:
+ data['user_id'] = esc_proj.user_id.id
+ issue.write(data)
+
+ if issue.task_id:
+ issue.task_id.write({'project_id': esc_proj.id, 'user_id': False})
return True
# -------------------------------------------------------
@@ -467,40 +469,10 @@ class project_issue(osv.Model):
'partner_id': msg.get('author_id', False),
'user_id': False,
}
- if msg.get('priority'):
- defaults['priority'] = msg.get('priority')
-
defaults.update(custom_values)
res_id = super(project_issue, self).message_new(cr, uid, msg, custom_values=defaults, context=context)
return res_id
- def message_update(self, cr, uid, ids, msg, update_vals=None, context=None):
- """ Overrides mail_thread message_update that is called by the mailgateway
- through message_process.
- This method updates the document according to the email.
- """
- if isinstance(ids, (str, int, long)):
- ids = [ids]
- if update_vals is None: update_vals = {}
-
- # Update doc values according to the message
- if msg.get('priority'):
- update_vals['priority'] = msg.get('priority')
- # Parse 'body' to find values to update
- maps = {
- 'cost': 'planned_cost',
- 'revenue': 'planned_revenue',
- 'probability': 'probability',
- }
- for line in msg.get('body', '').split('\n'):
- line = line.strip()
- res = tools.command_re.match(line)
- if res and maps.get(res.group(1).lower(), False):
- key = maps.get(res.group(1).lower())
- update_vals[key] = res.group(2).lower()
-
- return super(project_issue, self).message_update(cr, uid, ids, msg, update_vals=update_vals, context=context)
-
def message_post(self, cr, uid, thread_id, body='', subject=None, type='notification', subtype=None, parent_id=False, attachments=None, context=None, content_subtype='html', **kwargs):
""" Overrides mail_thread message_post so that we can set the date of last action field when
a new message is posted on the issue.
@@ -520,6 +492,8 @@ class project(osv.Model):
return [('project.task', "Tasks"), ("project.issue", "Issues")]
def _issue_count(self, cr, uid, ids, field_name, arg, context=None):
+ """ :deprecated: this method will be removed with OpenERP v8. Use issue_ids
+ fields instead. """
res = dict.fromkeys(ids, 0)
issue_ids = self.pool.get('project.issue').search(cr, uid, [('project_id', 'in', ids)])
for issue in self.pool.get('project.issue').browse(cr, uid, issue_ids, context):
@@ -531,7 +505,10 @@ class project(osv.Model):
'project_escalation_id': fields.many2one('project.project', 'Project Escalation',
help='If any issue is escalated from the current Project, it will be listed under the project selected here.',
states={'close': [('readonly', True)], 'cancelled': [('readonly', True)]}),
- 'issue_count': fields.function(_issue_count, type='integer', string="Unclosed Issues"),
+ 'issue_count': fields.function(_issue_count, type='integer', string="Unclosed Issues",
+ deprecated="This field will be removed in OpenERP v8. Use issue_ids one2many field instead."),
+ 'issue_ids': fields.one2many('project.issue', 'project_id',
+ domain=[('stage_id.fold', '=', False)])
}
def _check_escalation(self, cr, uid, ids, context=None):