summaryrefslogtreecommitdiff
path: root/addons/project
diff options
context:
space:
mode:
authorMitali Patel <mpa@odoo.com>2018-07-03 15:04:57 +0530
committerThibault Delavallée <tde@odoo.com>2018-07-19 11:26:47 +0200
commit870b05f69349f8ca5aa990b890f1246718f929b0 (patch)
tree138bbb70ba23dd6bc6a1f448e02f47526956db69 /addons/project
parent220ac81fa6e8695dc68abd18997c16c6c919db0d (diff)
[IMP] project: implement digest KPIs / tips
Purpose of commit is to implement KPIs about opened tasks for project digest emails. Opened tasks are nor archived nor in a final stage. Those are added in the default digest template. A tip is added to remind to use the mail gateway. This commit is linked to task ID 30655 and PR #18318.
Diffstat (limited to 'addons/project')
-rw-r--r--addons/project/__manifest__.py3
-rw-r--r--addons/project/data/digest_data.xml26
-rw-r--r--addons/project/models/__init__.py1
-rw-r--r--addons/project/models/digest.py29
-rw-r--r--addons/project/views/digest_views.xml15
5 files changed, 74 insertions, 0 deletions
diff --git a/addons/project/__manifest__.py b/addons/project/__manifest__.py
index cb4516c221a..6688c9fa82d 100644
--- a/addons/project/__manifest__.py
+++ b/addons/project/__manifest__.py
@@ -17,12 +17,14 @@
'resource',
'web',
'web_tour',
+ 'digest',
],
'description': "",
'data': [
'security/project_security.xml',
'security/ir.model.access.csv',
'report/project_report_views.xml',
+ 'views/digest_views.xml',
'views/rating_views.xml',
'views/project_views.xml',
'views/res_partner_views.xml',
@@ -32,6 +34,7 @@
'views/project_portal_templates.xml',
'views/project_rating_templates.xml',
'views/res_users_views.xml',
+ 'data/digest_data.xml',
'data/project_mail_template_data.xml',
'data/project_data.xml',
],
diff --git a/addons/project/data/digest_data.xml b/addons/project/data/digest_data.xml
new file mode 100644
index 00000000000..a932c99b290
--- /dev/null
+++ b/addons/project/data/digest_data.xml
@@ -0,0 +1,26 @@
+<?xml version='1.0' encoding='utf-8'?>
+<odoo>
+ <data noupdate="1">
+ <record id="digest.digest_digest_default" model="digest.digest">
+ <field name="kpi_project_task_opened">True</field>
+ </record>
+ </data>
+
+ <data>
+ <record id="digest_tip_project_0" model="digest.tip">
+ <field name="sequence">6</field>
+ <field name="group_id" ref="project.group_project_manager"/>
+ <field name="tip_description" type="html">
+<div>
+ <strong style="font-size: 16px;">Try the mail gateway</strong>
+ <div style="font-size: 14px;">
+ New tasks can be generated from incoming emails. You just need to set email aliases on your projects.<br/>
+ <div style="text-align:center;margin-top:5px;margin-bottom:2px;">
+ <a href="/web#action=project.open_view_project_all_config" style="background-color:#56b3b5;padding:2px;color:#FFFFFF;font-weight:bold;text-decoration:none;">Set Email Aliases</a>
+ </div>
+ </div>
+</div>
+ </field>
+ </record>
+ </data>
+</odoo>
diff --git a/addons/project/models/__init__.py b/addons/project/models/__init__.py
index a37cedf22ab..081d29b8d4e 100644
--- a/addons/project/models/__init__.py
+++ b/addons/project/models/__init__.py
@@ -6,3 +6,4 @@ from . import res_config_settings
from . import res_company
from . import res_partner
from . import res_users
+from . import digest
diff --git a/addons/project/models/digest.py b/addons/project/models/digest.py
new file mode 100644
index 00000000000..9034e647125
--- /dev/null
+++ b/addons/project/models/digest.py
@@ -0,0 +1,29 @@
+# -*- coding: utf-8 -*-
+# Part of Odoo. See LICENSE file for full copyright and licensing details.
+
+from odoo import fields, models, _
+from odoo.exceptions import AccessError
+
+
+class Digest(models.Model):
+ _inherit = 'digest.digest'
+
+ kpi_project_task_opened = fields.Boolean('Open Tasks')
+ kpi_project_task_opened_value = fields.Integer(compute='_compute_project_task_opened_value')
+
+ def _compute_project_task_opened_value(self):
+ if not self.env.user.has_group('project.group_project_user'):
+ raise AccessError(_("Do not have access, skip this data for user's digest email"))
+ for record in self:
+ start, end, company = record._get_kpi_compute_parameters()
+ record.kpi_project_task_opened_value = self.env['project.task'].search_count([
+ ('stage_id.fold', '=', False),
+ ('create_date', '>=', start),
+ ('create_date', '<', end),
+ ('company_id', '=', company.id)
+ ])
+
+ def compute_kpis_actions(self, company, user):
+ res = super(Digest, self).compute_kpis_actions(company, user)
+ res['kpi_project_task_opened'] = 'project.open_view_project_all&menu_id=%s' % self.env.ref('project.menu_main_pm').id
+ return res
diff --git a/addons/project/views/digest_views.xml b/addons/project/views/digest_views.xml
new file mode 100644
index 00000000000..92071da70bf
--- /dev/null
+++ b/addons/project/views/digest_views.xml
@@ -0,0 +1,15 @@
+<?xml version='1.0' encoding='utf-8'?>
+<odoo>
+ <record id="digest_digest_view_form" model="ir.ui.view">
+ <field name="name">digest.digest.view.form.inherit.project.task</field>
+ <field name="model">digest.digest</field>
+ <field name="inherit_id" ref="digest.digest_digest_view_form"/>
+ <field name="arch" type="xml">
+ <xpath expr="//group[@name='kpi_general']" position="after">
+ <group name="kpi_project" string="Project" groups="project.group_project_user">
+ <field name="kpi_project_task_opened"/>
+ </group>
+ </xpath>
+ </field>
+ </record>
+</odoo>