summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorParth Choksi <pch@odoo.com>2018-12-18 08:48:29 +0000
committerParth Choksi <pch@odoo.com>2019-05-07 07:04:34 +0000
commit52b49425250fa8cfa530818a226bb610de0d6f18 (patch)
tree5fa4df1ff3ffc42072ab193f241796f7eaf1f984
parente554ce345fb1ffcf41c571f461b680e1e7199a1d (diff)
[IMP] digest: improve the digest email layout
Purpose of the task is to improve the usability of digest email layout. - Click on Connect button to connect to the database. - Use same left padding in the header as in the section title. - 2 decimal digits for monetary amounts, no space with currency symbol. - Count real messages only, not notes or notifications. - Add new tips for video tour. - Moved recipients to a new tab. - Changed email author to company's email. - Some minor layout fixes. Task-1918364
-rw-r--r--addons/digest/data/digest_data.xml13
-rw-r--r--addons/digest/data/digest_template_data.xml23
-rw-r--r--addons/digest/models/digest.py16
-rw-r--r--addons/digest/views/digest_views.xml11
-rw-r--r--addons/sale_expense/data/digest_data.xml4
5 files changed, 44 insertions, 23 deletions
diff --git a/addons/digest/data/digest_data.xml b/addons/digest/data/digest_data.xml
index 76c6e373d80..5c7c2c792ba 100644
--- a/addons/digest/data/digest_data.xml
+++ b/addons/digest/data/digest_data.xml
@@ -2,7 +2,7 @@
<odoo>
<data noupdate="1">
<record id="digest_digest_default" model="digest.digest">
- <field name="name">Weekly Digest</field>
+ <field name="name">Weekly Stats in Odoo</field>
<field name="user_ids" eval="[(4, ref('base.user_admin'))]"/>
<field name="next_run_date" eval="(DateTime.now() + timedelta(days=7)).strftime('%Y-%m-%d')"/>
<field name="kpi_res_users_connected">True</field>
@@ -41,5 +41,16 @@
</div>
</field>
</record>
+
+ <record id="digest_tip_mail_2" model="digest.tip">
+ <field name="group_id" ref='base.group_system'/>
+ <field name="sequence">0</field>
+ <field name="tip_description" type="html">
+<div style="font-size: 14px;">
+ To reach your full potential with Odoo, have a look at our <a href="https://www.odoo.com/page/tour">apps videos</a> and discover new tools to work better and faster.
+</div>
+ </field>
+ </record>
+
</data>
</odoo>
diff --git a/addons/digest/data/digest_template_data.xml b/addons/digest/data/digest_template_data.xml
index aeaa6a54253..72826734049 100644
--- a/addons/digest/data/digest_template_data.xml
+++ b/addons/digest/data/digest_template_data.xml
@@ -3,8 +3,8 @@
<record id="digest_mail_template" model="mail.template">
<field name="name">Digest: Default main template</field>
<field name="model_id" ref="digest.model_digest_digest"/>
- <field name="email_from">${user.email_formatted | safe}</field>
<field name="subject">${'%s: %s' % (ctx.get('user', user).company_id.name, object.name)}</field>
+ <field name="email_from">${('%s' % (object.company_id.partner_id.email_formatted or user.email_formatted))|safe}</field>
<field name="body_html" type="html">
<table style="width: 100%; border-spacing: 0; font-family: Helvetica,Arial,Verdana,sans-serif;">
<tr>
@@ -17,12 +17,15 @@
% set kpis = data.yesterday.keys()
<table style="width: 100%; max-width: 600px; border-spacing: 0; border: 1px solid #e7e7e7; border-bottom: none; color: #6e7172; line-height: 23px; text-align: left;">
<tr>
- <td style="border-collapse: collapse; padding: 10px 40px; text-align: left;">
- <strong style="margin-left: -22px; color: #000000; font-size: 22px; line-height: 32px;">${company.name} at a glance</strong>
- <div style="color: #000000; font-size: 15px; margin-left:-22px;">${datetime.date.today().strftime('%B %d, %Y')}</div>
+ <td style="border-collapse: collapse; padding: 10px 20px; text-align: left;">
+ <strong style="color: #000000; font-size: 22px; line-height: 32px;">${object.name}</strong>
+ <div style="color: #000000; font-size: 15px;">${datetime.date.today().strftime('%B %d, %Y')}</div>
</td>
- <td style="text-align: right; padding: 10px 40px">
+ <td style="text-align: right; padding: 10px 20px">
<img style="padding: 0px; margin: 0px; height: auto; width: 80px;" src="/logo.png?company=${company.id}"/>
+ <div style="padding-top: 5px;">
+ <a href="/web/login" style="background-color: #875A7B; margin-left: 5px; padding: 8px 16px 8px 16px; text-decoration: none; color: #fff; border-radius: 5px; font-size:13px;">Connect</a>
+ </div>
</td>
</tr>
<tr><td colspan="2" style="text-align: center;">
@@ -85,10 +88,10 @@
</tr>
</table>
</td>
- <td style="border-collapse: collapse; margin: 0; padding: 0; border-top: 2px solid #56b3b5;">
+ <td style="border-collapse: collapse; margin: 0; padding: 15px; border-top: 2px solid #56b3b5;">
<table style="width: 100%; max-width: 199px; border-spacing: 0; margin: 0; padding: 0;">
<tr>
- <td style="border-collapse: collapse; margin: 0; padding: 20; text-align: center;">
+ <td style="border-collapse: collapse; margin: 0; text-align: center;">
<span style="color: #56b3b5; font-size: 35px; font-weight: bold; text-decoration: none; line-height: 36px">${data['lastmonth'][kpi][kpi]}</span><br/>
<span style="color: #888888; display: inline-block; font-size: 12px; line-height: 18px; text-transform: uppercase;">Last 30 Days</span>
% if data['lastmonth'][kpi]['margin'] != 0.0:
@@ -114,7 +117,7 @@
% if tips:
<table style="width: 100%; max-width: 600px; margin-top: 5px; border: 1px solid #e7e7e7;">
<tr>
- <td style="border-collapse: collapse; background-color: #ffffff; line-height: 21px; padding: 0px 20px;"><br/>
+ <td style="border-collapse: collapse; background-color: #ffffff; line-height: 21px; padding: 0px 20px 20px;"><br/>
<div style="color: #3d466e; line-height: 23px;">${tips | safe}</div>
</td>
</tr>
@@ -127,7 +130,7 @@
</td>
</tr>
<tr>
- <td>
+ <td style="padding-bottom:20px;">
<div style="text-align: center;"><a href="https://play.google.com/store/apps/details?id=com.odoo.mobile" target="_blank"><img src="/digest/static/src/img/google_play.png" style="display: inline-block; height: 30px; margin-left: auto; margin-right: 12px;"/></a><a href="https://itunes.apple.com/us/app/odoo/id1272543640" target="_blank"><img src="/digest/static/src/img/app_store.png" style="display: inline-block; height: 30px; margin-left: 12px; margin-right: auto;"/></a>
</div>
</td>
@@ -138,7 +141,7 @@
<td style="border-collapse: collapse; margin: 0; padding: 10px 20px;">
% if user.has_group('base.group_system'):
<div style="margin-top: 20px;">
- Want to customize the email?
+ Want to customize this email?
<a href="/web#view_type=form&amp;model=digest.digest&amp;id=${object.id}" target="_blank" style="color: #875A7B;">Choose the metrics you care about</a>
</div>
<br />
diff --git a/addons/digest/models/digest.py b/addons/digest/models/digest.py
index eb4fd1190bb..1d10c59d504 100644
--- a/addons/digest/models/digest.py
+++ b/addons/digest/models/digest.py
@@ -65,9 +65,10 @@ class Digest(models.Model):
record.kpi_res_users_connected_value = user_connected
def _compute_kpi_mail_message_total_value(self):
+ discussion_subtype_id = self.env.ref('mail.mt_comment').id
for record in self:
start, end, company = record._get_kpi_compute_parameters()
- total_messages = self.env['mail.message'].search_count([('create_date', '>=',start), ('create_date', '<', end)])
+ total_messages = self.env['mail.message'].search_count([('create_date', '>=', start), ('create_date', '<', end), ('subtype_id', '=', discussion_subtype_id), ('message_type', 'in', ['comment', 'email'])])
record.kpi_mail_message_total_value = total_messages
@api.onchange('periodicity')
@@ -181,19 +182,16 @@ class Digest(models.Model):
return margin
def _format_currency_amount(self, amount, currency_id):
- pre = post = u''
- if currency_id.position == 'before':
- pre = u'{symbol}\N{NO-BREAK SPACE}'.format(symbol=currency_id.symbol or '')
- else:
- post = u'\N{NO-BREAK SPACE}{symbol}'.format(symbol=currency_id.symbol or '')
- return u'{pre}{0}{post}'.format(amount, pre=pre, post=post)
+ pre = currency_id.position == 'before'
+ symbol = u'{symbol}'.format(symbol=currency_id.symbol or '')
+ return u'{pre}{0}{post}'.format(amount, pre=symbol if pre else '', post=symbol if not pre else '')
def _format_human_readable_amount(self, amount, suffix=''):
for unit in ['', 'K', 'M', 'G']:
if abs(amount) < 1000.0:
- return "%3.1f%s%s" % (amount, unit, suffix)
+ return "%3.2f%s%s" % (amount, unit, suffix)
amount /= 1000.0
- return "%.1f%s%s" % (amount, 'T', suffix)
+ return "%.2f%s%s" % (amount, 'T', suffix)
@api.model
def _cron_send_digest_email(self):
diff --git a/addons/digest/views/digest_views.xml b/addons/digest/views/digest_views.xml
index dc348837227..44bdfd355e7 100644
--- a/addons/digest/views/digest_views.xml
+++ b/addons/digest/views/digest_views.xml
@@ -45,7 +45,6 @@
<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"/>
@@ -62,6 +61,16 @@
<group name="kpi_sales"/>
</group>
</page>
+ <page name="recipients" string="Recipients" groups="base.group_system">
+ <group>
+ <field name="user_ids" options="{'no_create': True}">
+ <tree string="Recipients">
+ <field name="name"/>
+ <field name="email"/>
+ </tree>
+ </field>
+ </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:
diff --git a/addons/sale_expense/data/digest_data.xml b/addons/sale_expense/data/digest_data.xml
index 7bae8e4767c..2c637e3cccd 100644
--- a/addons/sale_expense/data/digest_data.xml
+++ b/addons/sale_expense/data/digest_data.xml
@@ -7,8 +7,8 @@
<div>
<strong style="font-size: 16px;">Submit expenses by email</strong>
<div style="font-size: 14px;">Take a snapshot of your expenses and submit your expenses by email.<br/>
- <div style="text-align:center;margin-top:5px;margin-bottom:2px;">
- <a href="/web#action=hr_expense.action_hr_expense_configuration" style="background-color:#56b3b5;padding:2px;color:#FFFFFF;font-weight:bold;text-decoration:none;">Activate Expense Emails</a>
+ <div style="text-align:center;margin-top:5px;margin-bottom:10px;">
+ <a href="/web#action=hr_expense.action_hr_expense_configuration" style="background-color:#56b3b5;padding:10px;text-decoration:none;color:#FFFFFF;border-radius:5px;font-size:12px;">Activate Expense Emails</a>
</div>
</div>
</div>