mirror of
https://github.com/bringout/oca-ocb-sale.git
synced 2026-04-27 15:52:01 +02:00
19.0 vanilla
This commit is contained in:
parent
79f83631d5
commit
73afc09215
6267 changed files with 1534193 additions and 1130106 deletions
|
|
@ -1,50 +1,15 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<odoo>
|
||||
<template name="Add to Cart Button" id="s_add_to_cart">
|
||||
<div class="s_add_to_cart">
|
||||
<button class="s_add_to_cart_btn disabled btn btn-secondary mb-2">
|
||||
<!--
|
||||
TODO: `.oe_website_sale` is used as a selector in `tracking.js`. This
|
||||
is a temporary solution to load the tracking utilities and will be removed once
|
||||
tracking utilities will be fully integrated into a service.
|
||||
-->
|
||||
<div class="s_add_to_cart oe_website_sale" data-action="add_to_cart">
|
||||
<button type="button" class="s_add_to_cart_btn disabled btn btn-secondary mb-2" data-action="add_to_cart">
|
||||
<i class="fa fa-cart-plus me-2"/>Add to Cart
|
||||
</button>
|
||||
</div>
|
||||
</template>
|
||||
<template id="s_add_to_cart_options" inherit_id="website.snippet_options">
|
||||
<xpath expr="." position="inside">
|
||||
<div data-js="AddToCart"
|
||||
data-selector=".s_add_to_cart">
|
||||
<we-row>
|
||||
<we-many2one string="Product"
|
||||
data-model="product.template"
|
||||
data-set-product-template=""
|
||||
data-name="product_template_picker_opt"
|
||||
data-no-preview="true"
|
||||
data-domain='[["is_published", "=", true], ["sale_ok", "=", true]]'
|
||||
/>
|
||||
<we-button data-name="product_template_reset_opt"
|
||||
class="reset-product-picker align-self-end fa fa-fw fa-times">
|
||||
</we-button>
|
||||
</we-row>
|
||||
<we-row>
|
||||
<we-many2one-default-message string="Variant" class="o_we_sublevel_1"
|
||||
data-model="product.product"
|
||||
data-set-product-variant=""
|
||||
data-name="product_variant_picker_opt"
|
||||
data-no-preview="true"
|
||||
data-default-message="Visitor's Choice"
|
||||
/>
|
||||
<we-button data-name="product_variant_reset_opt"
|
||||
class="reset-variant-picker align-self-end fa fa-fw fa-times">
|
||||
</we-button>
|
||||
</we-row>
|
||||
<we-select data-name="action_picker_opt" string="Action" data-no-preview="true">
|
||||
<we-button data-set-action="add_to_cart">Add to Cart</we-button>
|
||||
<we-button data-set-action="buy_now">Buy Now</we-button>
|
||||
</we-select>
|
||||
</div>
|
||||
</xpath>
|
||||
</template>
|
||||
<record id="website_sale.s_add_to_cart_000_js" model="ir.asset">
|
||||
<field name="name">Add to Cart 000 JS</field>
|
||||
<field name="bundle">web.assets_frontend</field>
|
||||
<field name="path">website_sale/static/src/snippets/s_add_to_cart/000.js</field>
|
||||
</record>
|
||||
</odoo>
|
||||
|
|
|
|||
|
|
@ -0,0 +1,28 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<odoo>
|
||||
<template
|
||||
id="website_sale.s_dynamic_snippet_category_template"
|
||||
inherit_id="website.s_dynamic_snippet_template"
|
||||
primary="True"
|
||||
>
|
||||
<xpath expr="//section[contains(@t-attf-class, 's_dynamic_snippet_title')]/*" position="replace">
|
||||
<div>
|
||||
<h2 class="h3">Crafting Beautiful Spaces</h2>
|
||||
<p class="lead">Designing elegant, inviting environments that inspire and delight.</p>
|
||||
</div>
|
||||
</xpath>
|
||||
</template>
|
||||
|
||||
<template id="s_dynamic_snippet_category_list" name="Category List">
|
||||
<t t-call="website_sale.s_dynamic_snippet_category_template">
|
||||
<t t-set="snippet_name" t-value="'s_dynamic_snippet_category_list'"/>
|
||||
<t
|
||||
t-set="snippet_classes"
|
||||
t-value="'oe_website_sale s_dynamic_category_clickable_items
|
||||
s_dynamic_snippet_category s_dynamic_category_no_arrows'"
|
||||
/>
|
||||
<t t-set="main_page_url" t-value="'/shop'"/>
|
||||
<t t-call="website_sale.s_dynamic_snippet_category_preview_data"/>
|
||||
</t>
|
||||
</template>
|
||||
</odoo>
|
||||
|
|
@ -0,0 +1,135 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<odoo>
|
||||
<template id="s_dynamic_snippet_category_preview_data" name="Category List Preview Data">
|
||||
<div
|
||||
class="o_category_container d-grid gap-2 rounded-2"
|
||||
contenteditable="false"
|
||||
style="--DynamicCategory-columns: 4; grid-auto-rows: minmax(5vh, auto);"
|
||||
>
|
||||
<div class="d-contents o_not_editable" contenteditable="false">
|
||||
<div
|
||||
class="s_dynamic_category_item bg-black position-relative overflow-hidden"
|
||||
role="article"
|
||||
style="grid-row: span 2;"
|
||||
>
|
||||
<img
|
||||
name="category_image"
|
||||
alt="Desks"
|
||||
class="o_category_image img-fluid position-absolute w-100 h-100 object-fit-cover"
|
||||
src="/website_sale/static/src/img/categories/desks.jpg"
|
||||
/>
|
||||
<div
|
||||
class="position-relative w-100 h-100 p-3 bg-black-25"
|
||||
>
|
||||
<h4 class="position-absolute start-50 top-50 translate-middle">Desks</h4>
|
||||
</div>
|
||||
</div>
|
||||
<div
|
||||
class="s_dynamic_category_item bg-black position-relative overflow-hidden"
|
||||
role="article"
|
||||
style="grid-row: span 2;"
|
||||
>
|
||||
<img
|
||||
name="category_image"
|
||||
alt="Furnitures"
|
||||
class="o_category_image img-fluid position-absolute w-100 h-100 object-fit-cover"
|
||||
src="/website_sale/static/src/img/categories/furnitures.jpg"
|
||||
/>
|
||||
<div class="position-relative w-100 h-100 p-3 bg-black-25">
|
||||
<h4 class="position-absolute start-50 top-50 translate-middle">Furnitures</h4>
|
||||
</div>
|
||||
</div>
|
||||
<div
|
||||
class="s_dynamic_category_item bg-black position-relative overflow-hidden"
|
||||
role="article"
|
||||
style="grid-row: span 2;"
|
||||
>
|
||||
<img
|
||||
name="category_image"
|
||||
alt="Boxes"
|
||||
class="o_category_image img-fluid position-absolute w-100 h-100 object-fit-cover"
|
||||
src="/website_sale/static/src/img/categories/boxes.jpg"
|
||||
/>
|
||||
<div class="position-relative w-100 h-100 p-3 bg-black-25">
|
||||
<h4 class="position-absolute start-50 top-50 translate-middle">Boxes</h4>
|
||||
</div>
|
||||
</div>
|
||||
<div
|
||||
class="s_dynamic_category_item bg-black position-relative overflow-hidden"
|
||||
role="article"
|
||||
style="grid-row: span 2;"
|
||||
>
|
||||
<img
|
||||
name="category_image"
|
||||
alt="Drawers"
|
||||
class="o_category_image img-fluid position-absolute w-100 h-100 object-fit-cover"
|
||||
src="/website_sale/static/src/img/categories/drawers.jpg"
|
||||
/>
|
||||
<div class="position-relative w-100 h-100 p-3 bg-black-25">
|
||||
<h4 class="position-absolute start-50 top-50 translate-middle">Drawers</h4>
|
||||
</div>
|
||||
</div>
|
||||
<div
|
||||
class="s_dynamic_category_item position-relative bg-black overflow-hidden"
|
||||
role="article"
|
||||
style="grid-row: span 2;"
|
||||
>
|
||||
<img
|
||||
name="category_image"
|
||||
alt="Cabinets"
|
||||
class="o_category_image img-fluid position-absolute w-100 h-100 object-fit-cover"
|
||||
src="/website_sale/static/src/img/categories/cabinets.jpg"
|
||||
/>
|
||||
<div class="position-relative w-100 h-100 p-3 bg-black-25">
|
||||
<h4 class="position-absolute start-50 top-50 translate-middle">Cabinets</h4>
|
||||
</div>
|
||||
</div>
|
||||
<div
|
||||
class="s_dynamic_category_item position-relative bg-black overflow-hidden"
|
||||
role="article"
|
||||
style="grid-row: span 2;"
|
||||
>
|
||||
<img
|
||||
name="category_image"
|
||||
alt="Bins"
|
||||
class="o_category_image img-fluid position-absolute w-100 h-100 object-fit-cover"
|
||||
src="/website_sale/static/src/img/categories/bins.jpg"
|
||||
/>
|
||||
<div class="position-relative w-100 h-100 p-3 bg-black-25">
|
||||
<h4 class="position-absolute start-50 top-50 translate-middle">Bins</h4>
|
||||
</div>
|
||||
</div>
|
||||
<div
|
||||
class="s_dynamic_category_item position-relative bg-black overflow-hidden"
|
||||
role="article"
|
||||
style="grid-row: span 2;"
|
||||
>
|
||||
<img
|
||||
name="category_image"
|
||||
alt="Lamps"
|
||||
class="o_category_image img-fluid position-absolute w-100 h-100 object-fit-cover"
|
||||
src="/website_sale/static/src/img/categories/lamps.jpg"
|
||||
/>
|
||||
<div class="position-relative w-100 h-100 p-3 bg-black-25">
|
||||
<h4 class="position-absolute start-50 top-50 translate-middle">Lamps</h4>
|
||||
</div>
|
||||
</div>
|
||||
<div
|
||||
class="s_dynamic_category_item position-relative bg-black overflow-hidden"
|
||||
role="article"
|
||||
style="grid-row: span 2;"
|
||||
>
|
||||
<img
|
||||
name="category_image"
|
||||
alt="Services"
|
||||
class="o_category_image img-fluid position-absolute w-100 h-100 object-fit-cover"
|
||||
src="/website_sale/static/src/img/categories/services.jpg"
|
||||
/>
|
||||
<div class="position-relative w-100 h-100 p-3 bg-black-25">
|
||||
<h4 class="position-absolute start-50 top-50 translate-middle">Services</h4>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
</odoo>
|
||||
|
|
@ -1,46 +1,40 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<odoo>
|
||||
<!-- Snippet -->
|
||||
<template id="s_dynamic_snippet_products" name="Products">
|
||||
<t t-call="website.s_dynamic_snippet_template">
|
||||
<t t-set="snippet_name" t-value="'s_dynamic_snippet_products'"/>
|
||||
|
||||
<t
|
||||
t-set="default_design_classes"
|
||||
t-value="request and request.env['website'].get_current_website().shop_opt_products_design_classes or ''"
|
||||
/>
|
||||
<t
|
||||
t-if="'o_wsale_products_opt_layout_catalog' not in default_design_classes"
|
||||
t-set="default_design_classes"
|
||||
t-value="'o_wsale_products_opt_name_color_regular
|
||||
o_wsale_products_opt_thumb_cover o_wsale_products_opt_img_secondary_show
|
||||
o_wsale_products_opt_img_hover_zoom_out_light o_wsale_products_opt_cc1
|
||||
o_wsale_products_opt_rounded_2 o_wsale_products_opt_layout_catalog
|
||||
o_wsale_products_opt_design_thumbs o_wsale_products_opt_has_description
|
||||
o_wsale_products_opt_name_size_body o_wsale_products_opt_actions_onhover
|
||||
o_wsale_products_opt_wishlist_fixed o_wsale_products_opt_actions_theme
|
||||
o_wsale_products_opt_has_cta'"
|
||||
/>
|
||||
<!--
|
||||
TODO: `.oe_website_sale` is used as a selector in `tracking.js`. This
|
||||
is a temporary solution to load the tracking utilities and will be removed once
|
||||
tracking utilities will be fully integrated into a service.
|
||||
-->
|
||||
<t
|
||||
t-set="snippet_classes"
|
||||
t-value="'oe_website_sale ' + default_design_classes"
|
||||
/>
|
||||
<t t-set="main_page_url" t-value="'/shop'"/>
|
||||
<t t-call="website_sale.s_dynamic_snippet_products_preview_data"/>
|
||||
</t>
|
||||
</template>
|
||||
<template id="s_dynamic_snippet_products_options" inherit_id="website.snippet_options">
|
||||
<xpath expr="." position="inside">
|
||||
<t t-call="website.dynamic_snippet_carousel_options_template">
|
||||
<t t-set="snippet_name" t-value="'dynamic_snippet_products'"/>
|
||||
<t t-set="snippet_selector" t-value="'.s_dynamic_snippet_products'"/>
|
||||
</t>
|
||||
</xpath>
|
||||
</template>
|
||||
<template id="s_dynamic_snippet_products_template_options" inherit_id="website.s_dynamic_snippet_options_template">
|
||||
<xpath expr="//we-select[@data-name='filter_opt']" position="after">
|
||||
<t t-if="snippet_name == 'dynamic_snippet_products'">
|
||||
<we-select string="Category" data-name="product_category_opt" data-attribute-name="productCategoryId" data-no-preview="true">
|
||||
<we-button data-select-data-attribute="all">All Products</we-button>
|
||||
<we-button data-select-data-attribute="current">Current Category or All</we-button>
|
||||
</we-select>
|
||||
<t t-set="domain" t-translation="off">["|", ["website_id", "=", false], ["website_id", "=", <t t-out="current_website.id"/>]]</t>
|
||||
<we-many2many string="Tags"
|
||||
data-name="product_tag_opt"
|
||||
data-attribute-name="productTagIds"
|
||||
data-no-preview="true"
|
||||
data-model="product.tag"
|
||||
t-att-data-domain="domain"
|
||||
data-allow-delete="true"
|
||||
data-fakem2m="true"
|
||||
data-select-data-attribute=""/>
|
||||
<we-input string="Product names" class="o_we_large" data-name="product_names_opt"
|
||||
data-attribute-name="productNames" data-no-preview="true" data-select-data-attribute=""
|
||||
placeholder="e.g. lamp,bin" title="Comma-separated list of parts of product names, barcodes or internal reference"/>
|
||||
</t>
|
||||
</xpath>
|
||||
</template>
|
||||
|
||||
<record id="website_sale.s_dynamic_snippet_products_000_js" model="ir.asset">
|
||||
<field name="name">Dynamic snippet products 000 JS</field>
|
||||
<field name="bundle">web.assets_frontend</field>
|
||||
<field name="path">website_sale/static/src/snippets/s_dynamic_snippet_products/000.js</field>
|
||||
</record>
|
||||
<!-- Multi record snippets (coming soon...) -->
|
||||
<!-- Single record snippets (coming soon...) -->
|
||||
|
||||
</odoo>
|
||||
|
|
|
|||
|
|
@ -0,0 +1,95 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<odoo>
|
||||
<template id="s_dynamic_snippet_products_preview_data" name="Products Preview Data">
|
||||
<div class="carousel slide s_dialog_preview">
|
||||
<div class="carousel-inner row w-100 mx-auto">
|
||||
<div role="option" class="carousel-item active" style="min-height: 357.875px;">
|
||||
<div class="row">
|
||||
<div class="d-flex flex-grow-0 flex-shrink-0 col-3">
|
||||
<div class="o_carousel_product_card bg-transparent w-100 card border-0">
|
||||
<a class="o_carousel_product_img_link o_dynamic_product_hovered stretched-link" href="#">
|
||||
<div class="overflow-hidden rounded">
|
||||
<img class="card-img-top o_img_product_square o_img_product_cover h-auto" loading="lazy" src="/website_sale/static/src/img/product_previews/product_1.jpg"/>
|
||||
</div>
|
||||
</a>
|
||||
<div class="o_carousel_product_card_body d-flex flex-wrap flex-column justify-content-between h-100 p-3">
|
||||
<div class="h6 card-title">Three-Seat Sofa</div>
|
||||
<div>
|
||||
<div class="mt-2">
|
||||
<span class="fw-bold" name="product_price" data-oe-type="monetary" data-oe-expression="data['price']">
|
||||
<span class="oe_currency_value">1,500.00</span>
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="d-flex flex-grow-0 flex-shrink-0 col-3">
|
||||
<div class="o_carousel_product_card bg-transparent w-100 card border-0">
|
||||
<a class="o_carousel_product_img_link o_dynamic_product_hovered stretched-link" href="#">
|
||||
<div class="overflow-hidden rounded">
|
||||
<img class="card-img-top o_img_product_square o_img_product_cover h-auto" loading="lazy" src="/website_sale/static/src/img/product_previews/product_2.jpg" alt="Warranty (2 year)"/>
|
||||
</div>
|
||||
</a>
|
||||
<div class="o_carousel_product_card_body d-flex flex-wrap flex-column justify-content-between h-100 p-3">
|
||||
<div class="h6 card-title">Customizable Desk</div>
|
||||
<div>
|
||||
<div class="mt-2">
|
||||
<span class="fw-bold" name="product_price" data-oe-type="monetary" data-oe-expression="data['price']">
|
||||
<span class="oe_currency_value">750.00</span>
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="d-flex flex-grow-0 flex-shrink-0 col-3">
|
||||
<div class="o_carousel_product_card bg-transparent w-100 card border-0">
|
||||
<a class="o_carousel_product_img_link o_dynamic_product_hovered stretched-link" href="#">
|
||||
<div class="overflow-hidden rounded">
|
||||
<img class="card-img-top o_img_product_square o_img_product_cover h-auto" loading="lazy" src="/website_sale/static/src/img/product_previews/product_3.jpg" alt="Warranty (2 year)"/>
|
||||
</div>
|
||||
</a>
|
||||
<div class="o_carousel_product_card_body d-flex flex-wrap flex-column justify-content-between h-100 p-3">
|
||||
<div class="h6 card-title">Conference Chair</div>
|
||||
<div>
|
||||
<div class="mt-2">
|
||||
<span class="fw-bold" name="product_price" data-oe-type="monetary" data-oe-expression="data['price']">
|
||||
<span class="oe_currency_value">33.00</span>
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="d-flex flex-grow-0 flex-shrink-0 col-3">
|
||||
<div class="o_carousel_product_card bg-transparent w-100 card border-0">
|
||||
<a class="o_carousel_product_img_link o_dynamic_product_hovered stretched-link" href="#">
|
||||
<div class="overflow-hidden rounded">
|
||||
<img class="card-img-top o_img_product_square o_img_product_cover h-auto" loading="lazy" src="/website_sale/static/src/img/product_previews/product_4.jpg" alt="Warranty (2 year)"/>
|
||||
</div>
|
||||
</a>
|
||||
<div class="o_carousel_product_card_body d-flex flex-wrap flex-column justify-content-between h-100 p-3">
|
||||
<div class="h6 card-title">Cabinet with Doors</div>
|
||||
<div>
|
||||
<div class="mt-2">
|
||||
<span class="fw-bold" name="product_price" data-oe-type="monetary" data-oe-expression="data['price']">
|
||||
<span class="oe_currency_value">140.00</span>
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<a class="carousel-control-prev" data-bs-slide="prev" role="button" aria-label="Previous" title="Previous" href="#s_dynamic_snippet_1">
|
||||
<span class="fa fa-chevron-circle-left fa-2x"></span>
|
||||
</a>
|
||||
<a class="carousel-control-next" data-bs-slide="next" role="button" aria-label="Next" title="Next" href="#s_dynamic_snippet_1">
|
||||
<span class="fa fa-chevron-circle-right fa-2x"></span>
|
||||
</a>
|
||||
</div>
|
||||
</template>
|
||||
</odoo>
|
||||
|
|
@ -0,0 +1,48 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<odoo>
|
||||
|
||||
<template
|
||||
id="website_sale.s_mega_menu_big_icons_subtitles"
|
||||
name="eCommerce: Menu - Big icons & subtitles"
|
||||
groups="base.group_user"
|
||||
>
|
||||
<section
|
||||
class="s_mega_menu_big_icons_subtitles pt24 pb24 o_colored_level o_cc o_cc1"
|
||||
data-oe-shape-data="{'shape':'html_builder/Grids/07','colors':{'c5':'o-color-3'},'flip':[]}"
|
||||
>
|
||||
<div class="o_we_shape o_html_builder_Grids_07" style="background-image: url('/html_editor/shape/html_builder/Grids/07.svg?c5=o-color-3');"/>
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
<t
|
||||
t-foreach="request.env['product.public.category'].search([
|
||||
('parent_id', '=', False), ('has_published_products', '=', True),
|
||||
], limit=9)"
|
||||
t-as="category"
|
||||
>
|
||||
<div class="col-12 col-lg-4">
|
||||
<nav class="nav flex-column w-100">
|
||||
<a
|
||||
t-att-href="'/shop/category/%s' % category.id"
|
||||
class="col-lg-4 nav-link px-2 my-2 rounded text-wrap"
|
||||
>
|
||||
<div class="d-flex align-items-center">
|
||||
<img
|
||||
t-if="category.image_1920"
|
||||
t-att-src="image_data_uri(category.image_1920)"
|
||||
class="fa rounded rounded-circle shadow me-3"
|
||||
alt=""
|
||||
/>
|
||||
<div class="flex-grow-1">
|
||||
<h4 class="mt-0 mb-0" t-esc="category.name"/>
|
||||
</div>
|
||||
</div>
|
||||
</a>
|
||||
</nav>
|
||||
</div>
|
||||
</t>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
</template>
|
||||
|
||||
</odoo>
|
||||
|
|
@ -0,0 +1,40 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<odoo>
|
||||
|
||||
<template
|
||||
id="website_sale.s_mega_menu_cards"
|
||||
name="eCommerce: Menu - Cards"
|
||||
groups="base.group_user"
|
||||
>
|
||||
<section class="s_mega_menu_cards pt16 pb16 o_colored_level o_cc o_cc1">
|
||||
<div class="container">
|
||||
<nav class="row">
|
||||
<t
|
||||
t-foreach="request.env['product.public.category'].search([
|
||||
('parent_id', '=', False), ('has_published_products', '=', True),
|
||||
], limit=8)"
|
||||
t-as="category"
|
||||
>
|
||||
<div class="col-12 col-lg-3">
|
||||
<a
|
||||
t-att-href="'/shop/category/%s' % category.id"
|
||||
class="nav-link rounded text-wrap text-center p-3"
|
||||
>
|
||||
<div class="mb-3 rounded shadow" style="height:80px">
|
||||
<img
|
||||
t-if="category.image_1920"
|
||||
t-att-src="image_data_uri(category.image_1920)"
|
||||
class="img-fluid w-100 h-100 object-fit-cover"
|
||||
alt=""
|
||||
/>
|
||||
</div>
|
||||
<h4 t-esc="category.name"/>
|
||||
</a>
|
||||
</div>
|
||||
</t>
|
||||
</nav>
|
||||
</div>
|
||||
</section>
|
||||
</template>
|
||||
|
||||
</odoo>
|
||||
|
|
@ -0,0 +1,51 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<odoo>
|
||||
|
||||
<template
|
||||
id="website_sale.s_mega_menu_menu_image_menu"
|
||||
name="eCommerce: Menu - Image - Menu"
|
||||
groups="base.group_user"
|
||||
>
|
||||
<section class="s_mega_menu_menu_image_menu py-4 o_colored_level o_cc o_cc1">
|
||||
<div class="container">
|
||||
<div class="row align-items-center">
|
||||
<t
|
||||
t-foreach="request.env['product.public.category'].search(
|
||||
[('parent_id', '=', False), ('has_published_products', '=', True)],
|
||||
limit=2,
|
||||
)"
|
||||
t-as="category"
|
||||
>
|
||||
<div class="col-12 col-lg-4 py-2 text-center">
|
||||
<h4>
|
||||
<a
|
||||
t-att-href="'/shop/category/%s' % category.id"
|
||||
class="nav-link p-0 text-black"
|
||||
t-esc="category.name"
|
||||
/>
|
||||
</h4>
|
||||
<nav class="nav flex-column">
|
||||
<t t-foreach="category.child_id.filtered('has_published_products')"
|
||||
t-as="sub_category">
|
||||
<a
|
||||
t-att-href="'/shop/category/%s' % sub_category.id"
|
||||
class="nav-link"
|
||||
t-esc="sub_category.name"
|
||||
/>
|
||||
</t>
|
||||
</nav>
|
||||
</div>
|
||||
<div t-if="not category_last" class="col-12 col-lg-4 py-2 text-center">
|
||||
<img
|
||||
class="img-fluid"
|
||||
src="/web/image/website.s_mega_menu_menu_image_menu_default_image"
|
||||
alt="Mega menu default image"
|
||||
/>
|
||||
</div>
|
||||
</t>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
</template>
|
||||
|
||||
</odoo>
|
||||
|
|
@ -0,0 +1,52 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<odoo>
|
||||
|
||||
<template
|
||||
id="website_sale.s_mega_menu_images_subtitles"
|
||||
name="eCommerce: Menu - images & subtitles"
|
||||
groups="base.group_user"
|
||||
>
|
||||
<section class="s_mega_menu_images_subtitles pt16 pb16 o_colored_level o_cc o_cc1">
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
<div class="col-12 col-lg-8">
|
||||
<nav class="nav d-flex">
|
||||
<t
|
||||
t-foreach="request.env['product.public.category'].search([
|
||||
('parent_id', '=', False), ('has_published_products', '=', True)
|
||||
], limit=8)"
|
||||
t-as="category"
|
||||
>
|
||||
<a
|
||||
t-att-href="'/shop/category/%s' % category.id"
|
||||
class="col-lg-6 nav-link px-2 rounded text-wrap"
|
||||
>
|
||||
<div class="d-flex">
|
||||
<img
|
||||
t-if="category.image_1920"
|
||||
t-att-src="image_data_uri(category.image_1920)"
|
||||
class="me-3 rounded shadow"
|
||||
alt=""
|
||||
/>
|
||||
<div class="flex-grow-1 align-content-center">
|
||||
<h4 class="mt-0 mb-0" t-esc="category.name"/>
|
||||
</div>
|
||||
</div>
|
||||
</a>
|
||||
</t>
|
||||
</nav>
|
||||
</div>
|
||||
<div class="col-12 col-lg-4 py-2">
|
||||
<img src="/web/image/website.s_mega_menu_images_subtitles_default_image_7" class="mb-3 rounded shadow img-fluid" alt=""/>
|
||||
<h4>The team</h4>
|
||||
<p class="text-muted small">
|
||||
Created in 2021, the company is young and dynamic. Discover the composition of the team and their skills.
|
||||
</p>
|
||||
<a href="#" class="btn btn-primary">Discover our team</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
</template>
|
||||
|
||||
</odoo>
|
||||
|
|
@ -0,0 +1,48 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<odoo>
|
||||
|
||||
<template
|
||||
id="website_sale.s_mega_menu_little_icons"
|
||||
name="eCommerce: Menu - Little icons"
|
||||
groups="base.group_user"
|
||||
>
|
||||
<section class="s_mega_menu_little_icons overflow-hidden o_colored_level o_cc o_cc1">
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
<div class="col-lg-9 py-2 align-content-center">
|
||||
<nav class="nav col-12 d-flex">
|
||||
<t
|
||||
t-foreach="request.env['product.public.category'].search([
|
||||
('parent_id', '=', False), ('has_published_products', '=', True)
|
||||
], limit=9)"
|
||||
t-as="category"
|
||||
>
|
||||
<a
|
||||
t-att-href="'/shop/category/%s' % category.id"
|
||||
class="col-lg-4 nav-link px-2 rounded text-wrap"
|
||||
>
|
||||
<img
|
||||
t-if="category.image_1920"
|
||||
t-att-src="image_data_uri(category.image_1920)"
|
||||
class="fa fa-fw me-2"
|
||||
alt=""
|
||||
/>
|
||||
<b t-esc="category.name"/>
|
||||
</a>
|
||||
</t>
|
||||
</nav>
|
||||
</div>
|
||||
<div class="col-lg-3 p-4 s_mega_menu_gray_area">
|
||||
<h4>The team</h4>
|
||||
<p class="text-muted small">
|
||||
Created in 2021, the company is young and dynamic. Discover the composition of the team and their skills.
|
||||
</p>
|
||||
<a href="#" class="btn btn-primary">Discover our team</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
</template>
|
||||
|
||||
|
||||
</odoo>
|
||||
|
|
@ -0,0 +1,95 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<odoo>
|
||||
|
||||
<template
|
||||
id="website_sale.s_mega_menu_menus_logos"
|
||||
name="eCommerce: Menus & logos"
|
||||
groups="base.group_user"
|
||||
>
|
||||
<section class="s_mega_menu_menus_logos overflow-hidden o_colored_level o_cc o_cc1">
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
<div class="col-12 col-lg-8">
|
||||
<div class="row py-3 h-100">
|
||||
<t
|
||||
t-foreach="request.env['product.public.category'].search([
|
||||
('parent_id', '=', False), ('has_published_products', '=', True)
|
||||
], limit=6)"
|
||||
t-as="category"
|
||||
>
|
||||
<div class="col-12 col-lg-4 py-2">
|
||||
<h4>
|
||||
<a
|
||||
t-att-href="'/shop/category/%s' % category.id"
|
||||
class="col-lg-4 nav-link text-black p-0"
|
||||
t-esc="category.name"
|
||||
/>
|
||||
</h4>
|
||||
<nav class="nav flex-column">
|
||||
<t t-foreach="category.child_id.filtered('has_published_products')"
|
||||
t-as="sub_category">
|
||||
<a
|
||||
t-att-href="'/shop/category/%s' % sub_category.id"
|
||||
class="nav-link px-0"
|
||||
t-esc="sub_category.name"
|
||||
/>
|
||||
</t>
|
||||
</nav>
|
||||
</div>
|
||||
</t>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-12 col-lg-4 py-4 d-flex align-items-center justify-content-center s_mega_menu_gray_area">
|
||||
<a href="#" class="nav-link text-center px-0" data-name="Menu Item">
|
||||
<img src="/web/image/website.s_mega_menu_menus_logos_default_image" class="mb-3 rounded shadow img-fluid" alt=""/>
|
||||
<h4>Spring collection has arrived!</h4>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="s_mega_menu_menus_logos_wrapper border-top">
|
||||
<div class="container">
|
||||
<div class="row py-3">
|
||||
<div class="col-4 col-lg-2">
|
||||
<img
|
||||
src="/web/image/website.s_mega_menu_menus_logos_default_logo_1"
|
||||
class="img-fluid"
|
||||
alt=""/>
|
||||
</div>
|
||||
<div class="col-4 col-lg-2">
|
||||
<img
|
||||
src="/web/image/website.s_mega_menu_menus_logos_default_logo_2"
|
||||
class="img-fluid"
|
||||
alt=""/>
|
||||
</div>
|
||||
<div class="col-4 col-lg-2">
|
||||
<img
|
||||
src="/web/image/website.s_mega_menu_menus_logos_default_logo_3"
|
||||
class="img-fluid"
|
||||
alt=""/>
|
||||
</div>
|
||||
<div class="col-4 col-lg-2">
|
||||
<img
|
||||
src="/web/image/website.s_mega_menu_menus_logos_default_logo_4"
|
||||
class="img-fluid"
|
||||
alt=""/>
|
||||
</div>
|
||||
<div class="col-4 col-lg-2">
|
||||
<img
|
||||
src="/web/image/website.s_mega_menu_menus_logos_default_logo_5"
|
||||
class="img-fluid"
|
||||
alt=""/>
|
||||
</div>
|
||||
<div class="col-4 col-lg-2">
|
||||
<img
|
||||
src="/web/image/website.s_mega_menu_menus_logos_default_logo_6"
|
||||
class="img-fluid"
|
||||
alt=""/>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
</template>
|
||||
|
||||
</odoo>
|
||||
|
|
@ -0,0 +1,43 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<odoo>
|
||||
|
||||
<template
|
||||
id="website_sale.s_mega_menu_multi_menus"
|
||||
name="eCommerce: Multi-Menus"
|
||||
groups="base.group_user"
|
||||
>
|
||||
<section class="s_mega_menu_multi_menus py-4 o_colored_level o_cc o_cc1">
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
<t
|
||||
t-foreach="request.env['product.public.category'].search([
|
||||
('parent_id', '=', False), ('has_published_products', '=', True),
|
||||
], limit=4)"
|
||||
t-as="category"
|
||||
>
|
||||
<div class="col-12 col-sm py-2 text-center">
|
||||
<h4>
|
||||
<a
|
||||
t-att-href="'/shop/category/%s' % category.id"
|
||||
class="nav-link p-0 text-black"
|
||||
t-esc="category.name"
|
||||
/>
|
||||
</h4>
|
||||
<nav class="nav flex-column">
|
||||
<t t-foreach="category.child_id.filtered('has_published_products')"
|
||||
t-as="sub_category">
|
||||
<a
|
||||
t-att-href="'/shop/category/%s' % sub_category.id"
|
||||
class="nav-link"
|
||||
t-esc="sub_category.name"
|
||||
/>
|
||||
</t>
|
||||
</nav>
|
||||
</div>
|
||||
</t>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
</template>
|
||||
|
||||
</odoo>
|
||||
|
|
@ -0,0 +1,47 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<odoo>
|
||||
|
||||
<template
|
||||
id="website_sale.s_mega_menu_odoo_menu"
|
||||
name="eCommerce: Odoo Menu"
|
||||
groups="base.group_user"
|
||||
>
|
||||
<section class="s_mega_menu_odoo_menu pt16 o_colored_level o_cc o_cc1">
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
<t
|
||||
t-foreach="request.env['product.public.category'].search([
|
||||
('parent_id', '=', False), ('has_published_products', '=', True),
|
||||
], limit=4)"
|
||||
t-as="category"
|
||||
>
|
||||
<div class="col-12 col-lg-3 pt16 pb24">
|
||||
<h4 class="h5 fw-bold mt-0">
|
||||
<a
|
||||
t-att-href="'/shop/category/%s' % category.id"
|
||||
class="nav-link p-0 text-black"
|
||||
t-esc="category.name"
|
||||
/>
|
||||
</h4>
|
||||
<div class="s_hr pt4 pb16">
|
||||
<hr class="w-100 mx-auto"
|
||||
style="border-top-width: 2px; border-top-color: var(--primary);"
|
||||
/>
|
||||
</div>
|
||||
<nav class="nav flex-column">
|
||||
<t t-foreach="category.child_id.filtered('has_published_products')"
|
||||
t-as="sub_category">
|
||||
<a
|
||||
t-att-href="'/shop/category/%s' % sub_category.id"
|
||||
class="nav-link px-0"
|
||||
t-esc="sub_category.name"/>
|
||||
</t>
|
||||
</nav>
|
||||
</div>
|
||||
</t>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
</template>
|
||||
|
||||
</odoo>
|
||||
|
|
@ -0,0 +1,48 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<odoo>
|
||||
|
||||
<template
|
||||
id="website_sale.s_mega_menu_thumbnails"
|
||||
name="eCommerce: Menu - Thumbnails"
|
||||
groups="base.group_user"
|
||||
>
|
||||
<section class="s_mega_menu_thumbnails pt24 o_colored_level o_cc o_cc1">
|
||||
<div class="container">
|
||||
<div class="row ustify-content-center">
|
||||
<t t-set="counter" t-value="0"/>
|
||||
<t
|
||||
t-foreach="request.env['product.public.category'].search([
|
||||
('parent_id', '=', False), ('has_published_products', '=', True),
|
||||
], limit=10)"
|
||||
t-as="category"
|
||||
>
|
||||
<t t-set="counter" t-value="counter + 1"/>
|
||||
<t t-if="(counter - 1) % 5 == 0 and counter != 1">
|
||||
<div class="w-100 d-none d-lg-block"></div>
|
||||
</t>
|
||||
<div class="col-6 col-lg-2 text-center py-2">
|
||||
<a
|
||||
t-att-href="'/shop/category/%s' % category.id"
|
||||
class="nav-link p-0"
|
||||
>
|
||||
<img
|
||||
t-if="category.image_1920"
|
||||
t-att-src="image_data_uri(category.image_1920)"
|
||||
class="img-fluid rounded shadow"
|
||||
alt=""
|
||||
/>
|
||||
<br/>
|
||||
<span class="d-block p-2 small">
|
||||
<b>
|
||||
<t t-esc="category.name"/>
|
||||
</b>
|
||||
</span>
|
||||
</a>
|
||||
</div>
|
||||
</t>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
</template>
|
||||
|
||||
</odoo>
|
||||
|
|
@ -3,346 +3,11 @@
|
|||
|
||||
<template id="snippets" inherit_id="website.snippets" name="e-commerce snippets">
|
||||
<xpath expr="//t[@id='sale_products_hook']" position="replace">
|
||||
<t t-snippet="website_sale.s_dynamic_snippet_products" string="Products" t-thumbnail="/website_sale/static/src/img/snippets_thumbs/s_dynamic_products.svg"/>
|
||||
<t t-snippet="website_sale.s_dynamic_snippet_products" string="Products" label="Dynamic Content" group="catalog"/>
|
||||
<t t-snippet="website_sale.s_dynamic_snippet_category_list" string="Category List" label="Dynamic Content" group="catalog"/>
|
||||
</xpath>
|
||||
<xpath expr="//t[@id='snippet_add_to_cart_hook']" position="replace">
|
||||
<t t-snippet="website_sale.s_add_to_cart" string="Add to Cart Button" t-thumbnail="/website/static/src/img/snippets_thumbs/s_add_to_cart.svg"/>
|
||||
</xpath>
|
||||
</template>
|
||||
|
||||
<template id="snippet_options" inherit_id="website.snippet_options" name="e-commerce snippet options">
|
||||
<xpath expr="." position="inside">
|
||||
<!-- All products page -->
|
||||
<div data-js="WebsiteSaleGridLayout" data-page-options="true" groups="website.group_website_designer" data-selector="main:has(.o_wsale_products_page)" data-no-check="true"
|
||||
string="Products Page" data-target="#products_grid .o_wsale_products_grid_table_wrapper > table">
|
||||
<we-select string="Layout" data-no-preview="true" data-reload="/">
|
||||
<we-button data-customize-website-views="" data-name="grid_view_opt">Grid</we-button>
|
||||
<we-button data-customize-website-views="website_sale.products_list_view">List</we-button>
|
||||
</we-select>
|
||||
<we-row string="Size" class="o_we_sublevel_1">
|
||||
<we-input data-set-ppg="" data-no-preview="true" data-reload="/"/>
|
||||
<span class="mx-2 o_wsale_ppr_by">by</span>
|
||||
<we-select class="o_wsale_ppr_submenu" data-dependencies="grid_view_opt" data-no-preview="true" data-reload="/">
|
||||
<we-button data-set-ppr="2">2</we-button>
|
||||
<we-button data-set-ppr="3">3</we-button>
|
||||
<we-button data-set-ppr="4">4</we-button>
|
||||
</we-select>
|
||||
</we-row>
|
||||
<we-select string="Style" class="o_we_sublevel_1">
|
||||
<we-button data-select-class=""
|
||||
data-customize-website-views="">
|
||||
Default
|
||||
</we-button>
|
||||
<we-button data-select-class="o_wsale_design_cards"
|
||||
data-customize-website-views="website_sale.products_design_card">
|
||||
Cards
|
||||
</we-button>
|
||||
<we-button data-select-class="o_wsale_design_thumbs"
|
||||
data-customize-website-views="website_sale.products_design_thumbs">
|
||||
Thumbnails
|
||||
</we-button>
|
||||
<we-button data-select-class="o_wsale_design_grid"
|
||||
data-customize-website-views="website_sale.products_design_grid">
|
||||
Grid
|
||||
</we-button>
|
||||
</we-select>
|
||||
<we-select string="Images Size" class="o_we_sublevel_1">
|
||||
<we-button data-select-class="o_wsale_context_thumb_4_3"
|
||||
data-customize-website-views="website_sale.products_thumb_4_3">
|
||||
Landscape (4/3)
|
||||
</we-button>
|
||||
<we-button data-select-class=""
|
||||
data-customize-website-views="">
|
||||
Default (1/1)
|
||||
</we-button>
|
||||
<we-button data-select-class="o_wsale_context_thumb_4_5"
|
||||
data-customize-website-views="website_sale.products_thumb_4_5">
|
||||
Portrait (4/5)
|
||||
</we-button>
|
||||
<we-button data-select-class="o_wsale_context_thumb_2_3"
|
||||
data-customize-website-views="website_sale.products_thumb_2_3">
|
||||
Vertical (2/3)
|
||||
</we-button>
|
||||
</we-select>
|
||||
<we-button-group string="Fill" class="o_we_sublevel_2" data-variable="thumb_size">
|
||||
<we-button data-select-class=""
|
||||
data-img="/website/static/src/img/snippets_options/content_width_normal.svg"
|
||||
data-customize-website-views="">
|
||||
</we-button>
|
||||
<we-button data-select-class="o_wsale_context_thumb_cover"
|
||||
data-name="thumb_cover"
|
||||
data-variable="thumb_cover"
|
||||
data-img="/website/static/src/img/snippets_options/content_width_full.svg"
|
||||
data-customize-website-views="website_sale.products_thumb_cover">
|
||||
</we-button>
|
||||
</we-button-group>
|
||||
<we-checkbox string="Prod. Desc."
|
||||
data-customize-website-views="website_sale.products_description"
|
||||
data-no-preview="true"
|
||||
data-reload="/"/>
|
||||
<we-row id="o_wsale_grid_left_panel" string="Categories" data-variable="filmstrip">
|
||||
<we-button string="Left"
|
||||
data-customize-website-views="website_sale.products_categories"
|
||||
data-name="categories_opt"
|
||||
data-no-preview="true"
|
||||
data-reload="/"/>
|
||||
<we-button string="Top"
|
||||
data-customize-website-views="website_sale.products_categories_top"
|
||||
data-name="categories_opt_top"
|
||||
data-no-preview="true"
|
||||
data-reload="/"/>
|
||||
</we-row>
|
||||
<we-checkbox id="collapse_category_recursive" string="Collapse Category Recursive"
|
||||
class="o_we_sublevel_1"
|
||||
data-customize-website-views="website_sale.option_collapse_products_categories"
|
||||
data-dependencies="categories_opt"
|
||||
data-no-preview="true"
|
||||
data-reload="/"/>
|
||||
<we-row string="Attributes" class="o_we_full_row">
|
||||
<we-button string="Left"
|
||||
data-customize-website-views="website_sale.products_attributes"
|
||||
data-name="attributes_opt"
|
||||
data-no-preview="true"
|
||||
data-reload="/"/>
|
||||
<we-button string="Top"
|
||||
data-customize-website-views="website_sale.products_attributes_top"
|
||||
data-name="attributes_opt_top"
|
||||
data-no-preview="true"
|
||||
data-reload="/"/>
|
||||
</we-row>
|
||||
<we-checkbox string="Price Filter"
|
||||
class="o_we_sublevel_1"
|
||||
data-customize-website-views="website_sale.filter_products_price"
|
||||
data-dependencies="attributes_opt, attributes_opt_top"
|
||||
data-no-preview="true"
|
||||
data-reload="/"/>
|
||||
<we-row string="Top Bar" class="o_we_full_row">
|
||||
<we-button string="Sort by"
|
||||
data-customize-website-views="website_sale.sort"
|
||||
data-no-preview="true"
|
||||
data-reload="/"/>
|
||||
<we-button string="Layout"
|
||||
data-customize-website-views="website_sale.add_grid_or_list_option"
|
||||
data-no-preview="true"
|
||||
data-reload="/"/>
|
||||
</we-row>
|
||||
<we-select string="Default Sort" class="o_wsale_sort_submenu" data-no-preview="true" data-reload="/">
|
||||
<t t-foreach="request.env['website']._get_product_sort_mapping()" t-as="query_and_label">
|
||||
<we-button t-att-data-set-default-sort="query_and_label[0]"><t t-esc="query_and_label[1]"/></we-button>
|
||||
</t>
|
||||
</we-select>
|
||||
<we-row string="Buttons" class="o_we_full_row">
|
||||
<we-button title="Add to Cart" class="fa fa-fw fa-shopping-cart o_we_add_to_cart_btn"
|
||||
data-customize-website-views="website_sale.products_add_to_cart"
|
||||
data-no-preview="true"
|
||||
data-reload="/"/>
|
||||
</we-row>
|
||||
</div>
|
||||
<!-- Product -->
|
||||
<div data-js="WebsiteSaleProductsItem"
|
||||
data-selector="#products_grid .oe_product"
|
||||
data-no-check="true">
|
||||
<div class="o_wsale_soptions_menu_sizes">
|
||||
<we-row string="Size">
|
||||
<table>
|
||||
<tr>
|
||||
<td/><td/><td/><td/>
|
||||
</tr>
|
||||
<tr>
|
||||
<td/><td/><td/><td/>
|
||||
</tr>
|
||||
<tr>
|
||||
<td/><td/><td/><td/>
|
||||
</tr>
|
||||
<tr>
|
||||
<td/><td/><td/><td/>
|
||||
</tr>
|
||||
</table>
|
||||
</we-row>
|
||||
</div>
|
||||
|
||||
<we-row string="Re-order" data-no-preview="true">
|
||||
<we-button title="Push to top" data-change-sequence="top" class="fa fa-fw fa-angle-double-left"/>
|
||||
<we-button title="Push up" data-change-sequence="up" class="fa fa-fw fa-angle-left"/>
|
||||
<we-button title="Push down" data-change-sequence="down" class="fa fa-fw fa-angle-right"/>
|
||||
<we-button title="Push to bottom" data-change-sequence="bottom" class="fa fa-fw fa-angle-double-right"/>
|
||||
</we-row>
|
||||
|
||||
<we-row>
|
||||
<we-select string="Badge" class="o_wsale_ribbon_select">
|
||||
<we-button data-set-ribbon="" data-name="no_ribbon_opt">None</we-button>
|
||||
<!-- Ribbons are filled in JS -->
|
||||
</we-select>
|
||||
<we-button data-edit-ribbon="" title="Edit" class="fa fa-edit" data-no-preview="true" data-dependencies="!no_ribbon_opt"/>
|
||||
<we-button data-create-ribbon="" data-name="create_ribbon_opt" title="Create" class="fa fa-plus text-success" data-no-preview="true"/>
|
||||
</we-row>
|
||||
<div class="d-none" data-name="ribbon_customize_opt">
|
||||
<we-input string="Content" class="o_we_sublevel_1 o_we_large"
|
||||
data-set-ribbon-html="Badge Text" data-apply-to=".o_ribbon"/>
|
||||
<we-colorpicker string="Background" class="o_we_sublevel_1"
|
||||
title="" data-select-style="" data-css-property="background-color" data-color-prefix="bg-" data-apply-to=".o_ribbon"/>
|
||||
<we-colorpicker string="Text" class="o_we_sublevel_1"
|
||||
title="" data-select-style="" data-css-property="color" data-apply-to=".o_ribbon"/>
|
||||
<we-select string="Style" class="o_we_sublevel_1">
|
||||
<we-button data-set-ribbon-mode="ribbon">Slanted</we-button>
|
||||
<we-button data-set-ribbon-mode="tag">Tag</we-button>
|
||||
</we-select>
|
||||
<we-select string="Position" class="o_we_sublevel_1">
|
||||
<we-button data-set-ribbon-position="left">Left</we-button>
|
||||
<we-button data-set-ribbon-position="right">Right</we-button>
|
||||
</we-select>
|
||||
<we-row string=" ">
|
||||
<we-button class="o_we_bg_danger" data-delete-ribbon="" data-no-preview="true">Delete Badge</we-button>
|
||||
</we-row>
|
||||
</div>
|
||||
</div>
|
||||
<div data-selector="#wrapwrap > header"
|
||||
data-no-check="true"
|
||||
groups="website.group_website_designer">
|
||||
<we-checkbox string="Show Empty Cart"
|
||||
data-customize-website-views="website_sale.header_hide_empty_cart_link|"
|
||||
data-no-preview="true"
|
||||
data-reload="/"/>
|
||||
</div>
|
||||
<!-- Product image -->
|
||||
<div data-js="WebsiteSaleProductAttribute" data-selector="#product_detail .o_wsale_product_attribute" data-no-check="true">
|
||||
<we-select string="Display Type" data-no-preview="true">
|
||||
<we-button data-set-display-type="radio">Radio</we-button>
|
||||
<we-button data-set-display-type="pills">Pills</we-button>
|
||||
<we-button data-set-display-type="select">Select</we-button>
|
||||
<we-button data-set-display-type="color">Color</we-button>
|
||||
</we-select>
|
||||
</div>
|
||||
<!-- Product page -->
|
||||
<div data-js="WebsiteSaleProductPage" data-selector="main:has(.o_wsale_product_page)" data-page-options="true" groups="website.group_website_designer" data-no-check="true" string="Product Page">
|
||||
<we-row string="Customers" class="o_we_full_row">
|
||||
<we-button string="Rating"
|
||||
data-customize-website-views="website_sale.product_comment"
|
||||
data-no-preview="true"
|
||||
data-reload="/"/>
|
||||
<we-button string="Share"
|
||||
data-name="attributes_opt"
|
||||
data-customize-website-views="website_sale.product_share_buttons"
|
||||
data-no-preview="true"
|
||||
data-reload="/"/>
|
||||
</we-row>
|
||||
<we-checkbox string="Select Quantity"
|
||||
data-customize-website-views="website_sale.product_quantity"
|
||||
data-no-preview="true"
|
||||
data-reload="/"/>
|
||||
<we-checkbox string="Tax Indication"
|
||||
data-customize-website-views="website_sale.tax_indication"
|
||||
data-no-preview="true"
|
||||
data-reload="/"/>
|
||||
<we-select data-name="variants_opt" groups="product.group_product_variant" string="Variants" data-no-preview="true" data-reload="/">
|
||||
<we-button data-name="variants_options_opt" data-customize-website-views="">Options</we-button>
|
||||
<we-button data-name="variants_products_list_opt" data-customize-website-views="website_sale.product_variants">Products List</we-button>
|
||||
</we-select>
|
||||
<we-row string="Cart" class="o_we_full_row" data-name="o_wsale_buy_now_opt">
|
||||
<we-button title="Buy Now" class="o_we_buy_now_btn"
|
||||
data-customize-website-views="website_sale.product_buy_now"
|
||||
data-no-preview="true"
|
||||
data-reload="/">
|
||||
<i class="fa fa-fw fa-bolt"/>
|
||||
Buy Now
|
||||
</we-button>
|
||||
</we-row>
|
||||
<!-- Image config -->
|
||||
<we-button-group string="Images Width" data-no-preview="true" data-reload="/">
|
||||
<we-button data-set-image-width="none" data-img="/website_sale/static/src/img/snippet_options/image-width-none.svg" title="None"/>
|
||||
<we-button data-set-image-width="50_pc" data-img="/website_sale/static/src/img/snippet_options/image-width-50.svg" title="50 percent"/>
|
||||
<we-button data-set-image-width="66_pc" data-img="/website_sale/static/src/img/snippet_options/image-width-66.svg" title="66 percent"/>
|
||||
<we-button data-set-image-width="100_pc" data-img="/website_sale/static/src/img/snippet_options/image-width-100.svg" title="100 percent"/>
|
||||
</we-button-group>
|
||||
<we-select string="Layout" data-name="o_wsale_image_layout" data-no-preview="true" data-reload="/">
|
||||
<we-button data-set-image-layout="carousel">Carousel</we-button>
|
||||
<we-button data-set-image-layout="grid">Grid</we-button>
|
||||
</we-select>
|
||||
<we-select string="Image Zoom" class="o_we_sublevel_1" data-name="o_wsale_zoom_mode" data-no-preview="true" data-reload="/">
|
||||
<we-button data-name="o_wsale_zoom_hover" data-customize-website-views="website_sale.product_picture_magnify_hover">Magnifier on hover</we-button>
|
||||
<we-button data-name="o_wsale_zoom_click" data-customize-website-views="website_sale.product_picture_magnify_click">Pop-up on Click</we-button>
|
||||
<we-button data-name="o_wsale_zoom_both" data-customize-website-views="website_sale.product_picture_magnify_both">Both</we-button>
|
||||
<we-button data-name="o_wsale_zoom_none" data-customize-website-views="">None</we-button>
|
||||
</we-select>
|
||||
<!-- Carousel config -->
|
||||
<we-button-group string="Thumbnails" class="o_we_sublevel_1" data-name="o_wsale_thumbnail_pos" data-no-preview="true" data-reload="/">
|
||||
<we-button class="fa fa-fw fa-long-arrow-left" title="Left" data-customize-website-views="website_sale.carousel_product_indicators_left"/>
|
||||
<we-button class="fa fa-fw fa-long-arrow-down" title="Bottom" data-customize-website-views="website_sale.carousel_product_indicators_bottom"/>
|
||||
</we-button-group>
|
||||
<!-- Grid config -->
|
||||
<we-range string="Image Spacing" class="o_we_sublevel_1" data-name="o_wsale_grid_spacing" data-no-preview="true" data-reload="/" data-max="3" data-step="1" data-set-spacing=""/>
|
||||
<we-select string="Columns" class="o_we_sublevel_1" data-name="o_wsale_grid_columns" data-no-preview="true" data-reload="/">
|
||||
<we-button data-set-columns="1">1</we-button>
|
||||
<we-button data-set-columns="2">2</we-button>
|
||||
<we-button data-set-columns="3">3</we-button>
|
||||
</we-select>
|
||||
<we-row string="Main image">
|
||||
<we-button class="o_we_bg_brand_primary" data-name="o_wsale_replace_main_image" data-replace-main-image="true" data-no-preview="true">Replace</we-button>
|
||||
</we-row>
|
||||
<we-row string="Extra Images">
|
||||
<we-button class="o_we_bg_success" data-name="o_wsale_add_extra_images" data-add-images="true" data-no-preview="true">Add</we-button>
|
||||
<we-button class="o_we_bg_danger" data-name="o_wsale_clear_extra_images" data-clear-images="true" data-no-preview="true">Remove all</we-button>
|
||||
</we-row>
|
||||
</div>
|
||||
<!-- Checkout page -->
|
||||
<div data-selector="main:has(.oe_website_sale .wizard)" data-page-options="true" groups="website.group_website_designer" data-no-check="true" string="Checkout Pages">
|
||||
<we-checkbox string="Extra Step Option"
|
||||
data-customize-website-views="website_sale.extra_info_option"
|
||||
data-no-preview="true"
|
||||
data-reload="/"/>
|
||||
<we-checkbox string="Suggested Accessories"
|
||||
data-customize-website-views="website_sale.suggested_products_list"
|
||||
data-no-preview="true"
|
||||
data-reload="/"/>
|
||||
<we-checkbox string="Promo Code"
|
||||
data-customize-website-views="website_sale.reduction_code"
|
||||
data-no-preview="true"
|
||||
data-reload="/"/>
|
||||
<we-checkbox string="Accept Terms & Conditions"
|
||||
data-customize-website-views="website_sale.payment_sale_note"
|
||||
data-no-preview="true"
|
||||
data-reload="/"/>
|
||||
<we-checkbox string="Show b2b Fields"
|
||||
data-customize-website-views="website_sale.address_b2b"
|
||||
data-no-preview="true"
|
||||
data-reload="/"/>
|
||||
</div>
|
||||
</xpath>
|
||||
</template>
|
||||
|
||||
<template id="snippets_options_web_editor" inherit_id="web_editor.snippet_options" name="e-commerce base snippet options">
|
||||
<xpath expr="//div[@data-js='ReplaceMedia']" position="inside">
|
||||
<we-row string="Re-order">
|
||||
<we-button class="fa fa-fw fa-angle-double-left" data-no-preview="true" title="Move to first" data-set-position="first" data-name="media_wsale_resequence"/>
|
||||
<we-button class="fa fa-fw fa-angle-left" data-no-preview="true" title="Move to previous" data-set-position="left" data-name="media_wsale_resequence"/>
|
||||
<we-button class="fa fa-fw fa-angle-right" data-no-preview="true" title="Move to next" data-set-position="right" data-name="media_wsale_resequence"/>
|
||||
<we-button class="fa fa-fw fa-angle-double-right" data-no-preview="true" title="Move to last" data-set-position="last" data-name="media_wsale_resequence"/>
|
||||
</we-row>
|
||||
</xpath>
|
||||
<xpath expr="//div[@data-js='ReplaceMedia']/we-row" position="inside">
|
||||
<we-button class="o_we_bg_danger" data-remove-media="true" data-no-preview="true" data-name="media_wsale_remove">Remove</we-button>
|
||||
</xpath>
|
||||
</template>
|
||||
|
||||
<template id="product_searchbar_input_snippet_options" inherit_id="website.searchbar_input_snippet_options" name="product search bar snippet options">
|
||||
<xpath expr="//div[@data-js='SearchBar']/we-select[@data-name='scope_opt']" position="inside">
|
||||
<we-button data-set-search-type="products" data-select-data-attribute="products" data-name="search_products_opt" data-form-action="/shop">Products</we-button>
|
||||
</xpath>
|
||||
<xpath expr="//div[@data-js='SearchBar']/we-select[@data-name='order_opt']" position="inside">
|
||||
<t t-foreach="request.env['website']._get_product_sort_mapping()" t-as="query_and_label">
|
||||
<!-- name asc is already part of the general sorting methods of this snippet. -->
|
||||
<we-button t-if="query_and_label[0] != 'name asc'" t-att-data-set-order-by="query_and_label[0]" t-att-data-select-data-attribute="query_and_label[0]" data-dependencies="search_products_opt"><t t-out="query_and_label[1]"/></we-button>
|
||||
</t>
|
||||
</xpath>
|
||||
<xpath expr="//div[@data-js='SearchBar']/div[@data-dependencies='limit_opt']" position="inside">
|
||||
<we-checkbox string="Description" data-dependencies="search_products_opt" data-select-data-attribute="true" data-attribute-name="displayDescription"
|
||||
data-apply-to=".search-query"/>
|
||||
<we-checkbox string="Category" data-dependencies="search_products_opt" data-select-data-attribute="true" data-attribute-name="displayExtraLink"
|
||||
data-apply-to=".search-query"/>
|
||||
<we-checkbox string="Price" data-dependencies="search_products_opt" data-select-data-attribute="true" data-attribute-name="displayDetail"
|
||||
data-apply-to=".search-query"/>
|
||||
<we-checkbox string="Image" data-dependencies="search_products_opt" data-select-data-attribute="true" data-attribute-name="displayImage"
|
||||
data-apply-to=".search-query"/>
|
||||
<t t-snippet="website_sale.s_add_to_cart" string="Add to Cart Button" t-thumbnail="/website/static/src/img/snippets_thumbs/s_add_to_cart.svg" t-grid-column-span="3"/>
|
||||
</xpath>
|
||||
</template>
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue