summaryrefslogtreecommitdiff
path: root/addons/project
diff options
context:
space:
mode:
authorThibault Delavallée <tde@openerp.com>2014-06-11 11:33:07 +0200
committerThibault Delavallée <tde@openerp.com>2014-06-11 11:33:07 +0200
commit9a60bafd7f2ae33c76cc4e93c4bceea44ecb5d48 (patch)
treeb3ec833a9bcb68a62aca5badf9d9cfa731382ede /addons/project
parent53315288a87fce960f4261222ef125e5793b5a8a (diff)
parente5379bc1a050883452fae1e71093467042e9b64d (diff)
Merge pull request #464 from odoo-dev/master-task-reviewer-tde
[IMP] project: task: added reviewer_id field, linking towards a res.users, that is the reviewer of the task.
Diffstat (limited to 'addons/project')
-rw-r--r--addons/project/project.py7
-rw-r--r--addons/project/project_view.xml5
2 files changed, 12 insertions, 0 deletions
diff --git a/addons/project/project.py b/addons/project/project.py
index d98b9b03e94..a9c487be244 100644
--- a/addons/project/project.py
+++ b/addons/project/project.py
@@ -782,6 +782,7 @@ class task(osv.osv):
'project.task': (lambda self, cr, uid, ids, c={}: ids, ['work_ids', 'remaining_hours', 'planned_hours'], 10),
'project.task.work': (_get_task, ['hours'], 10),
}),
+ 'reviewer_id': fields.many2one('res.users', 'Reviewer', select=True, track_visibility='onchange'),
'user_id': fields.many2one('res.users', 'Assigned to', select=True, track_visibility='onchange'),
'delegated_user_id': fields.related('child_ids', 'user_id', type='many2one', relation='res.users', string='Delegated To'),
'partner_id': fields.many2one('res.partner', 'Customer'),
@@ -801,6 +802,7 @@ class task(osv.osv):
'progress': 0,
'sequence': 10,
'active': True,
+ 'reviewer_id': lambda obj, cr, uid, ctx=None: uid,
'user_id': lambda obj, cr, uid, ctx=None: uid,
'company_id': lambda self, cr, uid, ctx=None: self.pool.get('res.company')._company_default_get(cr, uid, 'project.task', context=ctx),
'partner_id': lambda self, cr, uid, ctx=None: self._get_default_partner(cr, uid, context=ctx),
@@ -1090,6 +1092,11 @@ class task(osv.osv):
# Mail gateway
# ---------------------------------------------------
+ def _message_get_auto_subscribe_fields(self, cr, uid, updated_fields, auto_follow_fields=None, context=None):
+ if auto_follow_fields is None:
+ auto_follow_fields = ['user_id', 'reviewer_id']
+ return super(task, self)._message_get_auto_subscribe_fields(cr, uid, updated_fields, auto_follow_fields, context=context)
+
def message_get_reply_to(self, cr, uid, ids, context=None):
""" Override to get the reply_to of the parent project. """
return [task.project_id.message_get_reply_to()[0] if task.project_id else False
diff --git a/addons/project/project_view.xml b/addons/project/project_view.xml
index b6a839edcf6..693e1b47f13 100644
--- a/addons/project/project_view.xml
+++ b/addons/project/project_view.xml
@@ -29,9 +29,11 @@
help="Show only tasks having a deadline"/>
<field name="partner_id"/>
<field name="project_id"/>
+ <field name="reviewer_id"/>
<field name="user_id"/>
<field name="stage_id" domain="[]"/>
<group expand="0" string="Group By...">
+ <filter string="Reviewers" name="group_reviewer_id" domain="[]" context="{'group_by':'reviewer_id'}"/>
<filter string="Users" name="group_user_id" icon="terp-personal" domain="[]" context="{'group_by':'user_id'}"/>
<filter string="Project" name="group_project_id" icon="terp-folder-violet" domain="[]" context="{'group_by':'project_id'}"/>
<filter string="Stage" name="group_stage_id" icon="terp-stage" domain="[]" context="{'group_by':'stage_id'}"/>
@@ -389,6 +391,9 @@
<field name="user_id"
options='{"no_open": True}'
context="{'default_groups_ref': ['base.group_user', 'base.group_partner_manager', 'project.group_project_user']}"/>
+ <field name="reviewer_id"
+ options='{"no_open": True}'
+ context="{'default_groups_ref': ['base.group_user', 'base.group_partner_manager', 'project.group_project_user']}"/>
<field name="planned_hours" widget="float_time"
groups="project.group_time_work_estimation_tasks"
on_change="onchange_planned(planned_hours, effective_hours)"/>