Files
odoo_source/addons/digest/views/digest_views.xml
T
Mitali PatelandSiddharth Gajjar 2d1abe64e4 [ADD] digest: add new module to send recurrent digests by email
This commit adds a new digest module allowing to send recurrent digests by
email. Those contain a summary of the activity and display various KPIs
allowing to see the activity at a glance. It is also a great tool to improve
user engagement.

Digest module contain the core implementation of digests emails as well as
first basic KPIs. Future commits will gradually add KPIs in various main
addons.

Digests consist in email templates that have to call some methods on digest
module (compute_kpis, compute_tips, compute_kpis_actions) and render it
accordingly. A default digest is given in data allowing to tune it or to
duplicate and modify it.

Frequency is configurable on the digest; digests can be weekly, monthly or
send every 3 months. New employee users are added to the default widget.
KPIs are computed for each subscribed users so that results match its
groups and related access rights. Default digest therefore work for all users
as displayed results depend on their right without having to define separate
digests just for that purpose.

Implementation is done with Studio in mind. KPIs are computed fields on the
digest model. It means using Studio custom computed fields can be defined
to add customization to the digests, using fields named x_kpi_... .

Digests also holds tips to remind and warn users of features to activate
or configure like mailgateway.

KPIs can be linked to actions so that the section contain a link allowing
to directly jump on a given menu, allowing to directly link reporting
menus for example.

This commit is related Task ID 30655 and PR #18318.

Co-authored-by: Siddharth Gajjar <sga@odoo.com>
2018-07-19 11:26:45 +02:00

130 lines
6.8 KiB
XML

<?xml version="1.0" encoding="utf-8"?>
<odoo>
<record id="digest_digest_view_tree" model="ir.ui.view">
<field name="name">digest.digest.view.tree</field>
<field name="model">digest.digest</field>
<field name="arch" type="xml">
<tree string="KPI Digest">
<field name="name"/>
<field name="periodicity"/>
<field name="next_run_date" groups="base.group_no_one"/>
</tree>
</field>
</record>
<record id="digest_digest_view_form" model="ir.ui.view">
<field name="name">digest.digest.view.form</field>
<field name="model">digest.digest</field>
<field name="arch" type="xml">
<form string="KPI Digest">
<field name="is_subscribed" invisible="1"/>
<header>
<button type="object" name="action_subscribe" string="Subscribe"
class="oe_highlight"
attrs="{'invisible': ['|',('is_subscribed', '=', True), ('state','=','deactivated')]}"/>
<button type="object" name="action_unsubcribe" string="Unsubscribe me"
class="oe_highlight"
attrs="{'invisible': ['|',('is_subscribed', '=', False), ('state','=','deactivated')]}"/>
<button type="object" name="action_deactivate" string="Deactivate for everyone"
class="oe_highlight"
attrs="{'invisible': [('state','=','deactivated')]}" groups="base.group_system"/>
<button type="object" name="action_activate" string="Activate"
class="oe_highlight"
attrs="{'invisible': [('state','=','activated')]}" groups="base.group_system"/>
<button type="object" name="action_send" string="Send Now"
class="oe_highlight"
attrs="{'invisible': [('state','=','deactivated')]}" groups="base.group_system"/>
<field name="state" widget="statusbar"/>
</header>
<sheet>
<div class="oe_title">
<label for="name" class="oe_edit_only"/>
<h1>
<field name="name"/>
</h1>
</div>
<group>
<group>
<field name="periodicity" widget="radio" options="{'horizontal': true}"/>
<field name="user_ids" widget="many2many_tags" options="{'no_create': True}" groups="base.group_system"/>
<field name="template_id" groups="base.group_no_one"/>
<field name="next_run_date" groups="base.group_system"/>
<field name="company_id" options="{'no_create': True}" invisible="1"/>
<!-- <field name="digest_history_ids" invisible="1"/> -->
</group>
</group>
<notebook>
<page name="kpis" string="KPIs">
<group name="kpis">
<group name="kpi_general" string="General" groups="base.group_system">
<field name="kpi_res_users_connected"/>
<field name="kpi_mail_message_total"/>
</group>
<group name="kpi_sales"/>
</group>
</page>
<page name="how_to" string="How to customize your digest?" groups="base.group_no_one">
<div class="alert alert-info" role="alert">
In order to build your customized digest, follow these steps:
<ol>
<li>
You may want to add new computed fields with Odoo Studio:
<ul>
<li>
you must create 2 fields on the
<code>digest</code>
object:
</li>
<li>
first create a boolean field called
<code>x_kpi_myfield</code>
and display it in the KPI's tab;
</li>
<li>
then create a computed field called
<code>x_kpi_myfield_value</code>
that will compute your customized KPI.
</li>
</ul>
</li>
<li>Select your KPIs in the KPI's tab.</li>
<li>
Create or edit the mail template: you may get computed KPI's value using these fields:
<code>
<field name="available_fields" class="oe_inline" />
</code>
</li>
</ol>
</div>
</page>
</notebook>
</sheet>
</form>
</field>
</record>
<record id="digest_digest_view_search" model="ir.ui.view">
<field name="name">digest.digest.view.search</field>
<field name="model">digest.digest</field>
<field name="arch" type="xml">
<search>
<field name="name"/>
<field name="user_ids"/>
<group expand="1" string="Group by">
<filter string="Periodicity" name="periodicity" context="{'group_by': 'periodicity'}"/>
</group>
</search>
</field>
</record>
<record id="digest_digest_action" model="ir.actions.act_window">
<field name="name">Digest Emails</field>
<field name="res_model">digest.digest</field>
<field name="view_type">form</field>
<field name="search_view_id" ref="digest_digest_view_search"/>
</record>
<menuitem id="digest_menu"
action="digest_digest_action"
parent="base.menu_email"
groups="base.group_erp_manager"
sequence="93"/>
</odoo>