[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:
Denis Vermylen
2017-01-04 16:01:09 +01:00
parent 93bb16367a
commit a95b4a5398
2 changed files with 20 additions and 17 deletions
+19 -1
View File
@@ -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 -16
View File
@@ -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', '&lt;=', (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' &amp;&amp; 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>