[IMP] sale, website_sale: improve menus, labels and search filters
Specifications: improve menu organization, search filters and groupby, reorder filters, update some field labels. This commit is related to task #1878516 and PR #26929 .
This commit is contained in:
committed by
Thibault Delavallée
parent
8eec468c19
commit
21e5198da1
@@ -32,7 +32,6 @@
|
||||
<field name="date"/>
|
||||
<filter string="Date" name="year" invisible="1" date="date" default_period="this_year"/>
|
||||
<filter name="Quotations" string="Quotations" domain="[('state','=', 'draft')]"/>
|
||||
<filter name="quotation_sent" string="Quotation Sent" domain="[('state', '=', 'sent')]"/>
|
||||
<filter name="Sales" string="Sales Orders" domain="[('state','not in',('draft', 'cancel', 'sent'))]"/>
|
||||
<separator/>
|
||||
<field name="user_id"/>
|
||||
|
||||
@@ -600,8 +600,6 @@
|
||||
<field name="order_line" string="Product" filter_domain="[('order_line.product_id.name', 'ilike', self)]"/>
|
||||
<filter string="My Orders" domain="[('user_id','=',uid)]" name="my_sale_orders_filter"/>
|
||||
<separator/>
|
||||
<filter string="Unread Messages" name="message_needaction" domain="[('message_needaction','=',True)]"/>
|
||||
<separator/>
|
||||
<filter string="My Activities" name="activities_my"
|
||||
domain="[('activity_ids.user_id', '=', uid)]"/>
|
||||
<separator/>
|
||||
@@ -627,30 +625,12 @@
|
||||
<field name="model">sale.order</field>
|
||||
<field name="mode">primary</field>
|
||||
<field name="inherit_id" ref="sale.view_sales_order_filter"/>
|
||||
<field name="arch" type="xml">
|
||||
<xpath expr="//filter[@name='my_sale_orders_filter']" position="after">
|
||||
<separator/>
|
||||
<filter string="Quotations" name="draft" domain="[('state','=','draft')]"/>
|
||||
<filter string="Quotations Sent" name="sent" domain="[('state','=','sent')]"/>
|
||||
<filter string="Sales" name="sales" domain="[('state','in',('sale','done'))]"/>
|
||||
<separator/>
|
||||
<filter string="Creation Date" name="filter_create_date" date="create_date"/>
|
||||
<filter string="Expiration Date" name="filter_validity_date" date="validity_date"/>
|
||||
</xpath>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="sale_order_quotation_view_search_inherit" model="ir.ui.view">
|
||||
<field name="name">sale.order.quotation.search.view.inherit</field>
|
||||
<field name="model">sale.order</field>
|
||||
<field name="mode">primary</field>
|
||||
<field name="inherit_id" ref="sale.view_sales_order_filter"/>
|
||||
<field name="arch" type="xml">
|
||||
<xpath expr="//filter[@name='my_sale_orders_filter']" position="replace">
|
||||
<separator/>
|
||||
<filter string="My Quotations" name="my_quotation" domain="[('state','=','draft'), ('user_id','=',uid)]"/>
|
||||
<separator/>
|
||||
<filter string="Quotations" name="draft" domain="[('state','=','draft')]"/>
|
||||
<filter string="Quotations" name="draft" domain="[('state','in',('draft', 'sent'))]"/>
|
||||
<filter string="Sales Orders" name="sales" domain="[('state','in',('sale','done'))]"/>
|
||||
<separator/>
|
||||
<filter string="Order Date" name="filter_order_date" date="date_order"/>
|
||||
@@ -665,12 +645,11 @@
|
||||
<field name="inherit_id" ref="sale.view_sales_order_filter"/>
|
||||
<field name="arch" type="xml">
|
||||
<xpath expr="//filter[@name='my_sale_orders_filter']" position="after">
|
||||
<filter string="To Invoice" name="to_invoice" domain="[('invoice_status','=','to invoice')]" />
|
||||
<filter string="Upselling" name="upselling" domain="[('invoice_status','=','upselling')]" />
|
||||
</xpath>
|
||||
<xpath expr="//filter[@name='activities_upcoming_all']" position="after">
|
||||
<separator/>
|
||||
<filter string="Confirmation Date" name="confirmation_date_filter" date="confirmation_date"/>
|
||||
<filter string="To Invoice" name="to_invoice" domain="[('invoice_status','=','to invoice')]" />
|
||||
<filter string="To Upsell" name="upselling" domain="[('invoice_status','=','upselling')]" />
|
||||
<separator/>
|
||||
<filter string="Order Date" name="order_date" date="date_order"/>
|
||||
</xpath>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
@@ -29,6 +29,9 @@
|
||||
<xpath expr="//group/filter[@name='user']" position="after">
|
||||
<filter string="Sales Team" name="sales_channel" domain="[]" context="{'group_by':'team_id'}"/>
|
||||
</xpath>
|
||||
<xpath expr="//field[@name='user_id']" position="after">
|
||||
<field name="team_id"/>
|
||||
</xpath>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
|
||||
@@ -308,7 +308,7 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-xs-12 col-lg-6 o_setting_box" id="abandoned_carts_setting" title="Abandoned carts are all carts for which no transaction has been confirmed while the customer has filled in their address. You can find them in *Website > Orders > Abandoned Carts*. From there you can send a recovery email to stimulate the customers to resume their order.">
|
||||
<div class="col-xs-12 col-lg-6 o_setting_box" id="abandoned_carts_setting" title="Abandoned carts are all carts left unconfirmed by website visitors. You can find them in *Website > Orders > Abandoned Carts*. From there you can send recovery emails to visitors who entered their contact details.">
|
||||
<div class="o_setting_left_pane"/>
|
||||
<div class="o_setting_right_pane">
|
||||
<span class="o_form_label">Abandoned Carts</span>
|
||||
|
||||
@@ -4,14 +4,30 @@
|
||||
<field name="name">sale.order.ecommerce.search.view</field>
|
||||
<field name="model">sale.order</field>
|
||||
<field name="inherit_id" ref="sale.view_sales_order_filter"/>
|
||||
<field name="mode">primary</field>
|
||||
<field name="arch" type="xml">
|
||||
<search>
|
||||
<xpath expr="//filter[@name='my_sale_orders_filter']" position="replace">
|
||||
<filter string="Confirmed Orders" name="order_confirmed" domain="[('state', 'in', ('sale', 'done'))]"/>
|
||||
<filter string="Unpaid Orders" name="order_unpaid" domain="[('state', '=', 'sent'), ('team_id.team_type', '=', 'website')]"/>
|
||||
<filter string="Abandoned Carts" name="order_abandoned" domain="[('is_abandoned_cart', '=', True)]"/>
|
||||
<separator/>
|
||||
<filter string="Order Date" name="order_date" date="date_order"/>
|
||||
<separator/>
|
||||
<filter string="From Website" name="from_website" domain="[('team_id.team_type', '=', 'website')]"/>
|
||||
<separator/>
|
||||
<filter string="Recovery Email to Send" name="recovery_email" domain="[('cart_recovery_email_sent', '=', False)]" />
|
||||
</search>
|
||||
</xpath>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="view_sales_order_filter_ecommerce_unpaid" model="ir.ui.view">
|
||||
<field name="name">sale.order.ecommerce.search.unpaid.view</field>
|
||||
<field name="model">sale.order</field>
|
||||
<field name="inherit_id" ref="sale.view_sales_order_filter"/>
|
||||
<field name="mode">primary</field>
|
||||
<field name="arch" type="xml">
|
||||
<xpath expr="//filter[@name='my_sale_orders_filter']" position="attributes">
|
||||
<attribute name="invisible">1</attribute>
|
||||
</xpath>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
@@ -67,6 +83,17 @@
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="view_sales_order_filter_ecommerce_abondand" model="ir.ui.view">
|
||||
<field name="name">sale.order.ecommerce.abondand.view</field>
|
||||
<field name="model">sale.order</field>
|
||||
<field name="arch" type="xml">
|
||||
<search string="Search Abandoned Sales Orders">
|
||||
<filter string="Recovery Email to Send" name="recovery_email" domain="[('cart_recovery_email_sent', '=', False)]" />
|
||||
<filter string="Recovery Email Sent" name="recovery_email_set" domain="[('cart_recovery_email_sent', '=', True)]" />
|
||||
</search>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="action_abandoned_orders_ecommerce" model="ir.actions.act_window">
|
||||
<field name="name">Abandoned Carts</field>
|
||||
<field name="res_model">sale.order</field>
|
||||
@@ -78,8 +105,8 @@
|
||||
<p class="o_view_nocontent_empty_folder">
|
||||
No abandoned carts found
|
||||
</p><p>
|
||||
You'll find here all the carts abandoned by your visitors, if they completed their address.
|
||||
You should send them a recovery email!
|
||||
You'll find here all the carts abandoned by your visitors.
|
||||
If they completed their address, you should send them a recovery email!
|
||||
</p><p>
|
||||
The time to mark a cart as abandoned can be changed in the settings.
|
||||
</p>
|
||||
@@ -121,6 +148,7 @@
|
||||
<field name="domain">[('state', '=', 'sent'), ('team_id.team_type', '=', 'website')]</field>
|
||||
<field name="context" eval="{'show_sale': True, 'create': False}"/>
|
||||
<field name="view_id" ref="sale.view_quotation_tree"/>
|
||||
<field name="search_view_id" ref="view_sales_order_filter_ecommerce_unpaid"/>
|
||||
<field name="help" type="html">
|
||||
<p class="o_view_nocontent_empty_folder">
|
||||
There is no unpaid order from the website yet
|
||||
@@ -138,12 +166,13 @@
|
||||
<field name="domain">[('state', '=', 'draft'), ('order_line', '!=', False), ('partner_id', '!=', context.get('public_partner_id')), ('team_id.team_type', '=', 'website'), ('date_order', '<=', (datetime.datetime.utcnow() - datetime.timedelta(hours=1)).strftime('%Y-%m-%d %H:%M:%S'))]</field>
|
||||
<field name="context" eval="{'show_sale': True, 'create': False, 'public_partner_id': ref('base.public_partner'), 'search_default_recovery_email': True}"/>
|
||||
<field name="view_id" ref="sale.view_quotation_tree"/>
|
||||
<field name="search_view_id" ref="view_sales_order_filter_ecommerce_abondand"/>
|
||||
<field name="help" type="html">
|
||||
<p class="o_view_nocontent_empty_folder">
|
||||
No abandoned carts found
|
||||
</p><p>
|
||||
You'll find here all the carts abandoned by your visitors, if they completed their address.
|
||||
You should send them a recovery email!
|
||||
You'll find here all the carts abandoned by your visitors.
|
||||
If they completed their address, you should send them a recovery email!
|
||||
</p><p>
|
||||
The time to mark a cart as abandoned can be changed in the settings.
|
||||
</p>
|
||||
|
||||
Reference in New Issue
Block a user