From a95b4a539897904af44e76f4fff7e251fd8efaf3 Mon Sep 17 00:00:00 2001 From: Denis Vermylen Date: Wed, 4 Jan 2017 14:07:39 +0100 Subject: [PATCH] [FIX] website_sale: fix abandoned carts action It was checking the partner ID wasn't the public user ID, instead of the public user's partner ID. Date domain was also no applied correctly. The action has been transformed into python method to have access to both flexible datetime constraints + references. --- addons/website_sale/models/crm_team.py | 20 +++++++++++++++++++- addons/website_sale/views/crm_team_views.xml | 17 +---------------- 2 files changed, 20 insertions(+), 17 deletions(-) diff --git a/addons/website_sale/models/crm_team.py b/addons/website_sale/models/crm_team.py index bb8bbb9aac9..f512191d77b 100644 --- a/addons/website_sale/models/crm_team.py +++ b/addons/website_sale/models/crm_team.py @@ -25,7 +25,7 @@ class CrmTeam(models.Model): ('team_id', 'in', website_teams.ids), ('date_order', '<', fields.Datetime.to_string(datetime.now() - relativedelta(hours=1))), ('state', '=', 'draft'), - ('partner_id', '!=', self.env.ref('base.public_user').id), + ('partner_id', '!=', self.env.ref('base.public_partner').id), ('order_line', '!=', False), ], ['amount_total', 'team_id'], ['team_id']) counts = dict((data['team_id'][0], data['team_id_count']) for data in abandoned_carts_data) @@ -38,3 +38,21 @@ class CrmTeam(models.Model): website_teams = self.filtered(lambda team: team.team_type == 'website' and not team.use_quotations) website_teams.update({'dashboard_button_name': _("Online Sales")}) super(CrmTeam, self - website_teams)._compute_dashboard_button_name() + + def get_abandoned_carts(self): + self.ensure_one() + time_constraint = fields.Datetime.to_string(fields.datetime.now() - relativedelta(hours=1)) + return { + 'name': _('Abandoned Carts'), + 'type': 'ir.actions.act_window', + 'view_type': 'form', + 'view_mode': 'tree,form', + 'domain': [('state', '=', 'draft'), ('partner_id', '!=', self.env.ref('base.public_partner').id), ('date_order', '<', time_constraint)], + 'search_view_id': self.env.ref('sale.sale_order_view_search_inherit_sale').id, + 'context': {'search_default_team_id': self.id, 'default_team_id': self.id}, + 'res_model': 'sale.order', + 'help': _('''

+ You can find all abandoned carts here, i.e. the carts generated by your website's visitors from over an hour ago that haven't been confirmed yet.

+

You should send an email to the customers to encourage them!

+ '''), + } diff --git a/addons/website_sale/views/crm_team_views.xml b/addons/website_sale/views/crm_team_views.xml index 7ccd81546d1..727552018a9 100644 --- a/addons/website_sale/views/crm_team_views.xml +++ b/addons/website_sale/views/crm_team_views.xml @@ -1,21 +1,6 @@ - - Abandoned Carts - ir.actions.act_window - sale.order - form - tree,form,calendar,graph,kanban,pivot - - - { - 'search_default_team_id': [active_id], - 'default_team_id': active_id, - } - - - crm.team.kanban crm.team @@ -29,7 +14,7 @@