diff options
| author | Mitali Patel <mpa@odoo.com> | 2018-07-03 15:04:57 +0530 |
|---|---|---|
| committer | Thibault Delavallée <tde@odoo.com> | 2018-07-19 11:26:47 +0200 |
| commit | 870b05f69349f8ca5aa990b890f1246718f929b0 (patch) | |
| tree | 138bbb70ba23dd6bc6a1f448e02f47526956db69 /addons/project | |
| parent | 220ac81fa6e8695dc68abd18997c16c6c919db0d (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__.py | 3 | ||||
| -rw-r--r-- | addons/project/data/digest_data.xml | 26 | ||||
| -rw-r--r-- | addons/project/models/__init__.py | 1 | ||||
| -rw-r--r-- | addons/project/models/digest.py | 29 | ||||
| -rw-r--r-- | addons/project/views/digest_views.xml | 15 |
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> |
