[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.
This commit is contained in:
@@ -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': _('''<p class="oe_view_nocontent_create">
|
||||
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.</p>
|
||||
<p>You should send an email to the customers to encourage them!</p>
|
||||
'''),
|
||||
}
|
||||
|
||||
@@ -1,21 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<odoo>
|
||||
|
||||
<record id="sale_order_action_abandoned_carts" model="ir.actions.act_window">
|
||||
<field name="name">Abandoned Carts</field>
|
||||
<field name="type">ir.actions.act_window</field>
|
||||
<field name="res_model">sale.order</field>
|
||||
<field name="view_type">form</field>
|
||||
<field name="view_mode">tree,form,calendar,graph,kanban,pivot</field>
|
||||
<field name="search_view_id" ref="sale.sale_order_view_search_inherit_sale"/>
|
||||
<field name="domain" eval="[('state', '=', 'draft'), ('partner_id', '!=', ref('base.public_user')), ('date_order', '<=', (datetime.now() - relativedelta(hours=1)).strftime('%Y-%m-%d %H:%M:%S')), ('order_line', '!=', False)]"/>
|
||||
<field name="context">{
|
||||
'search_default_team_id': [active_id],
|
||||
'default_team_id': active_id,
|
||||
}
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="crm_team_salesteams_view_kanban_inherit_website_sale" model="ir.ui.view">
|
||||
<field name="name">crm.team.kanban</field>
|
||||
<field name="model">crm.team</field>
|
||||
@@ -29,7 +14,7 @@
|
||||
<div class="row" t-if="record.team_type.raw_value == 'website' && record.abandoned_carts_count.raw_value">
|
||||
<div class="col-xs-8">
|
||||
<div>
|
||||
<a name="%(sale_order_action_abandoned_carts)d" type="action" class="o_quotation_view_button">
|
||||
<a name="get_abandoned_carts" type="object">
|
||||
<field name="abandoned_carts_count"/>
|
||||
<t t-if="record.abandoned_carts_count.raw_value != 1">Abandoned Carts</t>
|
||||
<t t-else="">Abandoned Cart</t>
|
||||
|
||||
Reference in New Issue
Block a user