summaryrefslogtreecommitdiff
path: root/addons/project_issue
diff options
context:
space:
mode:
authorDenis Ledoux <dle@odoo.com>2015-12-07 16:59:31 +0100
committerDenis Ledoux <dle@odoo.com>2015-12-07 17:04:50 +0100
commit0b5935092e6f4142f7e5f15823601b7ade2ea280 (patch)
tree6acf947137401750721cc3b0cd990cbfbec65269 /addons/project_issue
parentfe85d408312de74ba7ef6ff3a085ea4a9baf6bb4 (diff)
[ADD] project: tasks & issues need-actions
Shortcuts to display tasks & issues with notifications from the projects dashboards
Diffstat (limited to 'addons/project_issue')
-rw-r--r--addons/project_issue/project_dashboard.xml14
-rw-r--r--addons/project_issue/project_issue.py8
2 files changed, 18 insertions, 4 deletions
diff --git a/addons/project_issue/project_dashboard.xml b/addons/project_issue/project_dashboard.xml
index 648eb012017..381a6173026 100644
--- a/addons/project_issue/project_dashboard.xml
+++ b/addons/project_issue/project_dashboard.xml
@@ -7,12 +7,18 @@
<field name="use_tasks" position="after">
<field name="use_issues"/>
<field name="issue_ids" invisible="1"/>
+ <field name="issue_needaction_count" invisible="1"/>
</field>
<xpath expr="//div/a[contains(@class, 'o_project_kanban_box')]" position="after">
- <a t-if="record.use_issues.raw_value" class="o_project_kanban_box" name="%(act_project_project_2_project_issue_all)d" type="action">
- <span class="o_value"><t t-raw="record.issue_ids.raw_value.length"/></span>
- <span class="o_label"><field name="label_issues"/></span>
- </a>
+ <div t-if="record.use_issues.raw_value" class="o_project_kanban_box">
+ <a name="%(act_project_project_2_project_issue_all)d" type="action">
+ <span class="o_value"><t t-raw="record.issue_ids.raw_value.length"/></span>
+ <span class="o_label"><field name="label_issues"/></span>
+ </a>
+ <a t-if="record.issue_needaction_count.raw_value" class="o_needaction" name="%(act_project_project_2_project_issue_all)d" type="action" context="{'search_default_message_needaction': 1}">
+ <t t-esc="record.issue_needaction_count.raw_value"/>
+ </a>
+ </div>
</xpath>
<xpath expr="//div[contains(@class, 'o_kanban_manage_reports')]" position="inside">
diff --git a/addons/project_issue/project_issue.py b/addons/project_issue/project_issue.py
index 82c65dba563..fa43aee4203 100644
--- a/addons/project_issue/project_issue.py
+++ b/addons/project_issue/project_issue.py
@@ -438,10 +438,18 @@ class project(osv.Model):
for project_id in ids
}
+ def _issue_needaction_count(self, cr, uid, ids, field_name, arg, context=None):
+ Issue = self.pool['project.issue']
+ res = dict.fromkeys(ids, 0)
+ projects = Issue.read_group(cr, uid, [('project_id', 'in', ids), ('message_needaction', '=', True)], ['project_id'], ['project_id'], context=context)
+ res.update({project['project_id'][0]: int(project['project_id_count']) for project in projects})
+ return res
+
_columns = {
'issue_count': fields.function(_issue_count, type='integer', string="Issues",),
'issue_ids': fields.one2many('project.issue', 'project_id', string="Issues",
domain=[('stage_id.fold', '=', False)]),
+ 'issue_needaction_count': fields.function(_issue_needaction_count, type='integer', string="Issues",),
}
@api.multi