diff options
| author | Parth Choksi <pch@odoo.com> | 2018-12-18 08:48:29 +0000 |
|---|---|---|
| committer | Parth Choksi <pch@odoo.com> | 2019-05-07 07:04:34 +0000 |
| commit | 52b49425250fa8cfa530818a226bb610de0d6f18 (patch) | |
| tree | 5fa4df1ff3ffc42072ab193f241796f7eaf1f984 | |
| parent | e554ce345fb1ffcf41c571f461b680e1e7199a1d (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.xml | 13 | ||||
| -rw-r--r-- | addons/digest/data/digest_template_data.xml | 23 | ||||
| -rw-r--r-- | addons/digest/models/digest.py | 16 | ||||
| -rw-r--r-- | addons/digest/views/digest_views.xml | 11 | ||||
| -rw-r--r-- | addons/sale_expense/data/digest_data.xml | 4 |
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&model=digest.digest&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> |
