[IMP] website_sale: implement digest KPIs / tips

Purpose of this commit is send ecommerce sales details KPIs in digest email.
Those are added in the default digest template.

This commit is linked to task ID 30655 and PR #18318.
This commit is contained in:
Mitali Patel
2018-07-19 11:26:48 +02:00
committed by Thibault Delavallée
parent 1909a70cee
commit 4f9e4283d4
5 changed files with 60 additions and 1 deletions
+3 -1
View File
@@ -6,12 +6,13 @@
'website': 'https://www.odoo.com/page/e-commerce',
'version': '1.0',
'description': "",
'depends': ['website', 'sale_payment', 'website_payment', 'website_mail', 'website_form', 'website_rating'],
'depends': ['website', 'sale_payment', 'website_payment', 'website_mail', 'website_form', 'website_rating', 'digest'],
'data': [
'security/ir.model.access.csv',
'security/website_sale.xml',
'data/data.xml',
'data/mail_template_data.xml',
'data/digest_data.xml',
'views/product_views.xml',
'views/account_views.xml',
'views/sale_report_views.xml',
@@ -20,6 +21,7 @@
'views/templates.xml',
'views/snippets.xml',
'views/res_config_settings_views.xml',
'views/digest_views.xml',
],
'demo': [
'data/demo.xml',
+8
View File
@@ -0,0 +1,8 @@
<?xml version='1.0' encoding='utf-8'?>
<odoo>
<data noupdate="1">
<record id="digest.digest_digest_default" model="digest.digest">
<field name="kpi_website_sale_total">True</field>
</record>
</data>
</odoo>
+1
View File
@@ -11,3 +11,4 @@ from . import payment
from . import sale_order
from . import website
from . import res_config_settings
from . import digest
+31
View File
@@ -0,0 +1,31 @@
# -*- 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_website_sale_total = fields.Boolean('eCommerce Sales')
kpi_website_sale_total_value = fields.Monetary(compute='_compute_kpi_website_sale_total_value')
def _compute_kpi_website_sale_total_value(self):
if not self.env.user.has_group('sales_team.group_sale_salesman_all_leads'):
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()
confirmed_website_sales = self.env['sale.order'].search([
('confirmation_date', '>=', start),
('confirmation_date', '<', end),
('state', 'not in', ['draft', 'cancel', 'sent']),
('team_id.team_type', '=', 'website'),
('company_id', '=', company.id)
])
record.kpi_website_sale_total_value = sum(confirmed_website_sales.mapped('amount_total'))
def compute_kpis_actions(self, company, user):
res = super(Digest, self).compute_kpis_actions(company, user)
res['kpi_website_sale_total'] = 'website.backend_dashboard&menu_id=%s' % self.env.ref('website.menu_website_configuration').id
return res
@@ -0,0 +1,17 @@
<?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.website.sale.order</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_sales']" position="attributes">
<attribute name="string">Sales</attribute>
<attribute name="groups">sales_team.group_sale_salesman_all_leads</attribute>
</xpath>
<xpath expr="//group[@name='kpi_sales']" position="inside">
<field name="kpi_website_sale_total"/>
</xpath>
</field>
</record>
</odoo>