feat: implement theme_prime and theme_vibrant_marketplace with comprehensive assets, custom snippets, and core frontend logic.(ver 17 not upgrate yet)

This commit is contained in:
hoangvv
2026-08-13 15:07:18 +07:00
parent e7e005e11e
commit 860cf9cb0f
658 changed files with 45849 additions and 0 deletions
+388
View File
@@ -0,0 +1,388 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<!--
============================================================================
Discount Percentage
============================================================================
-->
<template id="discount_percentage" name="Discount Percentage">
<t t-if="combination_info['has_discounted_price']">
<t t-set="discount_percentage" t-value="round((combination_info['list_price'] - combination_info['price']) / combination_info['list_price'] * 100)"/>
<small class="tp-discount-percentage d-none d-md-inline-block ms-1">
(<t t-out="discount_percentage"/>% OFF)
</small>
</t>
</template>
<!--
============================================================================
Product Label
============================================================================
-->
<template id="product_label" name="Product Label">
<t t-if="label">
<t t-set="style" t-value="style or label.style"/>
<t t-set="_text" t-value="label.name"/>
<t t-set="_bg_color" t-value="label.background_color_rgb"/>
<t t-set="_text_color" t-value="label.text_color"/>
</t>
<t t-elif="stock and product.dr_show_out_of_stock">
<t t-set="style" t-value="style or 5"/>
<t t-set="_classes" t-valuef="tp-product-stock-label"/>
<t t-if="product.dr_show_out_of_stock == 'OUT_OF_STOCK'">
<t t-set="_text"> OUT OF STOCK </t>
<t t-set="_bg_color" t-valuef="212, 18, 18"/>
</t>
<t t-else="">
<t t-set="unit_left_str"> UNITS LEFT </t>
<t t-set="_text" t-value="'%s %s' % (product.dr_show_out_of_stock, unit_left_str)"/>
<t t-set="_bg_color" t-valuef="255, 193, 7"/>
</t>
<t t-set="_text_color" t-valuef="#FFFFFF"/>
</t>
<span t-if="label or (stock and product.dr_show_out_of_stock)" t-attf-class="tp-product-label tp-product-label-style-#{style} #{_classes}" t-attf-style="background-color: rgba(#{_bg_color}, .8); color: #{_text_color};">
<span t-out="_text"/>
<div t-if="style == '1'" class="after" t-attf-style="border-color: rgba(#{_bg_color},.5) transparent rgba(#{_bg_color},.5) rgba(#{_bg_color},.8);"/>
</span>
</template>
<!--
============================================================================
Product Preview Swatches
============================================================================
-->
<template id="product_preview_swatches" name="Theme Prime: Product Preview Swatches">
<t t-set="preview_swatches" t-value="product._get_product_preview_swatches(limit=_limit or 3)"/>
<div t-if="len(preview_swatches['swatches']) > 1" t-attf-class="tp-product-preview-swatches #{_classes}" t-attf-data-default-img-src="/web/image/product.template/#{product.id}/#{img_size or 'image_512'}" t-att-data-parent-selector="parent_selector" t-att-data-img-selector="img_selector">
<div class="d-flex align-items-center">
<div t-foreach="preview_swatches['swatches']" t-as="swatch" data-bs-toggle="tooltip" t-att-title="swatch['name']" data-bs-placement="top" class="rounded-circle cursor-pointer tp-swatch position-relative" t-att-data-preview-img-src="'%s/%s' % (swatch['preview_image'], img_size or 'image_512')">
<div t-if="swatch['type'] == 'color'" class="h-100 w-100 rounded-circle" t-attf-style="background-color: #{swatch['value']}"/>
<div t-elif="swatch['type'] == 'image'" class="h-100 w-100 rounded-circle" t-attf-style="background-image: url(#{swatch['value']})"/>
</div>
<div t-if="preview_swatches['more'] > 0" class="tp-swatch position-relative more border-0">
<a class="link-dark d-flex align-items-center h-100 w-100" t-att-href="product.website_url">+<t t-out="preview_swatches['more']"/></a>
</div>
</div>
</div>
</template>
<!--
============================================================================
B2B Price Label
============================================================================
-->
<template id="tp_b2b_price_label" name="B2B Price Label">
<span t-att-class="_classes">
<a href="/web/login" class="link-primary">Login</a><t t-if="request.website._get_dr_theme_config()['has_sign_up']"> | <a href="/web/signup" class="link-primary">Register</a></t> <span class="text-muted"> to see price</span>
</span>
</template>
<!--
============================================================================
Rating
============================================================================
-->
<template id="product_rating" inherit_id="portal_rating.rating_widget_stars_static" primary="True" name="Theme Prime: Rating">
<xpath expr="//div[hasclass('o_website_rating_static')]/t[@t-else='']/small" position="replace"/>
<xpath expr="//div[hasclass('o_website_rating_static')]" position="attributes">
<attribute name="class"></attribute>
<attribute name="t-attf-class">o_website_rating_static #{_classes}</attribute>
</xpath>
</template>
<template id="tp_bottom_action_btn_component">
<t t-set="website_sale_order" t-value="website.sale_get_order()" />
<li t-if="component != 'tp_lang_selector'" t-attf-class="list-inline-item o_not_editable position-relative tp-bottom-action-btn text-center #{button.get('action_class', '')} #{'tp-active-btn' if website_path == button.get('url') else ''}">
<a t-att-aria-label="button.get('name')" t-attf-class="#{'o_wsale_my_wish tp-force-d-block' if component == 'tp_wishlist' else ''} #{'o_wsale_my_cart tp-cart-sidebar-action tp-force-d-block' if component == 'tp_cart' else ''}" t-att-href="button.get('url', '#')">
<i t-attf-class="tp-action-btn-icon #{button.get('icon')}"/>
<sup t-if="component == 'tp_wishlist'" t-out="wishcount" class="my_wish_quantity o_animate_blink badge text-bg-primary"/>
<sup t-if="component == 'tp_cart'" class="my_cart_quantity badge text-bg-primary mb-0 fw-bold" t-out="website_sale_order and website_sale_order.cart_quantity or '0'" t-att-data-order-id="website_sale_order and website_sale_order.id or ''"/>
</a>
<div class="tp-action-btn-label"><t t-out="button.get('name')"></t></div>
</li>
<li t-else="" t-attf-class="list-inline-item o_not_editable position-relative tp-bottom-action-btn text-center #{button.get('action_class', '')}">
<ul style="padding: 2px 8px;">
<t t-call="theme_prime.component_language_pricelist_selector">
<t t-set="_is_bottombar" t-value="True"/>
<t t-set="_dropdown_classes" t-value="'flex-column'"/>
</t>
</ul>
</li>
</template>
<template id="tp_mobile_bottombar_component" name="Bottombar Component">
<t t-set="wishcount" t-value="len(request.env['product.wishlist'].current())"/>
<t t-set="website_path" t-value="request.httprequest.path"/>
<t t-set="is_user_sign_in" t-value="request.website.viewref('portal.user_sign_in').active"/>
<t t-set="components" t-value="request.website._get_dr_theme_config('json_bottom_bar')['actions']"></t>
<t t-set="show_on_scroll" t-value="request.website._get_dr_theme_config('json_bottom_bar')['show_bottom_bar_on_scroll']"></t>
<t t-set="total_component" t-value="len(components)"></t>
<t t-set="components_vals" t-value="request.website.get_theme_prime_bottom_bar_action_buttons()"></t>
<t t-set="need_two_drower" t-value="total_component &gt; 4"></t>
<t t-set="need_mobile_filters" t-value="request.website._get_dr_theme_config('json_bottom_bar')['filters']"></t>
<div t-attf-class="tp-bottombar-component o_not_editable w-100 tp-bottombar-component-style-1 p-0 #{'tp-has-drower-element' if need_two_drower else ''} #{'tp-bottombar-not-visible' if show_on_scroll else ''}">
<div t-if="main_object and main_object._name == 'product.template'" class="d-flex justify-content-center align-items-center border-bottom tp-bottom-bar-add-to-cart">
<a class="mx-3" href="#">
<img t-attf-src="/web/image/product.template/#{product.id}/image_128" class="o_image_40_cover tp-rounded-border border product-img" t-att-alt="product.name"/>
</a>
<span t-if="request.website._dr_has_b2b_access()" class="mx-3">
<p class="mb-0 small fw-bold">Price:</p>
<p class="mb-0 small text-primary"><span class="product-price" t-out="combination_info['price']" t-options="{'widget': 'monetary', 'display_currency': website.currency_id}"/></p>
</span>
<button class="product-add-to-cart btn btn-primary-soft m-2 tp-rounded-border btn-block">
<i class="dri dri-cart"/> Add to Cart
</button>
</div>
<div t-if="bins != None and need_mobile_filters and _config_shop_layout.get('layout') == 'prime'" class="d-flex justify-content-around border-bottom">
<t t-set="tp_is_filters_activated" t-value="is_view_active('website_sale.products_attributes') or is_view_active('website_sale.products_categories')"/>
<div t-if="tp_is_filters_activated" class="py-2 w-50 text-center d-flex justify-content-center align-items-center">
<div class="">
<h6 class="d-inline me-1 tp-filter-bottom-sidebar-toggle">
<i class="fa fa-filter text-primary"></i> <span class="text-body"> Filters </span>
</h6>
</div>
</div>
<div t-if="is_view_active('website_sale.sort')" t-attf-class="py-2 w-50 #{'border-start' if tp_is_filters_activated else ''} text-center d-flex justify-content-center align-items-center">
<div class="dropdown dropdown_sorty_by">
<h6 class="d-inline me-1">
<i class="fa fa-sort-amount-desc text-primary"></i>
</h6>
<a role="button" class="text-body py-2 h6" data-bs-toggle="offcanvas" href="#tp-shop-sort-sidebar" aria-controls="tp-shop-sort-sidebar">
<t t-if="isSortingBy" t-out="isSortingBy[0][1]"/>
<span t-else='' t-field="website.shop_default_sort"/>
</a>
</div>
</div>
</div>
<ul class="list-inline my-2 px-5 d-flex tp-bottombar-main-element justify-content-between">
<t t-foreach="components" t-as="component">
<t t-set="button" t-value="components_vals[component]"></t>
<!-- at 3rd position if more then 4 elements given then we need second drawer -->
<t t-if="component_index == 2 and need_two_drower">
<li class="list-inline-item text-center tp-bottom-action-btn tp-drawer-action-btn align-items-center d-flex justify-content-center rounded-circle">
<a href="#" aria-label="Open menu"><i class="tp-drawer-icon fa fa-th"></i></a>
</li>
</t>
<t t-if="not need_two_drower or (component_index &lt;= 2 and need_two_drower) or total_component == 4">
<t t-call="theme_prime.tp_bottom_action_btn_component"></t>
</t>
</t>
<li t-if="not user_id._is_public() or request.website.viewref('portal.user_sign_in').active" class="list-inline-item o_not_editable tp-bottom-action-btn">
<a href="#" class="tp-account-info-sidebar-action tp-action-btn-icon" aria-label="Account Info">
<i class="dri dri-user"/>
</a>
<div class="tp-action-btn-label">Account</div>
</li>
</ul>
<hr t-if="need_two_drower" class="mx-4"/>
<ul t-if="need_two_drower" class="list-inline d-flex my-2 px-5 tp-bottombar-secondary-element justify-content-between">
<t t-foreach="components" t-as="component">
<t t-set="button" t-value="components_vals[component]"></t>
<t t-if="component_index &gt;= 3">
<t t-call="theme_prime.tp_bottom_action_btn_component"></t>
</t>
</t>
</ul>
</div>
</template>
<template id="component_account_info" name="Component Account Info">
<ul t-attf-class="list-inline mb-0 d-flex align-items-center tp-account-info #{_ul_classes}">
<li t-if="not _hide_search" t-attf-class="list-inline-item mx-0 o_not_editable #{_item_class}">
<a href="#" t-attf-class="tp-search-sidebar-action #{_show_total and 'tp-light-bg btn rounded-circle p-2 shadow-none' or ''}" t-att-data-search="search" aria-label="Search">
<div class="d-flex flex-column align-items-center justify-content-center">
<div class="d-flex align-items-center">
<div class="position-relative">
<i class="dri dri-search"/>
</div>
</div>
<small class="d-inline-block" t-if="_show_title">Search</small>
</div>
</a>
</li>
<t t-if="not _hide_login_info">
<li t-if="not user_id._is_public() or request.website.viewref('portal.user_sign_in').active" t-attf-class="list-inline-item mx-0 o_not_editable #{_item_class}">
<a href="#" t-attf-class="tp-account-info-sidebar-action #{_show_total and 'tp-light-bg btn rounded-circle p-2 shadow-none' or ''}" aria-label="Account Info">
<div class="d-flex flex-column align-items-center justify-content-center">
<div class="d-flex align-items-center">
<div class="position-relative">
<i class="dri dri-user"/>
</div>
</div>
<small class="d-inline-block" t-if="_show_title">
<t t-if="user_id._is_public()">Login</t>
<t t-else="">Account</t>
</small>
</div>
</a>
</li>
</t>
<t t-if="not _hide_wishlist">
<t t-nocache="The wishlist may vary and depends on the user."
t-nocache-_item_class="_item_class"
t-nocache-_show_total="_show_total"
t-nocache-_show_title="_show_title">
<t t-set="wishcount" t-value="len(request.env['product.wishlist'].current())"/>
<t t-set="show_wishes" t-value="True"/>
<t t-if="is_view_active('website_sale_wishlist.header_hide_empty_wishlist_link')">
<t t-set="show_wishes" t-value="show_wishes and wishcount > 0"/>
<t t-set="_wishlist_hide_classes" t-value="'o_wsale_my_wish_hide_empty'" />
</t>
<li t-attf-class="list-inline-item mx-0 o_not_editable o_wsale_my_wish #{not show_wishes and 'd-none'} #{_wishlist_hide_classes} #{_item_class}">
<a href="/shop/wishlist" t-attf-class="ddd #{_show_total and 'tp-light-bg btn rounded-circle p-2 shadow-none position-relative' or ''}">
<div class="d-flex flex-column align-items-center justify-content-center">
<div class="d-flex align-items-center">
<div t-attf-class="#{not _show_total and 'position-relative' or ''}">
<i class="dri dri-wishlist"/>
<sup t-out="wishcount" t-attf-class="my_wish_quantity o_animate_blink text-bg-primary position-absolute #{_show_total and 'sup-btn' or ''}"/>
</div>
</div>
<small class="d-inline-block" t-if="_show_title">Wishlist</small>
</div>
</a>
</li>
</t>
</t>
<t t-if="not _hide_cart">
<t t-nocache="The number of products is dynamic, this rendering cannot be cached."
t-nocache-_item_class="_item_class"
t-nocache-_show_total="_show_total"
t-nocache-_show_title="_show_title">
<t t-set="website_sale_cart_quantity" t-value="request.session['website_sale_cart_quantity'] if 'website_sale_cart_quantity' in request.session else website.sale_get_order().cart_quantity or 0"/>
<t t-set="show_cart" t-value="true"/>
<t t-if="is_view_active('website_sale.header_hide_empty_cart_link')">
<t t-set="show_cart" t-value="website_sale_cart_quantity" />
</t>
<li t-attf-class="list-inline-item mx-0 o_not_editable o_wsale_my_cart tp-cart-sidebar-action #{not show_cart and 'd-none'} #{_item_class}">
<a href="/shop/cart" t-attf-class="#{_show_total and 'btn btn-primary rounded-circle shadow-none position-relative shadow-none' or ''}">
<div class="d-flex flex-column align-items-center justify-content-center">
<div class="d-flex align-items-center">
<div t-attf-class="#{not _show_total and 'position-relative' or ''}">
<i class="dri dri-cart"/>
<sup t-attf-class="my_cart_quantity text-bg-primary position-absolute #{_show_total and 'sup-btn' or ''}" t-out="website_sale_cart_quantity" t-att-data-order-id="request.session.get('sale_order_id', '')"/>
</div>
<div t-if="_show_total" class="total-block">
<strong class="dr-update-cart-total small"><span t-out="website.sale_get_order().amount_total" t-options="{'widget': 'monetary', 'display_currency': website.currency_id}"/></strong>
</div>
</div>
<small class="d-inline-block" t-if="_show_title">My Cart</small>
</div>
</a>
</li>
</t>
</t>
</ul>
</template>
<template id="component_language_pricelist_selector" name="Component Language + Pricelist Selector">
<t t-nocache="The query strings can change for the same page and the same rendering."
t-nocache-_classes="_classes"
t-nocache-_dropdown_classes="_dropdown_classes"
t-nocache-_is_bottombar="_is_bottombar">
<t t-set="website_sale_pricelists" t-value="website.get_pricelist_available(show_visible=True)" />
<t t-set="pricelist_selector_visible" t-value="website_sale_pricelists and len(website_sale_pricelists)&gt;1"/>
<t t-set="language_selector_visible" t-value="len(languages) &gt; 1 or (website and (editable or translatable))"/>
<t t-set="curr_pl" t-value="website.pricelist_id" />
<t t-set="active_lang" t-value="list(filter(lambda lg : lg[0] == lang, languages))[0]"/>
<t t-set="hide_country_flag" t-value="request.website._get_dr_theme_config('json_general_language_pricelist_selector')['hide_country_flag']"/>
<div t-if="language_selector_visible or pricelist_selector_visible" t-attf-class="#{language_selector_visible and 'js_language_selector' or None} #{_classes} dropdown o_not_editable">
<a t-attf-class="dropdown-toggle d-flex align-items-center #{_dropdown_classes}" href="#" data-bs-toggle="dropdown" aria-haspopup="true" aria-expanded="true">
<t t-if="not _is_bottombar">
<t t-if="language_selector_visible and active_lang">
<t t-if="hide_country_flag">
<t t-out="active_lang[2].split('/').pop()"/>
<t t-if="pricelist_selector_visible"></t>
</t>
<t t-else="">
<t t-call="website.lang_flag">
<t t-set="flag_image_src" t-value="active_lang[4]"/>
</t>
</t>
</t>
<t t-if="pricelist_selector_visible and curr_pl">
<span class="ms-1" t-out="curr_pl.name"/>
</t>
</t>
<t t-else="">
<!-- TODO: Improve code for bottombar -->
<t t-if="not hide_country_flag" t-call="website.lang_flag">
<t t-set="flag_image_src" t-value="active_lang[4]"/>
</t>
<t t-else="">
<i class="tp-action-btn-icon fa fa-language"></i>
</t>
<t t-if="pricelist_selector_visible and curr_pl">
<div class="tp-action-btn-label" style="margin-top: 0.2rem;">
<t t-out="curr_pl.name"/>
</div>
</t>
</t>
</a>
<div class="dropdown-menu" role="menu">
<t t-if="pricelist_selector_visible">
<li class="dropdown-item">
<select class="custom-select form-control tp-select-pricelist">
<t t-foreach="website_sale_pricelists" t-as="pl">
<option t-att-selected="pl.id == curr_pl.id and 'selected' or None" t-att-value="'/shop/change_pricelist/%s' % pl.id">
<t t-out="pl.currency_id.symbol"/> <t t-out="pl.name"/>
</option>
</t>
</select>
</li>
</t>
<t t-if="language_selector_visible">
<t t-foreach="languages" t-as="lg">
<a t-att-href="url_for(request.httprequest.path + '?' + keep_query(), lang_code=lg[0])" class="dropdown-item my-1 js_change_lang" t-att-data-url_code="lg[1]">
<t t-if="not hide_country_flag">
<t t-call="website.lang_flag">
<t t-set="flag_image_src" t-value="lg[4]"/>
</t>
</t>
<span t-out="lg[2].split('/').pop()"/>
</a>
</t>
</t>
</div>
</div>
</t>
</template>
<!-- To avoid migration issues -->
<template id="component_language_pricelist" name="Component Language + Pricelist Selector">
<t t-call="theme_prime.component_language_pricelist_selector"/>
</template>
<!-- rating template -->
<template id="d_rating_widget_stars_static" name="Rating: static star widget">
<t t-set="rating_avg" t-value="round(rating_avg * 100) / 100"/>
<t t-set="val_decimal" t-value="round(rating_avg % 1, 1)"/>
<t t-set="val_integer" t-value="int(rating_avg)"/>
<t t-set="empty_star" t-value="5 - (val_integer+1) if val_decimal else 5 - val_integer"/>
<div t-if="rating_avg" class="o_website_rating_static" t-att-style="inline_mode and 'display:inline'" t-att-title="rating_avg">
<t t-foreach="range(0, val_integer)" t-as="num">
<i class="fa fa-star" role="img"></i>
</t>
<t t-if="val_decimal">
<i class="fa fa-star-half-o" role="img"></i>
</t>
<t t-foreach="range(0, empty_star)" t-as="num">
<i class="fa fa-star text-black-25" role="img"></i>
</t>
<span class="ms-1 text-body" t-if="rating_count">
<t t-out="rating_avg"/>
<span class="ms-1">(<t t-out="rating_count"/> Reviews)</span>
</span>
</div>
<t t-else="">
<br/>
</t>
</template>
</odoo>
File diff suppressed because it is too large Load Diff
+552
View File
@@ -0,0 +1,552 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<template id="template_header_mobile" name="Template Header Mobile">
<t t-call="website.navbar">
<t t-set="_navbar_classes" t-valuef="o_header_mobile d-block d-lg-none shadow-sm"/>
<t t-set="_navbar_expand_class" t-valuef="None"/>
<t t-set="_navbar_name" t-valuef="Mobile"/>
<div id="o_main_nav" class="container flex-wrap">
<!-- Toggler -->
<ul class="o_header_mobile_buttons_wrap navbar-nav flex-row align-items-center gap-2 mb-0">
<li>
<button
class="tp-menu-sidebar-action btn btn-link p-0 o_not_editable shadow-none"
type="button"
data-bs-toggle="offcanvas"
data-bs-target="#top_menu_collapse_mobile"
aria-controls="top_menu_collapse_mobile"
aria-expanded="false"
aria-label="Toggle navigation"
>
<svg xmlns="http://www.w3.org/2000/svg" width="1em" height="1em" fill="currentColor" class="bi bi-list" viewBox="0 0 16 16">
<path fill-rule="evenodd" d="M2.5 12a.5.5 0 0 1 .5-.5h10a.5.5 0 0 1 0 1H3a.5.5 0 0 1-.5-.5zm0-4a.5.5 0 0 1 .5-.5h10a.5.5 0 0 1 0 1H3a.5.5 0 0 1-.5-.5zm0-4a.5.5 0 0 1 .5-.5h10a.5.5 0 0 1 0 1H3a.5.5 0 0 1-.5-.5z"/>
</svg>
</button>
</li>
</ul>
<!-- Brand -->
<t t-call="website.placeholder_header_brand">
<t t-set="_link_class" t-valuef="me-0"/>
</t>
<!-- Cart -->
<t t-call="theme_prime.component_account_info">
<t t-set="_hide_search" t-value="True"/>
<t t-set="_hide_wishlist" t-value="True"/>
<t t-set="_hide_login_info" t-value="True"/>
</t>
</div>
</t>
<div t-attf-class="offcanvas offcanvas-start tp-menu-sidebar tp-offcanvas-sidebar" id="top_menu_collapse_mobile">
<div class="offcanvas-body p-0">
<div class="p-3 tp-user-info-container">
<div class="d-flex justify-content-between">
<div class="border border-white p-1">
<span class="tp-user-logo text-bg-primary fw-bold rounded d-inline-block text-center">
<i t-if="user_id._is_public()" class="dri dri-user"/>
<t t-else="" t-out="user_id.name.upper()[:1]"/>
</span>
</div>
<div class="flex-shrink-1">
<button type="button" class="btn-close text-white" data-bs-dismiss="offcanvas" title="Close" aria-label="Close"></button>
</div>
</div>
<div class="mt-3 d-flex align-items-center justify-content-between">
<h6 class="mb-0 text-white">
<t t-if="user_id._is_public()">
<t t-if="is_view_active('portal.user_sign_in')">
<a href="/web/login" class="link-light">
Login <t t-if="request.env['res.users']._get_signup_invitation_scope() == 'b2c'"><span class="mx-1"></span> Register</t>
</a>
</t>
<t t-else="">Welcome !</t>
</t>
<span t-else="" class="cursor-pointer tp-account-info-sidebar-action" data-position="start">
<t t-out="user_id.name"/>
<i class="fa fa-angle-right ms-2"/>
</span>
</h6>
</div>
</div>
<ul class="nav navbar-nav py-2 border-bottom tp-hook-special-menu" t-if="website._get_dr_theme_config('json_sidebar_config').get('menu_sidebar_show_category')">
<li class="nav-item">
<a role="menuitem" href="/" class="nav-link tp-category-action" data-position="start">
<div class="d-flex align-items-center fw-bold">
<svg xmlns="http://www.w3.org/2000/svg" width="1em" height="1em" fill="currentColor" class="bi bi-grid" viewBox="0 0 16 16">
<path d="M1 2.5A1.5 1.5 0 0 1 2.5 1h3A1.5 1.5 0 0 1 7 2.5v3A1.5 1.5 0 0 1 5.5 7h-3A1.5 1.5 0 0 1 1 5.5v-3zM2.5 2a.5.5 0 0 0-.5.5v3a.5.5 0 0 0 .5.5h3a.5.5 0 0 0 .5-.5v-3a.5.5 0 0 0-.5-.5h-3zm6.5.5A1.5 1.5 0 0 1 10.5 1h3A1.5 1.5 0 0 1 15 2.5v3A1.5 1.5 0 0 1 13.5 7h-3A1.5 1.5 0 0 1 9 5.5v-3zm1.5-.5a.5.5 0 0 0-.5.5v3a.5.5 0 0 0 .5.5h3a.5.5 0 0 0 .5-.5v-3a.5.5 0 0 0-.5-.5h-3zM1 10.5A1.5 1.5 0 0 1 2.5 9h3A1.5 1.5 0 0 1 7 10.5v3A1.5 1.5 0 0 1 5.5 15h-3A1.5 1.5 0 0 1 1 13.5v-3zm1.5-.5a.5.5 0 0 0-.5.5v3a.5.5 0 0 0 .5.5h3a.5.5 0 0 0 .5-.5v-3a.5.5 0 0 0-.5-.5h-3zm6.5.5A1.5 1.5 0 0 1 10.5 9h3a1.5 1.5 0 0 1 1.5 1.5v3a1.5 1.5 0 0 1-1.5 1.5h-3A1.5 1.5 0 0 1 9 13.5v-3zm1.5-.5a.5.5 0 0 0-.5.5v3a.5.5 0 0 0 .5.5h3a.5.5 0 0 0 .5-.5v-3a.5.5 0 0 0-.5-.5h-3z"/>
</svg>
<span class="ms-2">Shop By Categories</span>
</div>
</a>
</li>
</ul>
<!-- Menu -->
<t t-call="website.navbar_nav">
<t t-set="_no_autohide_menu_mobile" t-valuef="True"/>
<t t-foreach="website.menu_id.child_id" t-as="submenu">
<t t-call="website.submenu">
<t t-set="item_class" t-valuef="nav-item"/>
<t t-set="link_class" t-valuef="nav-link"/>
<t t-set="dropdown_toggler_classes" t-valuef="d-flex justify-content-between align-items-center"/>
<t t-set="dropdown_menu_classes" t-valuef="position-relative rounded-0 o_dropdown_without_offset"/>
</t>
</t>
</t>
<ul class="nav navbar-nav py-2 border-top tp-hook-extra-menu">
<li class="nav-item" t-nocache="The number of products is dynamic, this rendering cannot be cached.">
<a href="/shop/cart" class="nav-link">
<div class="d-flex align-items-center">
<i class="dri dri-cart"/>
<div class="d-flex align-items-center">
<t t-set="website_sale_cart_quantity" t-value="request.session['website_sale_cart_quantity'] if 'website_sale_cart_quantity' in request.session else website.sale_get_order().cart_quantity or 0"/>
<h6 class="mb-0 ms-2">My Cart</h6> <span class="ms-2">(<span class="my_cart_quantity" t-att-data-order-id="request.session.get('sale_order_id', '')"><t t-out="website_sale_cart_quantity"/></span>)</span>
</div>
</div>
</a>
</li>
<li class="nav-item" t-nocache="The wishlist may vary and depends on the user.">
<a href="/shop/wishlist" class="nav-link">
<div class="d-flex align-items-center">
<i class="dri dri-wishlist"/>
<div class="d-flex align-items-center">
<t t-set="wishlist_quantity" t-value="len(request.env['product.wishlist'].current())"/>
<h6 class="mb-0 ms-2">My Wishlist</h6> <span class="ms-2">(<span class="tp-wishlist-counter"><t t-out="wishlist_quantity"/></span>)</span>
</div>
</div>
</a>
</li>
</ul>
</div>
<t t-call="theme_prime.component_language_pricelist_selector">
<t t-set="_classes" t-valuef="d-flex justify-content-center py-2 border-top"/>
<t t-set="_dropdown_classes" t-valuef="text-dark"/>
</t>
</div>
</template>
<template id="template_header_style_1" inherit_id="website.layout" name="Header Style - 1" active="False">
<xpath expr="//header" position="attributes">
<attribute name="t-attf-class" add="tp-custom-header" separator=" "/>
</xpath>
<xpath expr="//header/*" position="before">
<div class="tp-preheader o_colored_level o_cc" data-name="Preheader">
<div class="container">
<div class="row align-items-center justify-content-lg-between justify-content-center">
<div class="col-auto py-3">
<div class="s_social_media o_not_editable no_icon_color" data-snippet="s_social_media" data-name="Social Media">
<a href="/website/social/facebook" class="s_social_media_facebook" target="_blank">
<i class="fa fa-facebook p-1 o_editable_media"/>
</a>
<a href="/website/social/twitter" class="s_social_media_twitter" target="_blank">
<i class="fa fa-twitter p-1 o_editable_media"/>
</a>
<a href="/website/social/linkedin" class="s_social_media_linkedin" target="_blank">
<i class="fa fa-linkedin p-1 o_editable_media"/>
</a>
<a href="/website/social/github" class="s_social_media_github" target="_blank">
<i class="fa fa-github p-1 o_editable_media"/>
</a>
<a href="/website/social/youtube" class="s_social_media_youtube" target="_blank">
<i class="fa fa-youtube p-1 o_editable_media"/>
</a>
<a href="/website/social/instagram" class="s_social_media_instagram" target="_blank">
<i class="fa fa-instagram p-1 o_editable_media"/>
</a>
</div>
</div>
<div class="col-auto py-3 d-none d-lg-block">
<ul class="list-inline mb-0">
<li class="list-inline-item"><a href="tel:1 (650) 691-3277"><i class="fa fa-1x fa-fw fa-phone"/> 1 (650) 691-3277</a></li>
<li class="list-inline-item"><a href="mailto:info@yourcompany.example.com"><i class="fa fa-1x fa-fw fa-envelope"/> info@yourcompany.example.com</a></li>
</ul>
</div>
<div class="col-auto py-3 d-none d-lg-block">
<t t-call="theme_prime.component_language_pricelist_selector"/>
</div>
<div class="col-auto py-3 d-none d-lg-block">
<t t-call="theme_prime.component_account_info">
<t t-set="_ul_classes" t-valuef="gap-3"/>
</t>
</div>
</div>
</div>
</div>
</xpath>
<xpath expr="//header//nav" position="replace">
<t t-call="website.navbar">
<t t-set="_navbar_classes" t-valuef="d-none d-lg-block shadow-sm"/>
<div id="o_main_nav" class="container">
<!-- Brand -->
<t t-call="website.placeholder_header_brand"/>
<!-- Menu -->
<t t-call="website.navbar_nav">
<t t-set="_nav_class" t-valuef="flex-grow-1 justify-content-end"/>
<t t-foreach="website.menu_id.child_id" t-as="submenu">
<t t-call="website.submenu">
<t t-set="item_class" t-value="'nav-item'"/>
<t t-set="link_class" t-value="'nav-link'"/>
</t>
</t>
</t>
</div>
</t>
<t t-call="theme_prime.template_header_mobile"/>
</xpath>
</template>
<template id="template_header_style_2" inherit_id="website.layout" name="Header Style - 2" active="False">
<xpath expr="//header" position="attributes">
<attribute name="t-attf-class" add="tp-custom-header" separator=" "/>
</xpath>
<xpath expr="//header//nav" position="replace">
<div class="tp-header-box o_header_hide_on_scroll d-none d-lg-block o_colored_level o_cc">
<div class="container">
<div class="row justify-content-center justify-content-lg-between align-items-center">
<div class="col-4 py-3">
<t t-call="website.website_search_box_input" t-nocache="">
<t t-set="_form_classes" t-valuef="o_wsale_products_searchbar_form border o_not_editable"/>
<t t-set="search_type" t-valuef="products"/>
<t t-set="action" t-value="'/shop'"/>
</t>
</div>
<div class="col-4 text-center py-3">
<!-- Brand -->
<t t-call="website.placeholder_header_brand">
<t t-set="_link_class" t-valuef="d-inline-block mx-auto"/>
</t>
</div>
<div class="col-4 py-3">
<t t-call="theme_prime.component_account_info">
<t t-set="_ul_classes" t-valuef="gap-4 justify-content-end"/>
<t t-set="_hide_search" t-value="True"/>
<t t-set="_show_total" t-value="True"/>
</t>
</div>
</div>
</div>
</div>
<t t-call="website.navbar">
<t t-set="_navbar_classes" t-valuef="d-none d-lg-block shadow-sm"/>
<div id="o_main_nav" class="container">
<!-- Menu -->
<t t-call="website.navbar_nav">
<t t-set="_nav_class" t-valuef="flex-grow-1"/>
<t t-foreach="website.menu_id.child_id" t-as="submenu">
<t t-call="website.submenu">
<t t-set="item_class" t-value="'nav-item'"/>
<t t-set="link_class" t-value="'nav-link'"/>
</t>
</t>
</t>
</div>
</t>
<t t-call="theme_prime.template_header_mobile"/>
</xpath>
</template>
<template id="template_header_style_3" inherit_id="website.layout" name="Header Style - 3" active="False">
<xpath expr="//header" position="attributes">
<attribute name="t-attf-class" add="tp-custom-header" separator=" "/>
</xpath>
<xpath expr="//header//nav" position="replace">
<div class="tp-header-box o_header_hide_on_scroll d-none d-lg-block o_colored_level o_cc">
<div class="container">
<div class="row justify-content-center justify-content-lg-between align-items-center">
<div class="col-4 py-3">
<section class="s_text_block" data-snippet="s_text_block" data-name="Text">
<div class="d-flex align-items-center gap-3">
<div class="flex-shrink-0">
<span class="fa fa-phone text-primary fa-2x"/>
</div>
<div class="flex-grow-1">
<h6 class="mb-1">Call Us</h6>
<h5 class="mb-0"><a href="tel:+123 4567 780">+123 4567 780</a></h5>
</div>
</div>
</section>
</div>
<div class="col-4 text-center py-3">
<!-- Brand -->
<t t-call="website.placeholder_header_brand">
<t t-set="_link_class" t-valuef="d-inline-block mx-auto"/>
</t>
</div>
<div class="col-4 py-3">
<t t-call="theme_prime.component_account_info">
<t t-set="_ul_classes" t-valuef="gap-4 justify-content-end"/>
<t t-set="_show_total" t-value="True"/>
</t>
</div>
</div>
</div>
</div>
<t t-call="website.navbar">
<t t-set="_navbar_classes" t-valuef="d-none d-lg-block shadow-sm"/>
<div id="top_menu_container" class="container justify-content-between">
<div id="o_main_nav" class="container d-flex align-items-center">
<!-- Menu -->
<t t-call="website.navbar_nav">
<t t-set="_nav_class" t-valuef="flex-grow-1 "/>
<t t-foreach="website.menu_id.child_id" t-as="submenu">
<t t-call="website.submenu">
<t t-set="item_class" t-value="'nav-item'"/>
<t t-set="link_class" t-value="'nav-link'"/>
</t>
</t>
</t>
<div class="oe_structure oe_structure_solo flex-shrink-0">
<section class="s_text_block" data-snippet="s_text_block" data-name="Text">
<div class="container">
<a href="/contactus" class="btn btn-link btn_cta"><strong>SPECIAL OFFER</strong></a>
<a href="/contactus" class="btn btn-link btn_cta"><strong>CONTACT US</strong></a>
</div>
</section>
</div>
</div>
</div>
</t>
<t t-call="theme_prime.template_header_mobile"/>
</xpath>
</template>
<template id="template_header_style_4" inherit_id="website.layout" name="Header Style - 4" active="False">
<xpath expr="//header" position="attributes">
<attribute name="t-attf-class" add="tp-custom-header" separator=" "/>
</xpath>
<xpath expr="//header//nav" position="replace">
<div class="tp-header-box o_header_hide_on_scroll d-none d-lg-block o_colored_level o_cc">
<div class="container">
<div class="row align-items-center">
<div class="col-auto py-3">
<!-- Brand -->
<t t-call="website.placeholder_header_brand">
<t t-set="_link_class" t-valuef="d-inline-block"/>
</t>
</div>
<div class="col-auto py-3 flex-grow-1">
<t t-call="website.website_search_box_input" t-nocache="">
<t t-set="_form_classes" t-valuef="mx-auto w-75 o_wsale_products_searchbar_form border o_not_editable"/>
<t t-set="search_type" t-valuef="products"/>
<t t-set="action" t-value="'/shop'"/>
</t>
</div>
<div class="col-auto py-3 o_not_editable">
<div class="row align-items-center justify-content-end tp-account-info">
<div class="col-auto my-1">
<div class="d-flex align-items-center">
<div class="flex-shrink-0">
<t t-nocache="The number of products is dynamic, this rendering cannot be cached.">
<t t-set="website_sale_cart_quantity" t-value="request.session['website_sale_cart_quantity'] if 'website_sale_cart_quantity' in request.session else website.sale_get_order().cart_quantity or 0"/>
<t t-set="show_cart" t-value="true"/>
<div t-attf-class="o_not_editable position-relative o_wsale_my_cart tp-cart-sidebar-action #{not show_cart and 'd-none'}">
<a href="/shop/cart">
<i class="dri dri-cart tp-light-bg rounded-circle"/>
<sup class="my_cart_quantity badge text-bg-primary" t-out="website_sale_cart_quantity" t-att-data-order-id="request.session.get('sale_order_id', '')"/>
</a>
</div>
</t>
</div>
<div class="flex-grow-1 ms-3 d-none d-xl-block">
<div class="mb-1">My Cart</div>
<a class="tp-cart-sidebar-action" href="#"><h6 class="dr-update-cart-total mb-0"><t t-out="website.sale_get_order().amount_total" t-options="{'widget': 'monetary', 'display_currency': website.currency_id}"/></h6></a>
</div>
</div>
</div>
<div class="col-auto my-1">
<div class="d-flex align-items-center">
<div class="flex-shrink-0">
<t t-nocache="The wishlist may vary and depends on the user.">
<t t-set="wishcount" t-value="len(request.env['product.wishlist'].current())"/>
<t t-set="show_wishes" t-value="True"/>
<div t-attf-class="o_not_editable position-relative o_wsale_my_wish #{not show_wishes and 'd-none'}">
<a href="/shop/wishlist">
<i class="dri dri-wishlist tp-light-bg rounded-circle"/>
<sup t-out="wishcount" t-attf-class="my_wish_quantity o_animate_blink badge text-bg-primary"/>
</a>
</div>
</t>
</div>
<div class="flex-grow-1 ms-3 d-none d-xl-block">
<div class="mb-1">My Wishlist</div>
<a href="/shop/wishlist"><h6 class="mb-0">View Wishlist</h6></a>
</div>
</div>
</div>
<div class="col-auto my-1" t-if="not user_id._is_public() or request.website.viewref('portal.user_sign_in').active">
<div class="d-flex align-items-center">
<div class="flex-shrink-0">
<a href="#" class="tp-account-info-sidebar-action">
<i class="dri dri-user tp-light-bg rounded-circle"/>
</a>
</div>
<div class="flex-grow-1 ms-3 d-none d-xl-block">
<div t-nocache="User may vary." style="max-width: 150px;" class="text-truncate mb-1"><t t-out="not user_id._is_public() and user_id.name or 'Guest'"/></div>
<a class="tp-account-info-sidebar-action" href="#"><h6 class="mb-0">My Account</h6></a>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<t t-call="website.navbar">
<t t-set="_navbar_classes" t-valuef="d-none d-lg-block shadow-sm"/>
<!-- Navbar -->
<div id="o_main_nav" class="container">
<t t-call="website.navbar_nav">
<t t-set="_nav_class" t-value="'flex-grow-1'"/>
<!-- Menu -->
<t t-foreach="website.menu_id.child_id" t-as="submenu">
<t t-call="website.submenu">
<t t-set="item_class" t-value="'nav-item'"/>
<t t-set="link_class" t-value="'nav-link'"/>
</t>
</t>
</t>
</div>
</t>
<t t-call="theme_prime.template_header_mobile"/>
</xpath>
</template>
<template id="template_header_style_5" inherit_id="website.layout" name="Header Style - 5" active="False">
<xpath expr="//header" position="attributes">
<attribute name="t-attf-class" add="tp-custom-header" separator=" "/>
</xpath>
<xpath expr="//header//nav" position="replace">
<t t-call="website.navbar">
<t t-set="_navbar_classes" t-valuef="d-none d-lg-block shadow-sm py-3"/>
<div id="o_main_nav" class="container">
<!-- Brand -->
<t t-call="website.placeholder_header_brand"/>
<!-- Navbar -->
<t t-call="website.navbar_nav">
<t t-set="_nav_class" t-valuef="flex-grow-1 justify-content-center"/>
<!-- Menu -->
<t t-foreach="website.menu_id.child_id" t-as="submenu">
<t t-call="website.submenu">
<t t-set="item_class" t-value="'nav-item'"/>
<t t-set="link_class" t-value="'nav-link'"/>
</t>
</t>
</t>
<!-- Account Info -->
<t t-call="theme_prime.component_account_info">
<t t-set="_ul_classes" t-valuef="gap-3"/>
</t>
</div>
</t>
<t t-call="theme_prime.template_header_mobile"/>
</xpath>
</template>
<template id="template_header_style_6" inherit_id="website.layout" name="Header Style - 6" active="False">
<xpath expr="//header" position="attributes">
<attribute name="t-attf-class" add="tp-custom-header" separator=" "/>
</xpath>
<xpath expr="//header//nav" position="replace">
<div class="container py-3 px-0">
<t t-call="website.navbar">
<t t-set="_navbar_classes" t-valuef="o_full_border d-none d-lg-block py-3 px-4 shadow-sm"/>
<div id="o_main_nav" class="container">
<!-- Brand -->
<t t-call="website.placeholder_header_brand">
<t t-set="_link_class" t-valuef="me-4"/>
</t>
<!-- Navbar -->
<t t-call="website.navbar_nav">
<t t-set="_nav_class" t-valuef="me-auto"/>
<!-- Menu -->
<t t-foreach="website.menu_id.child_id" t-as="submenu">
<t t-call="website.submenu">
<t t-set="item_class" t-valuef="nav-item"/>
<t t-set="link_class" t-valuef="nav-link"/>
</t>
</t>
</t>
<!-- Account Info -->
<t t-call="theme_prime.component_account_info">
<t t-set="_ul_classes" t-valuef="gap-3"/>
<t t-set="_show_total" t-value="True"/>
</t>
</div>
</t>
<t t-call="theme_prime.template_header_mobile">
<t t-set="_extra_navbar_classes" t-valuef="o_full_border mx-1"/>
</t>
</div>
</xpath>
</template>
<template id="template_header_style_7" inherit_id="website.layout" name="Header Style - 7" active="False">
<xpath expr="//header" position="attributes">
<attribute name="t-attf-class" add="tp-custom-header" separator=" "/>
</xpath>
<xpath expr="//header//nav" position="replace">
<t t-call="website.navbar">
<t t-set="_navbar_classes" t-valuef="d-none d-lg-block shadow-sm py-3"/>
<div id="o_main_nav" class="container-fluid d-grid gap-4">
<!-- Brand -->
<t t-call="website.placeholder_header_brand"/>
<!-- Menu -->
<t t-call="website.navbar_nav">
<t t-foreach="website.menu_id.child_id" t-as="submenu">
<t t-call="website.submenu">
<t t-set="item_class" t-valuef="nav-item"/>
<t t-set="link_class" t-valuef="nav-link"/>
</t>
</t>
</t>
<!-- Search -->
<t t-call="website.website_search_box_input" t-nocache="">
<t t-set="_form_classes" t-valuef="o_wsale_products_searchbar_form border o_not_editable"/>
<t t-set="search_type" t-valuef="products"/>
<t t-set="action" t-value="'/shop'"/>
</t>
<!-- Account Info -->
<t t-call="theme_prime.component_account_info">
<t t-set="_ul_classes" t-valuef="gap-2"/>
<t t-set="_show_title" t-value="True"/>
<t t-set="_hide_search" t-value="True"/>
</t>
</div>
</t>
<t t-call="theme_prime.template_header_mobile"/>
</xpath>
</template>
<template id="template_header_style_8" inherit_id="website.layout" name="Header Style - 8" active="False">
<xpath expr="//header" position="attributes">
<attribute name="t-attf-class" add="tp-custom-header" separator=" "/>
</xpath>
<xpath expr="//header//nav" position="replace">
<t t-call="website.navbar">
<t t-set="_navbar_classes" t-valuef="d-none d-lg-block shadow-sm py-3"/>
<div id="o_main_nav" class="container-fluid">
<!-- Navbar -->
<t t-call="website.navbar_nav">
<t t-set="_nav_class" t-valuef="flex-grow-1 flex-shrink-1 flex-basis-0"/>
<!-- Menu -->
<t t-foreach="website.menu_id.child_id" t-as="submenu">
<t t-call="website.submenu">
<t t-set="item_class" t-value="'nav-item'"/>
<t t-set="link_class" t-value="'nav-link'"/>
</t>
</t>
</t>
<!-- Brand -->
<t t-call="website.placeholder_header_brand">
<t t-set="_link_class" t-valuef="me-0"/>
</t>
<!-- Account Info -->
<t t-call="theme_prime.component_account_info">
<t t-set="_ul_classes" t-valuef="gap-4 flex-grow-1 flex-shrink-1 flex-basis-0 justify-content-end"/>
</t>
</div>
</t>
<t t-call="theme_prime.template_header_mobile"/>
</xpath>
</template>
</odoo>
+597
View File
@@ -0,0 +1,597 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<!--
============================================================================
Assets
============================================================================
-->
<template id="layout" inherit_id="website.layout" name="Theme Prime: Layout">
<xpath expr="//head/meta[last()]" position="after">
<t t-if="request.website.dr_pwa_activated">
<link rel="manifest" t-attf-href="/pwa/#{request.website.id}/manifest.json"/>
<link rel="apple-touch-icon" sizes="192x192" t-attf-href="/web/image/website/#{request.website.id}/dr_pwa_icon_192/192x192"/>
<meta name="theme-color" t-att-content="request.website.dr_pwa_theme_color"/>
<meta name="mobile-web-app-capable" content="yes"/>
<meta name="apple-mobile-web-app-title" t-att-content="request.website.dr_pwa_name"/>
<meta name="apple-mobile-web-app-capable" content="yes"/>
<meta name="apple-mobile-web-app-status-bar-style" content="default"/>
</t>
</xpath>
<xpath expr="//head/link[last()]" position="after">
<link rel="preload" href="/theme_prime/static/lib/Droggol-Pack-v1.0/fonts/Droggol-Pack.ttf?4iwoe7" as="font" crossorigin=""/>
</xpath>
</template>
<!--
============================================================================
Bottombar
============================================================================
-->
<template id="template_bottom_bar" inherit_id="website.layout" name="Theme Prime: Bottombar">
<xpath expr="//div[@id='wrapwrap']/header" position="before">
<t t-if="request.website._get_dr_theme_config('json_bottom_bar')['show_bottom_bar']">
<t t-call="theme_prime.tp_mobile_bottombar_component"/>
</t>
</xpath>
</template>
<!--
============================================================================
Optional Product Dialog
============================================================================
-->
<template id="configure_optional_products" inherit_id="website_sale_product_configurator.configure_optional_products">
<xpath expr="//table" position="attributes">
<attribute name="class" add="border" remove="table-striped table-sm" separator=" "/>
</xpath>
<xpath expr="//thead" position="attributes">
<attribute name="class" add="thead-light" separator=" "/>
</xpath>
<xpath expr="//table//tr[hasclass('o_select_options')]/td" position="replace">
<td colspan="4" class="bg-200"><h5 class="mb-0">Available Options</h5></td>
</xpath>
</template>
<template id="optional_product_items" inherit_id="website_sale_product_configurator.optional_product_items">
<xpath expr="//a[hasclass('js_add')]" position="replace">
<a role="button" href="#" class="js_add btn btn-primary-soft mt-2" title="Add to cart">
<i class="dri dri-cart add-optionnal-item"></i>
</a>
</xpath>
<xpath expr="//a[hasclass('js_remove')]" position="replace">
<a role="button" href="#" class="js_remove text-danger mt-2 d-inline-block" title="Remove from cart">
<i class="fa fa-trash-o remove-optionnal-item"></i>
</a>
</xpath>
</template>
<!--
============================================================================
Menu Label
============================================================================
-->
<template id="submenu" inherit_id="website.submenu" name="Theme Prime: Submenu">
<xpath expr="//span[@t-field='submenu.name']/.." position="attributes">
<attribute name="t-attf-style">#{submenu.dr_is_highlight_menu and 'background-color: %s; color: %s;' % (submenu.dr_highlight_menu_bg_color, submenu.dr_highlight_menu_text_color) or ''}</attribute>
</xpath>
<xpath expr="//span[@t-field='submenu.name']" position="replace">
<span>
<span t-field="submenu.name"/>
<span t-if="submenu.dr_menu_label_id" class="tp-menu-label" t-attf-style="background-color: #{submenu.dr_menu_label_id.background_color}; color: #{submenu.dr_menu_label_id.text_color}">
<span t-field="submenu.dr_menu_label_id.name"/>
<div class="before" t-attf-style="border-color: #{submenu.dr_menu_label_id.background_color};"/>
</span>
</span>
</xpath>
<xpath expr="//a[@data-bs-toggle='dropdown']" position="attributes">
<attribute name="t-attf-style">#{submenu.dr_is_highlight_menu and 'background-color: %s; color: %s;' % (submenu.dr_highlight_menu_bg_color, submenu.dr_highlight_menu_text_color) or ''}</attribute>
</xpath>
<xpath expr="//a[@data-bs-toggle='dropdown']/span" position="replace">
<span>
<span t-field="submenu.name"/>
<span t-if="submenu.dr_menu_label_id" class="tp-menu-label" t-attf-style="background-color: #{submenu.dr_menu_label_id.background_color}; color: #{submenu.dr_menu_label_id.text_color}">
<span t-field="submenu.dr_menu_label_id.name"/>
<div class="before" t-attf-style="border-color: #{submenu.dr_menu_label_id.background_color};"/>
</span>
</span>
</xpath>
<xpath expr="//span[@t-field='submenu.name']" position="before">
<i t-if="submenu.dr_is_highlight_menu and submenu.is_mega_menu" class="dri dri-category me-1"/>
</xpath>
<xpath expr="//a[@data-bs-toggle='dropdown']/span/span" position="before">
<i t-if="submenu.dr_is_highlight_menu and submenu.is_mega_menu" class="dri dri-category me-1"/>
</xpath>
<xpath expr="//t[@t-set='show_dropdown']" position="after">
<t t-set="item_class" t-valuef="#{item_class or ''} #{submenu.dr_is_highlight_menu and 'tp-highlight-menu' or ''} #{submenu.dr_menu_visible_on == 'desktop' and 'dr_hide_in_mobile' or ''}"/>
</xpath>
</template>
<!--
============================================================================
Variants
============================================================================
-->
<template id="variants" inherit_id="website_sale.variants" name="Theme Prime: Variants">
<xpath expr="//strong[hasclass('attribute_name')]" position="replace">
<div class="d-flex align-items-center mb-2">
<h6 t-field="ptal.attribute_id.name" class="attribute_name mb-0 pb-0"/>
<t t-set="dr_attribute_popup_id" t-value="ptal.dr_attribute_popup_id or ptal.attribute_id.dr_attribute_popup_id"/>
<a t-if="dr_attribute_popup_id" class="dr-attribute-instruction-btn tp-lazy-dialog link-primary ms-4" style="display: none;" href="#" data-res-model="dr.website.content" t-att-data-res-id="dr_attribute_popup_id.id" data-field="content">
<span t-field="dr_attribute_popup_id.name"/> <i class="fa fa-angle-right"/>
</a>
</div>
</xpath>
<xpath expr="//ul/t/li" position="inside">
<t t-if="ptal.attribute_id.display_type in ['radio_circle', 'radio_square', 'radio_image']">
<ul t-att-data-attribute_id="ptal.attribute_id.id" t-attf-class="list-inline dr-attribute-item o_wsale_product_attribute #{'d-none' if single_and_custom else ''}">
<t t-foreach="ptal.product_template_value_ids._only_active()" t-as="ptav">
<li class="list-inline-item me-1 js_attribute_value">
<label>
<div>
<input type="radio"
t-attf-class="js_variant_change d-none #{ptal.attribute_id.create_variant}"
t-att-checked="ptav in combination"
t-att-name="'ptal-%s' % ptal.id"
t-att-value="ptav.id"
t-att-data-value_id="ptav.id"
t-att-data-value_name="ptav.name"
t-att-data-attribute_name="ptav.attribute_id.name"
t-att-data-is_custom="ptav.is_custom"
t-att-data-is_single="single"
t-att-data-is_single_and_custom="single_and_custom" />
<div class="radio_input_value d-flex flex-column align-items-center me-0">
<div t-if="not ptal.attribute_id.display_type == 'radio_image'" t-attf-class="dr-value-item fw-normal #{ptal.attribute_id.display_type == 'radio_circle' and 'circle' or 'square'}" t-field="ptav.name"/>
<div t-else="" class="dr-value-item image" t-att-title="ptav.name" t-field="ptav.dr_image" t-options="{'widget': 'image'}"/>
<t t-call="website_sale.badge_extra_price"/>
</div>
</div>
</label>
</li>
</t>
</ul>
</t>
</xpath>
<t t-set="img_style" position="after">
<t t-if="ptav.dr_thumb_image" t-set="img_style"
t-value="'background:url(/web/image/product.template.attribute.value/%s/dr_thumb_image); background-size:cover;' % ptav.id if ptav.dr_thumb_image else ''"
/>
</t>
</template>
<!--
============================================================================
404 Page
============================================================================
-->
<template id="404" inherit_id="http_routing.404" name="Theme Prime: 404">
<xpath expr="//div[@id='wrap']" position="replace">
<div id="wrap">
<t t-out="0"/>
<div class="container">
<div class="row justify-content-center">
<div class="col-12 col-lg-6">
<t t-call="theme_prime.tp_svg_404">
<t t-set="_classes" t-value="'mt-4'"/>
</t>
</div>
<div class="col-12 text-center mt32">
<h2>We can't seem to find the page you are looking for</h2>
<p class="mt-3 lead">
Here are some helpful links instead
</p>
</div>
</div>
</div>
<div class="oe_structure oe_empty">
<div class="container my-4">
<div class="row justify-content-center">
<div class="col-12 col-lg-10 col-xl-8">
<div class="row">
<div class="col-12 col-lg-4 mb-3">
<a class="card" href="/">
<div class="card-body py-3">
<div class="d-flex align-items-center">
<div class="flex-shrink-0">
<span class="dri dri-home-l fa-2x text-primary ms-1 me-3"></span>
</div>
<div class="flex-grow-1">
<h6 class="mb-1">Homepage</h6>
<div>Return to homepage</div>
</div>
</div>
</div>
</a>
</div>
<div class="col-12 col-lg-4 mb-3">
<a class="card tp-search-sidebar-action" href="#">
<div class="card-body py-3">
<div class="d-flex align-items-center">
<div class="flex-shrink-0">
<span class="dri dri-search-l fa-2x text-success ms-1 me-3"></span>
</div>
<div class="flex-grow-1">
<h6 class="mb-1">Search</h6>
<div>Find your product</div>
</div>
</div>
</div>
</a>
</div>
<div class="col-12 col-lg-4 mb-3">
<a class="card" href="/contactus">
<div class="card-body py-3">
<div class="d-flex align-items-center">
<div class="flex-shrink-0">
<span class="dri dri-phone-l fa-2x text-info ms-1 me-3"></span>
</div>
<div class="flex-grow-1">
<h6 class="mb-1">Contact us</h6>
<div>Get in touch with us</div>
</div>
</div>
</div>
</a>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</xpath>
</template>
<!--
============================================================================
Cart Page
============================================================================
-->
<template id="cart_lines" inherit_id="website_sale.cart_lines" name="Shopping Cart Lines">
<t t-call="website_sale.cart_line_description_following_lines" position="after">
<ul class="list-inline mt-2 mb-0 d-none d-md-block" groups="product.group_product_variant">
<t t-foreach="line.product_id.product_template_variant_value_ids" t-as="att">
<li class="list-inline-item mb-1">
<span class="badge text-bg-light border">
<span t-field="att.attribute_id.name"/>: <span t-field="att.name"/>
</span>
</li>
</t>
</ul>
</t>
</template>
<template id="cart_lines_subtotal" inherit_id="website_sale.cart_lines" customize_show="True" active="True" name="Show Subtotal in Cart Lines">
<t t-call="website_sale.cart_line_description_following_lines" position="after">
<h6 class="mt-2" style="font-size: 12px;">
Subtotal:
<span t-if="website.show_line_subtotals_tax_selection == 'tax_excluded'" t-field="line.price_subtotal" style="white-space: nowrap;" t-options="{'widget': 'monetary', 'display_currency': website_sale_order.currency_id}"/>
<span t-if="website.show_line_subtotals_tax_selection == 'tax_included'" t-field="line.price_total" style="white-space: nowrap;" t-options="{'widget': 'monetary', 'display_currency': website_sale_order.currency_id}"/>
</h6>
</t>
</template>
<template id="coupon_form" inherit_id="website_sale.coupon_form">
<xpath expr="//a[hasclass('a-submit')]" position="attributes">
<attribute name="class" separator=" " add="btn-primary" remove="btn-secondary"/>
</xpath>
</template>
<template id="suggested_products_list" inherit_id="website_sale.suggested_products_list" name="Alternative Products in my cart">
<h5 t-if="suggested_products" position="replace">
<h5 t-attf-class="mt32 mb-4" t-if="suggested_products">Suggested Products</h5>
</h5>
<xpath expr="//div[hasclass('o_cart_suggested_product_name')]//a" position="attributes">
<attribute name="class" separator=" " add="h6"/>
</xpath>
<xpath expr="//a[hasclass('js_add_suggested_products')]" position="attributes">
<attribute name="class" separator=" " add="mb-2"/>
</xpath>
</template>
<!--
============================================================================
Wishlist page
============================================================================
-->
<template id="product_wishlist" inherit_id="website_sale_wishlist.product_wishlist" name="Theme Prime: Wishlist Page">
<xpath expr="//section[hasclass('wishlist-section')]" position="attributes">
<attribute name="t-if">False</attribute>
</xpath>
<xpath expr="//section[hasclass('wishlist-section')]" position="after">
<section class="container wishlist-section my-4">
<div class="row align-items-center">
<div class="col-12">
<h3 class="d-inline-block mb-0 me-2">My Wishlist</h3>
<span class="tp-wishlist-counter" t-out="len(wishes)"/> items
<hr/>
</div>
</div>
<div class="form-check">
<input type="checkbox" class="form-check-input" id="b2b_wish" value="1"/>
<label class="form-check-label" for="b2b_wish">Add product to my cart but keep it in my wishlist</label>
</div>
<div class="row py-4">
<t t-foreach="wishes" t-as="wish">
<t t-set="combination_info" t-value="wish.product_id._get_combination_info_variant()"/>
<div class="col-12 col-sm-6 col-md-4 col-lg-3 mb-4 tp-wishlist-item" t-att-data-wish-id="wish.id" t-att-data-product-id="wish.product_id.id" t-att-data-product-tracking-info="'product_tracking_info' in combination_info and json.dumps(combination_info['product_tracking_info'])">
<div class="card h-100">
<a class="card-img-top text-center" t-att-href="wish.product_id.website_url">
<img t-attf-src="/web/image/product.product/#{wish.product_id.id}/image_1920/350x350" class="img-fluid" t-att-alt="wish.product_id.display_name"/>
</a>
<a href="#" class="tp_wish_rm tp-icon-center-1 dr-d-icon shadow rounded-circle text-muted position-absolute top-0 end-0 m-2" title="Remove from wishlist">
<i class="fa fa-times"/>
</a>
<t t-call="theme_prime.product_label">
<t t-set="label" t-value="wish.product_id.dr_label_id"/>
</t>
<div class="card-body p-2">
<div class="card-text">
<h6 class="text-truncate mb-1">
<a t-att-href="wish.product_id.website_url" class="tp-link-dark" t-att-title="wish.product_id.display_name" t-out="wish.product_id.display_name"/>
</h6>
<div t-if="request.website._dr_has_b2b_access()">
<div t-if="combination_info['prevent_zero_price_sale']">
<strong t-field="website.prevent_zero_price_sale_text"/>
</div>
<div t-else="">
<h6 class="text-primary d-inline-block mb-0" t-out="combination_info['price']" t-options="{'widget': 'monetary', 'display_currency': website.currency_id}"/>
<small t-attf-class="oe_default_price ms-1 {{'' if combination_info['has_discounted_price'] else 'd-none'}}" style="text-decoration: line-through; white-space: nowrap;" t-out="combination_info['list_price']" t-options="{'widget': 'monetary', 'display_currency': website.currency_id}"/>
<t t-call="theme_prime.discount_percentage"/>
<small t-if="combination_info['base_unit_price']" class="cart_product_base_unit_price d-block text-muted" groups="website_sale.group_show_uom_price">
<t t-call='website_sale.base_unit_price'>
<t t-set='product' t-value='wish.product_id' />
</t>
</small>
</div>
</div>
<t t-else="" t-call="theme_prime.tp_b2b_price_label"/>
<t t-if="not wish.product_id.allow_out_of_stock_order and wish.product_id._is_sold_out()">
<small class="text-danger">Temporarily out of stock</small>
<t t-set="has_stock_notification" t-value="wish.product_id._has_stock_notification(wish.partner_id) or request and wish.product_id.id in request.session.get('product_with_stock_notification_enabled', set())"/>
<div id="stock_notification_div" t-if="not wish.product_id.allow_out_of_stock_order" class="small d-inline-block w-100">
<div class="btn btn-link" t-if="not has_stock_notification"
id="wishlist_stock_notification_message">
<small>
<i class="fa fa-envelope-o"/>
Get notified when back in stock
</small>
</div>
<div id="stock_notification_form" class="d-none">
<div class="input-group">
<input id="stock_notification_input"
class="form-control"
name="email"
type="text"
placeholder="youremail@gmail.com"
t-att-value="request.env.user.partner_id.email or request.session.get('stock_notification_email', '')"/>
<div id="wishlist_stock_notification_form_submit_button"
class="btn btn-secondary">
<i class="fa fa-paper-plane"/>
</div>
<div id="stock_notification_input_incorrect" class="btn d-none">
<i class="fa fa-times text-danger"/>
Invalid email
</div>
</div>
</div>
<div id="stock_notification_success_message" class="text-muted"
t-att-class="'text-muted' if has_stock_notification else 'd-none'">
<i class="fa fa-bell"/>
We'll notify you once the product is back in stock.
</div>
</div>
</t>
<div class="btn-group w-100" role="group">
<t t-set="is_sold_out" t-value="not wish.product_id.allow_out_of_stock_order and wish.product_id._is_sold_out()"/>
<a t-if="combination_info['prevent_zero_price_sale']" t-att-href="website.contact_us_button_url" class="btn btn-primary btn_cta mt-2">Contact Us</a>
<button t-else="" id="add_to_cart_button" role="button" class="btn btn-primary tp_wish_add mt-2" t-att-disabled="is_sold_out">
<i class="dri dri-cart"></i> Add to cart
</button>
<button type="button" t-if="is_view_active('website_sale_comparison.add_to_compare')" class="btn btn-link o_add_to_compare mt-2 d-none d-md-inline tp-link-dark" t-att-data-product-id='wish.product_id.id'>
<small>
<i class="dri dri-compare"/> Add to compare
</small>
</button>
</div>
</div>
</div>
</div>
</div>
</t>
</div>
</section>
</xpath>
</template>
<!--
============================================================================
Comparison page
============================================================================
-->
<template id="product_compare" inherit_id="website_sale_comparison.product_compare">
<section class="container" position="attributes">
<attribute name="t-if">False</attribute>
</section>
<section class="container" position="after">
<section class="container my-4">
<div class="row align-items-center">
<div class="col-12">
<h3 class="d-inline-block me-2 mb-0">Comparison</h3>
<span>
<t t-out="len(products)"/> items
</span>
</div>
</div>
<div class="row py-4 tp-product-comparison">
<div class="table-responsive">
<table class="table w-auto">
<t t-set="categories" t-value="products._prepare_categories_for_display()"/>
<thead>
<tr>
<td t-if="len(categories)"/>
<td t-foreach="products" t-as="product">
<div class="card border-0">
<a class="card-img-top text-center" t-att-href="product.website_url">
<img t-attf-src="/web/image/product.product/#{product.id}/image_1920/350x350" class="img-fluid" t-att-alt="product.display_name"/>
</a>
<a t-if="len(products) &gt; 2" href="#" t-att-data-product_product_id="product.id" class="o_comparelist_remove tp-icon-center-1 dr-d-icon shadow rounded-circle text-muted position-absolute top-0 end-0 m-2" title="Remove from comparison">
<i class="fa fa-times"/>
</a>
<t t-call="theme_prime.product_label">
<t t-set="label" t-value="product.dr_label_id"/>
</t>
<div class="card-body p-2">
<div class="card-text">
<t t-set="combination_info" t-value="product._get_combination_info_variant()"/>
<h6 class="text-truncate mb-1">
<a class="tp-link-dark" t-att-title="combination_info['display_name']" t-att-href="product.website_url">
<t t-out="combination_info['display_name']"/>
</a>
</h6>
<div t-if="request.website._dr_has_b2b_access()">
<span class="o_comparison_price" t-if="combination_info['prevent_zero_price_sale']">
<strong t-field="website.prevent_zero_price_sale_text"/>
</span>
<span class="o_comparison_price" t-else="">
<h6 class="text-primary d-inline-block mb-0" t-out="combination_info['price']" t-options="{'widget': 'monetary', 'display_currency': website.currency_id}"/>
<small t-if="combination_info['compare_list_price'] and (combination_info['compare_list_price'] &gt; combination_info['price'])" t-attf-class="oe_default_price ms-1" style="text-decoration: line-through; white-space: nowrap;" t-out="combination_info['compare_list_price']" t-options="{'widget': 'monetary', 'display_currency': website.currency_id}"/>
<small t-else="" t-attf-class="oe_default_price ms-1 {{'' if combination_info['has_discounted_price'] else 'd-none'}}" style="text-decoration: line-through; white-space: nowrap;" t-out="combination_info['list_price']" t-options="{'widget': 'monetary', 'display_currency': website.currency_id}"/>
<t t-call="theme_prime.discount_percentage"/>
<small class="d-block text-muted" groups="website_sale.group_show_uom_price" t-if="combination_info['base_unit_price']">
<t t-call='website_sale.base_unit_price'/>
</small>
</span>
</div>
<t t-else="" t-call="theme_prime.tp_b2b_price_label"/>
<form action="/shop/cart/update" method="post" class="mt-2 o_add_cart_form_compare">
<input type="hidden" name="csrf_token" t-att-value="request.csrf_token()"/>
<input name="product_id"
type="hidden"
t-att-value="product.id"
t-att-data-product-tracking-info="'product_tracking_info' in combination_info and json.dumps(combination_info['product_tracking_info'])"/>
<a t-if="combination_info['prevent_zero_price_sale']" t-att-href="website.contact_us_button_url" class="btn btn-primary w-100 btn_cta">Contact Us</a>
<a t-else="" role="button" class="btn btn-primary-soft w-100 a-submit" href="#">
<i class="dri dri-cart"></i> Add to cart
</a>
</form>
</div>
</div>
</div>
</td>
</tr>
</thead>
<tbody>
<t t-foreach="categories" t-as="category">
<t t-foreach="categories[category]" t-as="attribute">
<tr>
<td class="align-middle">
<h6 class="m-0" t-field="attribute.name"/>
</td>
<td t-foreach="categories[category][attribute]" t-as="product">
<t t-foreach="categories[category][attribute][product]" t-as="ptav">
<span t-field="ptav.name"/>
<t t-if="not ptav_last">, </t>
</t>
<t t-if="not categories[category][attribute][product]">
-
</t>
</td>
</tr>
</t>
</t>
</tbody>
</table>
</div>
</div>
</section>
</section>
</template>
<!--
============================================================================
Comparison popup
============================================================================
-->
<template id="comparison_popup" inherit_id="website_sale_comparison.product_product" name="Theme Prime: Comparison Popup">
<xpath expr="//h6" position="replace">
<h6 t-attf-class="#{'mb-0' if not request.website._dr_has_b2b_access() else ''}">
<a t-att-href="product.website_url">
<t t-out="combination_info['display_name']" />
</a>
<br/>
<div t-if="request.website._dr_has_b2b_access()" t-attf-class="{{'d-none' if combination_info['prevent_zero_price_sale'] else ''}}">
<del t-if="combination_info['compare_list_price'] and (combination_info['compare_list_price'] &gt; combination_info['price'])" t-attf-class="text-danger mr8" style="white-space: nowrap;" t-esc="combination_info['compare_list_price']" t-options="{'widget': 'monetary', 'display_currency': website.currency_id}" />
<del t-else="" t-attf-class="text-danger mr8 {{'' if combination_info['has_discounted_price'] else 'd-none'}}" style="white-space: nowrap;" t-esc="combination_info['list_price']" t-options="{'widget': 'monetary', 'display_currency': website.currency_id}" />
<span t-out="combination_info['price']" t-options="{'widget': 'monetary', 'display_currency': website.currency_id}"/>
</div>
<div t-if="request.website._dr_has_b2b_access()" t-attf-class="{{'' if combination_info['prevent_zero_price_sale'] else 'd-none'}}" t-field="website.prevent_zero_price_sale_text"/>
</h6>
<t t-if="not request.website._dr_has_b2b_access()" t-call="theme_prime.tp_b2b_price_label">
<t t-set="_classes" t-valuef="ms-2"/>
</t>
</xpath>
</template>
<!--
============================================================================
Options
============================================================================
-->
<template id="option_back_to_top" inherit_id="website.layout" active="True">
<xpath expr="//div[@id='wrapwrap']" position="inside">
<a href="#" class="tp-back-to-top tp-icon-center-2 dr-p-icon o_not_editable shadow-tp d-none position-fixed" contenteditable="false" title="Scroll back to top">
<i class="fa fa-angle-up"/>
</a>
</xpath>
</template>
<template id="option_icon_pack_1" inherit_id="website.layout" active="True">
<xpath expr="//head/link[last()]" position="after">
<link rel="stylesheet" type="text/css" href="/theme_prime/static/lib/Droggol-Pack-v1.0/droggol-pack-1.css"/>
</xpath>
</template>
<template id="option_icon_pack_2" inherit_id="website.layout" active="False">
<xpath expr="//head/link[last()]" position="after">
<link rel="stylesheet" type="text/css" href="/theme_prime/static/lib/Droggol-Pack-v1.0/droggol-pack-2.css"/>
</xpath>
</template>
<template id="option_icon_pack_3" inherit_id="website.layout" active="False">
<xpath expr="//head/link[last()]" position="after">
<link rel="stylesheet" type="text/css" href="/theme_prime/static/lib/Droggol-Pack-v1.0/droggol-pack-3.css"/>
</xpath>
</template>
<template id="option_icon_pack_4" inherit_id="website.layout" active="False">
<xpath expr="//head/link[last()]" position="after">
<link rel="stylesheet" type="text/css" href="/theme_prime/static/lib/Droggol-Pack-v1.0/droggol-pack-4.css"/>
</xpath>
</template>
<template id="option_icon_pack_5" inherit_id="website.layout" active="False">
<xpath expr="//head/link[last()]" position="after">
<link rel="stylesheet" type="text/css" href="/theme_prime/static/lib/Droggol-Pack-v1.0/droggol-pack-5.css"/>
</xpath>
</template>
<template id="option_icon_pack_6" inherit_id="website.layout" active="False">
<xpath expr="//head/link[last()]" position="after">
<link rel="stylesheet" type="text/css" href="/theme_prime/static/lib/Droggol-Pack-v1.0/droggol-pack-6.css"/>
</xpath>
</template>
<template id="option_icon_pack_7" inherit_id="website.layout" active="False">
<xpath expr="//head/link[last()]" position="after">
<link rel="stylesheet" type="text/css" href="/theme_prime/static/lib/Droggol-Pack-v1.0/droggol-pack-7.css"/>
</xpath>
</template>
<template id="option_icon_pack_8" inherit_id="website.layout" active="False">
<xpath expr="//head/link[last()]" position="after">
<link rel="stylesheet" type="text/css" href="/theme_prime/static/lib/Droggol-Pack-v1.0/droggol-pack-8.css"/>
</xpath>
</template>
</odoo>
+152
View File
@@ -0,0 +1,152 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<!--
============================================================================
Brands
============================================================================
-->
<template id="all_brands" name="Theme Prime: All Brands">
<t t-call="website.layout">
<div id="wrap" t-cache="search,brands">
<div class="container pt-4">
<div class="row justify-content-between align-items-center">
<div class="col-auto">
<ol class="breadcrumb bg-transparent p-0">
<li class="breadcrumb-item">
<a href="/">Home</a>
</li>
<li class="breadcrumb-item active">
<span>Brands</span>
</li>
</ol>
<h1 class="h4">Brands</h1>
</div>
<div class="col-auto">
<form class="mw-100" action="/shop/all-brands" method="get">
<div class="input-group">
<input type="text" name="search" class="form-control" placeholder="Search brands..." t-att-value="search"/>
<input type="hidden" t-if="posted_style" name="style" t-att-value="style"/>
<button class="btn btn-primary" type="submit" id="search"><i class="dri dri-search"/></button>
</div>
</form>
</div>
</div>
<hr/>
</div>
<div class="oe_structure" id="oe_structure_all_brands"/>
<div class="container py-4 tp-all-brands-page">
<div t-if="not is_disable_grouping" class="row pb-4 mb-3">
<div class="col-12">
<ul class="tp-brand-range list-unstyled d-flex flex-nowrap overflow-auto mb-0">
<li>
<a href="#" data-alphabet="all" class="tp-brand-search-alphabet active d-flex justify-content-center fw-bold text-uppercase border align-items-center">
All
</a>
</li>
<li t-foreach="grouped_brands" t-as="alphabet">
<a t-if="len(grouped_brands[alphabet])" href="#" t-att-data-alphabet="alphabet" class="tp-brand-search-alphabet d-flex justify-content-center fw-bold text-uppercase border align-items-center">
<t t-out="alphabet"/>
</a>
<a t-else="" href="#" class="tp-brand-search-alphabet d-flex justify-content-center fw-bold text-uppercase border align-items-center readonly">
<t t-out="alphabet"/>
</a>
</li>
</ul>
</div>
</div>
<div class="row">
<div t-if="len(grouped_brands[alphabet])" class="col-12 tp-grouped-brands" t-foreach="grouped_brands" t-as="alphabet" t-att-data-brand="alphabet">
<h3 t-if="not is_disable_grouping" class="mb-0 fw-bold" t-out="alphabet"/>
<hr t-if="not is_disable_grouping"/>
<div class="row mb-4">
<div class="col-12 col-md-6 col-lg-4 col-xl-3 my-2" t-foreach="grouped_brands[alphabet]" t-as="brand">
<a class="tp-brand-wrapper d-block border" t-attf-href="/shop?attrib=#{brand.attribute_id.id}-#{brand.id}">
<div class="row g-0">
<div class="col-5 border-end p-2 d-flex align-items-center justify-content-center">
<img class="img img-fluid" t-attf-src="/web/image/product.attribute.value/#{brand.id}/dr_image" t-att-alt="brand.name"/>
</div>
<div class="col-5 ps-3 py-4 d-flex align-items-start justify-content-center flex-column">
<h6 t-field="brand.name" class="w-100 text-truncate"></h6>
<div class="small text-body"><t t-out="get_brand_count.get(brand.id) or 0"/> Products</div>
</div>
<div class="col-2 d-flex align-items-center justify-content-center">
<button class="btn btn-primary-soft btn-sm px-2 rounded-circle">
<i class="dri dri-chevron-right-l fw-bold"></i>
</button>
</div>
</div>
</a>
</div>
</div>
</div>
</div>
</div>
</div>
</t>
</template>
<!--
============================================================================
PWA Offline
============================================================================
-->
<template id="pwa_offline_page" name="Theme Prime: PWA - Offline Page">
<html>
<meta name="viewport" content="width=device-width, initial-scale=1.0"/>
<head>
<style>
body {
font-family: -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;
color: #3f3d56;
}
h1, h2 {
margin-top: 0px;
}
div.tp-container {
text-align: center;
display: flex;
flex-direction: column;
justify-content: center;
height: 100%;
}
.tp-logo img {
max-width: 150px;
height: auto;
}
.tp-offline-icon {
width: 60%;
max-width: 350px;
margin: 25px 0px;
}
a.btn {
padding: 12px 26px;
color: #fff;
background: #3f3d56;
text-decoration: none;
font-weight: bold;
display: inline-block;
}
</style>
</head>
<body >
<div class="tp-container">
<div class="tp-logo">
<img src="/pwa/logo.png"/>
</div>
<div>
<img class="tp-offline-icon" src='/theme_prime/static/src/img/pwa_offline.png' style=""/>
</div>
<h1>
You do not have internet connection !
</h1>
<div>
<a class="btn" href="#" onclick="window.location.reload(true);"> RELOAD </a>
</div>
</div>
</body>
</html>
</template>
</odoo>
+199
View File
@@ -0,0 +1,199 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<template id="template_preheader_style_1" inherit_id="website.layout" name="Preheader Style - 1" active="False">
<xpath expr="//header/*" position="before">
<div class="tp-preheader o_colored_level o_cc" data-name="Preheader">
<div class="container">
<div class="row justify-content-center justify-content-lg-between">
<div class="col-auto py-2">
<div class="oe_structure oe_structure_solo">
<section class="s_text_block" data-snippet="s_text_block" data-name="Text">
<div class="container">
<div>Summer Special <span class="mx-2">|</span> Get 50% Off <span class="mx-2">|</span> Code #GET50</div>
</div>
</section>
</div>
</div>
<div class="col-auto py-2 text-end d-none d-lg-block">
<t t-call="theme_prime.component_language_pricelist_selector"/>
</div>
</div>
</div>
</div>
</xpath>
</template>
<template id="template_preheader_style_2" inherit_id="website.layout" name="Preheader Style - 2" active="False">
<xpath expr="//header/*" position="before">
<div class="tp-preheader o_colored_level o_cc" data-name="Preheader">
<div class="container">
<div class="row justify-content-center align-items-center justify-content-lg-between">
<div class="col-auto py-3 d-none d-lg-block">
<div class="d-flex align-items-center gap-3">
<t t-call="theme_prime.component_language_pricelist_selector"/>
<div class="oe_structure oe_structure_solo">
<section class="s_text_block" data-snippet="s_text_block" data-name="Text">
<div class="container">
<div>Available 24/7 at <b>(001) 123-4567</b></div>
</div>
</section>
</div>
</div>
</div>
<div class="col-auto py-3">
<div class="oe_structure oe_structure_solo">
<section class="s_text_block" data-snippet="s_text_block" data-name="Text">
<div class="container">
<b>First purchase offer: Get 15% off.</b> Code applied at checkout. Exclusion apply*
</div>
</section>
</div>
</div>
</div>
</div>
</div>
</xpath>
</template>
<template id="template_preheader_style_3" inherit_id="website.layout" name="Preheader Style - 3" active="False">
<xpath expr="//header/*" position="before">
<div class="tp-preheader o_colored_level o_cc" data-name="Preheader">
<div class="container">
<div class="row justify-content-center align-items-center">
<div class="col-12 col-lg-4 py-2 d-none d-lg-flex justify-content-start">
<ul class="list-inline mb-0">
<li class="list-inline-item"><a href="tel:1 (650) 691-3277"><i class="fa fa-1x fa-fw fa-phone fa-stack"/> 1 (650) 691-3277</a></li>
<li class="list-inline-item"><a href="mailto:info@yourcompany.com"><i class="fa fa-1x fa-fw fa-envelope fa-stack"/> info@yourcompany.com</a></li>
</ul>
</div>
<div class="col-12 col-lg-4 py-2 d-flex justify-content-center">
<div class="s_text_block d-flex gap-1 gap-lg-3 align-items-lg-center" data-name="Text">
<small class="d-flex align-items-center">
<i class="fa fa-1x fa-fw fa-truck fa-stack me-1"/>
Free Delivery
</small>
<small class="d-flex align-items-center">
<i class="fa fa-1x fa-fw fa-support fa-stack me-1"/>
24 x 7 Support
</small>
<small class="d-flex align-items-center">
<i class="fa fa-1x fa-fw fa-refresh fa-stack me-1"/>
30 Days Return
</small>
</div>
</div>
<div class="col-12 col-lg-4 py-2 d-none d-lg-flex justify-content-end">
<t t-call="theme_prime.component_language_pricelist_selector"/>
</div>
</div>
</div>
</div>
</xpath>
</template>
<template id="template_preheader_style_4" inherit_id="website.layout" name="Preheader Style - 4" active="False">
<xpath expr="//header/*" position="before">
<div class="tp-preheader o_colored_level o_cc" data-name="Preheader">
<div class="container">
<div class="row justify-content-lg-between justify-content-center align-items-center">
<div class="col-auto py-2 d-none d-lg-block">
<t t-call="theme_prime.component_language_pricelist_selector"/>
</div>
<div class="col-auto py-2 d-none d-lg-block">
<section><div>Free Returns. Standard Shipping. Orders $99.</div></section>
</div>
<div class="col-auto py-2 d-none d-lg-block">
<ul class="list-inline mb-0 d-flex gap-3">
<li class="list-inline-item"><a href="#">Contact Us</a></li>
<li class="list-inline-item"><a href="#">About Us</a></li>
<li class="list-inline-item"><a href="#">Terms</a></li>
<li class="list-inline-item"><a href="#">FAQ</a></li>
</ul>
</div>
<div class="col-auto py-2">
<div class="s_social_media o_not_editable no_icon_color" data-snippet="s_social_media" data-name="Social Media">
<a href="/website/social/facebook" class="s_social_media_facebook" target="_blank">
<i class="fa fa-facebook p-1 o_editable_media"/>
</a>
<a href="/website/social/twitter" class="s_social_media_twitter" target="_blank">
<i class="fa fa-twitter p-1 o_editable_media"/>
</a>
<a href="/website/social/linkedin" class="s_social_media_linkedin" target="_blank">
<i class="fa fa-linkedin p-1 o_editable_media"/>
</a>
<a href="/website/social/github" class="s_social_media_github" target="_blank">
<i class="fa fa-github p-1 o_editable_media"/>
</a>
<a href="/website/social/youtube" class="s_social_media_youtube" target="_blank">
<i class="fa fa-youtube p-1 o_editable_media"/>
</a>
<a href="/website/social/instagram" class="s_social_media_instagram" target="_blank">
<i class="fa fa-instagram p-1 o_editable_media"/>
</a>
</div>
</div>
</div>
</div>
</div>
</xpath>
</template>
<template id="template_preheader_style_5" inherit_id="website.layout" name="Preheader Style - 5" active="False">
<xpath expr="//header/*" position="before">
<div class="tp-preheader o_colored_level o_cc" data-name="Preheader">
<div class="container-fluid">
<div class="row justify-content-lg-between justify-content-center align-items-center">
<div class="col-auto py-3">
<div class="oe_structure oe_structure_solo">
<section class="s_text_block" data-snippet="s_text_block" data-name="Text">
<div class="d-flex align-items-center gap-3">
<a href="#" class="btn btn-primary">Men</a>
<a href="#" class="btn btn-primary">Women</a>
<a href="#" class="btn btn-primary">Kids</a>
</div>
</section>
</div>
</div>
<div class="col-auto py-3 d-none d-lg-block">
<div class="d-flex align-items-center gap-4">
<div class="oe_structure oe_structure_solo">
<section class="s_text_block" data-snippet="s_text_block" data-name="Text">
<div>Available 24/7 at <b>(001) 123-4567</b></div>
</section>
</div>
<t t-call="theme_prime.component_language_pricelist_selector"/>
</div>
</div>
</div>
</div>
</div>
</xpath>
</template>
<template id="template_preheader_style_6" inherit_id="website.layout" name="Preheader Style - 6" active="False">
<xpath expr="//header/*" position="before">
<div class="tp-preheader o_colored_level o_cc" data-name="Preheader">
<div class="container-fluid">
<div class="row justify-content-center">
<div class="col-12 col-lg-4 py-2 d-none d-lg-flex justify-content-start">
<ul class="list-inline mb-0 d-flex gap-3">
<li class="list-inline-item"><a href="#">Contact Us</a></li>
<li class="list-inline-item"><a href="#">About Us</a></li>
<li class="list-inline-item"><a href="#">Terms</a></li>
<li class="list-inline-item"><a href="#">FAQ</a></li>
</ul>
</div>
<div class="col-12 col-lg-4 py-2 d-flex justify-content-center">
<section><div>Free shipping for all order of $150</div></section>
</div>
<div class="col-12 col-lg-4 py-2 d-none d-lg-flex justify-content-end">
<t t-call="theme_prime.component_language_pricelist_selector"/>
</div>
</div>
</div>
</div>
</xpath>
</template>
</odoo>
+561
View File
@@ -0,0 +1,561 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<template id="product" inherit_id="website_sale.product">
<xpath expr="//section[@id='product_detail']" position="attributes">
<attribute name="t-attf-class" remove="py-4" separator=" " />
</xpath>
<xpath expr="//section[@id='product_detail']/div[hasclass('row')]" position="attributes">
<attribute name="t-if">False</attribute>
</xpath>
<xpath expr="//div[hasclass('row')]/div[contains(@t-attf-class, 'mt-lg-4')]" position="attributes">
<attribute name="t-attf-class" remove="mt-lg-4" add="mt-4" separator=" " />
</xpath>
<xpath expr="//div[hasclass('row')]/div[contains(@t-attf-class, 'mt-md-4')]" position="attributes">
<attribute name="t-attf-class" remove="mt-md-4" add="mt-4" separator=" " />
</xpath>
<xpath expr="//t[@t-cache]" position="attributes">
<attribute name="t-cache" add="category,prev_product_id,next_product_id" separator=","/>
</xpath>
<xpath expr="//h1[@t-field='product.name']" position="before">
<div class="row g-0 justify-content-end tp-breadcrumb-wrapper flex-wrap align-items-center mb-1">
<!-- Breadcrumb -->
<div class="col-auto mb-2 flex-grow-1 flex-shrink-1">
<ol class="breadcrumb p-0 m-0 bg-transparent">
<li class="breadcrumb-item">
<a href="/"><i class="dri dri-home-l"/></a>
</li>
<li class="breadcrumb-item">
<a t-att-href="keep(category=0)">Shop</a>
</li>
<li t-if="category" class="breadcrumb-item">
<a t-att-href="keep('/shop/category/%s' % slug(category), category=0)" t-field="category.name"/>
</li>
<li class="breadcrumb-item active">
<span t-field="product.name"/>
</li>
</ol>
</div>
<!-- Navigation -->
<div class="col-auto tp-product-navigator mb-2 flex-grow-0 flex-shrink-0" t-if="website._get_dr_theme_config('bool_show_products_nav')">
<a t-attf-class="btn btn-link btn-sm tp-navigation-btn shadow-none #{'' if prev_product_id else 'disabled'}" t-att-href="prev_product_id.website_url" data-content-id="prev">
<i class="fa fa-angle-left"/>
</a>
<t t-if="prev_product_id" t-call="theme_prime.navigation_product">
<t t-set="_product_id" t-value="prev_product_id"/>
<t t-set="_content" t-value="'prev'"/>
</t>
<a class="btn btn-link btn-sm shadow-none" title="Back to products" href="/shop"><i class="dri dri-category"/></a>
<a t-attf-class="btn btn-link btn-sm tp-navigation-btn shadow-none #{'' if next_product_id else 'disabled'}" t-att-href="next_product_id.website_url" data-content-id="next">
<i class="fa fa-angle-right"/>
</a>
<t t-if="next_product_id" t-call="theme_prime.navigation_product">
<t t-set="_product_id" t-value="next_product_id"/>
<t t-set="_content" t-value="'next'"/>
</t>
</div>
</div>
<!-- Label -->
<t t-call="theme_prime.product_label">
<t t-set="label" t-value="product.dr_label_id"/>
<t t-set="style" t-valuef="1"/>
<t t-set="_classes" t-valuef="mb-2 d-inline-block position-relative top-0 start-0"/>
</t>
</xpath>
<xpath expr="//h1[@t-field='product.name']" position="attributes">
<attribute name="class">h2</attribute>
</xpath>
<xpath expr="//t[@t-placeholder='select']" position="before">
<t t-set="product_pricelist_offer" t-value="product._get_product_pricelist_offer()"/>
<t t-if="product_pricelist_offer">
<div class="row g-0 mt-2">
<div class="col-12">
<h6 class="mb-1" t-field="product_pricelist_offer['rule'].dr_offer_msg"/>
</div>
</div>
<div class="row style-4 tp-countdown mt-2 mb-3 g-0" data-countdown-style="s_countdown_4" t-att-data-due-date="product_pricelist_offer['date_end']">
<div class="col-12 mt-3 tp-end-msg-container css_non_editable_mode_hidden">
<h6 class="mb-0" t-field="product_pricelist_offer['rule'].dr_offer_finish_msg"/>
</div>
</div>
</t>
<hr name="after_pricelist_offer"/>
</xpath>
<xpath expr="//div[@id='o_wsale_cta_wrapper']" position="attributes">
<attribute name="class" add="mt-3" separator=" "/>
</xpath>
<xpath expr="//a[@id='add_to_cart']" position="replace">
<a role="button" id="add_to_cart" data-animation-selector=".product_detail_img" class="btn btn-primary btn-lg js_check_product a-submit flex-grow-1" href="#">
<i class="dri dri-cart me-1"/> Add to Cart
</a>
<a t-if="is_view_active('website_sale.product_buy_now')" role="button" class="btn btn-primary-soft btn-lg o_we_buy_now ms-2" href="#">
<i class="dri dri-bolt me-1"/> Buy Now
</a>
</xpath>
<xpath expr="//div[@id='product_option_block']" position="inside">
<t t-if="is_view_active('website_sale_comparison.product_add_to_compare')">
<t t-set="categories" t-value="product.valid_product_template_attribute_line_ids._prepare_categories_for_display()"/>
<t t-set="product_variant_id" t-value="product._get_first_possible_variant_id()"/>
<button t-if="product_variant_id and categories" type="button" role="button" class="d-none d-md-block btn btn-link px-0 me-3 o_add_compare_dyn" aria-label="Compare" t-att-data-product-product-id="product_variant.id" data-action="o_comparelist"><span class="dri dri-compare me-2"></span>Compare</button>
</t>
</xpath>
<t t-call="website_sale.product_tags" position="replace"/>
<div id="product_documents" position="attributes">
<attribute name="t-if">False</attribute>
</div>
<xpath expr="//div[@id='o_product_terms_and_share']" position="before">
<!-- Hook -->
<div class="tp-product-info-hook"/>
<hr name="before_brand"/>
<!-- Brand -->
<t t-if="product.dr_brand_value_id">
<div class="row align-items-center">
<div class="col-6 col-md-3" t-if="product.dr_brand_value_id.dr_image" t-field="product.with_context(show_attribute=False).dr_brand_value_id.dr_image" t-options="{'widget': 'image'}"/>
<div class="col-12 col-md-9 mt-2 mt-md-0">
<h6>
<a class="tp-link-dark" t-attf-href="/shop?attrib=#{product.dr_brand_value_id.attribute_id.id}-#{product.dr_brand_value_id.id}">
<span t-field="product.dr_brand_value_id.name"/>
</a>
</h6>
<p class="mb-0" t-field="product.dr_brand_value_id.dr_brand_description"/>
</div>
</div>
<hr name="after_brand"/>
</t>
<!-- Offers -->
<t t-if="website._get_dr_theme_config('bool_product_offers') and product.dr_product_offer_ids">
<div class="row">
<t t-foreach="product.dr_product_offer_ids" t-as="offer">
<div t-attf-class="col-12 o_not_editable #{'' if offer_last else 'mb-2'}">
<i t-attf-class="fa fa-#{offer.icon} text-primary"/>
<h6 class="d-inline-block mx-1 mb-0" t-field="offer.name"/>
<span class="d-inline-block" t-field="offer.description"/>
<a href="#" class="d-inline-block mx-1 mb-0 link-primary h6 tp-lazy-dialog small" data-res-model="dr.website.content" t-att-data-res-id="offer.id" data-field="content">Details <i class="fa fa-angle-right"/></a>
</div>
</t>
</div>
<hr name="after_offer"/>
</t>
<!-- Extra fields -->
<t t-call="theme_prime.product_extra_fields" />
<!-- Share -->
<div t-if="is_view_active('website_sale.product_share_buttons')" class="row mb-2 g-0 align-items-center">
<div class="col-auto">
<h6 class="me-1 mb-0">Share :</h6>
</div>
<div class="col-auto">
<t t-snippet-call="website.s_share">
<t t-set="_exclude_share_links" t-value="['whatsapp', 'linkedin']"/>
<t t-set="_no_title" t-value="True"/>
<t t-set="_classes" t-valuef="text-lg-end"/>
<t t-set="_link_classes" t-valuef="mx-2 my-0"/>
</t>
</div>
</div>
</xpath>
<xpath expr="//div[@id='product_full_description']" position="attributes">
<attribute name="t-if">False</attribute>
</xpath>
<xpath expr="//section[@id='product_detail']" position="after">
<div class="container-fluid px-0 my-4 tp-hook-product-tabs">
<div class="row g-0">
<div class="col-12">
<t t-call="theme_prime.product_tabs"/>
</div>
</div>
</div>
<div class="container tp-hook-accessory-products">
<div class="row">
<t t-set="has_alternative_products" t-value="is_view_active('website_sale.alternative_products') and product._get_website_alternative_product()"></t>
<t t-set="has_accessory_products" t-value="product.accessory_product_ids"></t>
<t t-set="has_two_blocks" t-value="has_alternative_products and has_accessory_products"></t>
<div t-if="has_alternative_products" t-attf-class="#{'col-md-6' if has_accessory_products else 'col-md-12'} my-3">
<div class="tp-suggested-product-slider tp-snippet-shiftless-enable" t-attf-data-selection-info='{"selectionType":"manual", "recordsIDs":#{product._get_website_alternative_product().ids}}' t-att-data-two-block="has_two_blocks">
<div class="position-relative">
<h5 class="tp-underline-title">Similar Products</h5>
<div class="tp-slider-controls">
<button class="btn btn-link text-primary tp-prev" role="button" aria-label="Prev"><i class="fa fa-chevron-left"></i></button>
<button class="btn btn-link text-primary tp-next" role="button" aria-label="Next"><i class="fa fa-chevron-right"></i></button>
</div>
</div>
<div class="tp-suggested-products-cards owl-carousel owl-theme owl-loaded d-none"/>
</div>
</div>
<div t-if="has_accessory_products" t-attf-class="#{'col-md-6' if has_alternative_products else 'col-md-12'} my-3">
<div class="tp-suggested-product-slider tp-snippet-shiftless-enable" t-attf-data-selection-info='{"selectionType":"manual", "recordsIDs":#{product.accessory_product_ids.mapped("product_tmpl_id").ids}}' t-att-data-two-block="has_two_blocks">
<div class="position-relative">
<h5 class="tp-underline-title">Accessory Products</h5>
<div class="tp-slider-controls">
<button class="btn btn-link text-primary tp-prev" role="button" aria-label="Prev"><i class="fa fa-chevron-left"></i></button>
<button class="btn btn-link text-primary tp-next" role="button" aria-label="Next"><i class="fa fa-chevron-right"></i></button>
</div>
</div>
<div class="tp-suggested-products-cards owl-carousel owl-theme owl-loaded d-none"/>
</div>
</div>
</div>
</div>
<div t-if="website._get_dr_theme_config('bool_sticky_add_to_cart') and website._dr_has_b2b_access()" class="tp-sticky-add-to-cart position-fixed p-2 shadow border css_editable_mode_hidden" style="display: none;border-radius: 100px;border-color: #f5f5f5 !important;">
<div class="d-flex align-items-center">
<a class="me-2" href="#">
<img t-attf-src="/web/image/product.template/#{product.id}/image_128" class="product-img tp-icon-center-3 rounded-circle border" t-att-alt="product.name" style="border-color: #eceaea !important;"/>
</a>
<div class="me-3">
<h6 class="text-truncate product-name" t-out="product.name"/>
<h6 class="mb-0 text-primary">
<span class="product-price" t-out="combination_info['price']" t-options="{'widget': 'monetary', 'display_currency': website.currency_id}"/>
</h6>
</div>
<a href="#" class="btn btn-primary-soft product-add-to-cart p-0 tp-icon-center-3 rounded-circle">
<i class="dri dri-cart"/>
</a>
</div>
</div>
</xpath>
</template>
<template id="navigation_product" name="Theme Prime: Navigation Product">
<div t-if="_product_id" class="d-flex align-items-center d-none tp-navigation-content" t-att-data-content-id="_content">
<div class="flex-shrink-0">
<img t-attf-src="/web/image/product.template/#{_product_id.id}/image_128" t-att-alt="_product_id.name"/>
</div>
<div class="flex-grow-1 py-1 px-2">
<h6 class="mb-1"><t t-out="_product_id.name"/></h6>
<div t-if="request.website._dr_has_b2b_access()">
<t t-set="product_combination_info" t-value="_product_id._get_combination_info(only_template=True, add_qty=1)"/>
<div t-if="product_combination_info['prevent_zero_price_sale']">
<span t-field="website.prevent_zero_price_sale_text"/>
</div>
<t t-else="">
<h6 class="text-primary d-inline-block mb-0" t-out="product_combination_info['price']" t-options="{'widget': 'monetary', 'display_currency': website.currency_id}"/>
<small t-attf-class="oe_default_price ms-1 {{'' if product_combination_info['has_discounted_price'] else 'd-none'}}" style="text-decoration: line-through; white-space: nowrap;" t-out="product_combination_info['list_price']" t-options="{'widget': 'monetary', 'display_currency': website.currency_id}"/>
<t t-call="theme_prime.discount_percentage">
<t t-set="combination_info" t-value="product_combination_info"/>
</t>
</t>
</div>
<div t-else="">
<t t-call="theme_prime.tp_b2b_price_label"/>
</div>
</div>
</div>
</template>
<template id="product_extra_fields" name="Theme Prime: Product Extra Fields">
<div class="tp_extra_fields o_not_editable">
<!-- Extra Fields -->
<t t-if="any([product[field.name] or product_variant[field.name] for field in website.shop_extra_field_ids])">
<div t-foreach="website.shop_extra_field_ids" t-as="field" t-if="product[field.name] or product_variant[field.name]" class="row">
<div class="col-12 mb-2">
<h6 class="me-1 d-inline-block mb-0"><t t-out="field.dr_label or field.label"/> :</h6>
<t t-if="field.name == 'public_categ_ids'">
<t t-foreach="product.public_categ_ids" t-as="extra_categ">
<t t-if="extra_categ_index != 0"> , </t>
<a class="tp-link-body" t-attf-href="/shop/category/#{slug(extra_categ)}" t-out="extra_categ.name"/>
</t>
</t>
<t t-elif="field.field_id.ttype != 'binary'">
<span t-out="product_variant[field.name]" t-options="{'widget': field.field_id.ttype}"/>
</t>
<a t-else="" target="_blank" class="tp-link-body" t-attf-href="/web/content/product.template/#{product.id}/#{field.name}?download=1">
<i class="fa fa-download"></i>
</a>
</div>
</div>
</t>
<!-- Tags -->
<t t-if="is_view_active('website_sale.product_tags')">
<t t-set="product_all_tags" t-value="product_variant.all_product_tag_ids.filtered(lambda x: x.visible_on_ecommerce)"/>
<div t-if="product_all_tags" class="row">
<div class="col-12 mb-2">
<h6 class="me-1 mb-0 d-inline-block">Tags :</h6>
<ul class="list-inline d-inline">
<li t-foreach="product_all_tags" t-as="tag" class="list-inline-item mb-1 me-1">
<a t-attf-href="/shop?tags=#{tag.id}" class="tp-link-body"><span t-field="tag.name"/></a>
<t t-if="not tag_last">
,
</t>
</li>
</ul>
</div>
</div>
</t>
</div>
</template>
<template id="product_tabs" name="Theme Prime: Product Tabs">
<div class="tp-product-details-tab">
<ul class="nav nav-tabs justify-content-center" role="tablist">
<li groups="base.group_public,base.group_portal" t-if="product.website_description" class="nav-item o_not_editable">
<a class="nav-link active" data-bs-toggle="tab" href="#tp-product-description-tab" role="tab" aria-selected="true">
<span class="fa fa-file-text-o me-1"/> Description
</a>
</li>
<li groups="base.group_user" class="nav-item o_not_editable">
<a class="nav-link active" data-bs-toggle="tab" href="#tp-product-description-tab" role="tab" aria-selected="true">
<span class="fa fa-file-text-o me-1"/> Description
</a>
</li>
<li t-if="is_view_active('website_sale_comparison.product_attributes_body')" class="nav-item o_not_editable">
<a class="nav-link" data-bs-toggle="tab" href="#tp-product-specification-tab" role="tab" aria-selected="false">
<span class="fa fa-sliders me-1"/> Specifications
</a>
</li>
<t t-set="product_documents_ids" t-value="product.sudo().product_document_ids.filtered(lambda doc: doc.shown_on_product_page)"/>
<li t-if="product_documents_ids" class="nav-item o_not_editable">
<a class="nav-link" data-bs-toggle="tab" href="#tp-product-documents-tab" role="tab" aria-selected="false">
<span class="fa fa-file-pdf-o me-1"/> Documents
</a>
</li>
<li t-if="is_view_active('website_sale.product_comment')" class="nav-item o_not_editable">
<a class="nav-link" data-bs-toggle="tab" href="#tp-product-rating-tab" role="tab" aria-selected="false">
<span class="fa fa-comments-o me-1"/> Reviews &amp; Rating
</a>
</li>
<!-- Dynamic Tabs -->
<li t-foreach="product.dr_product_tab_ids" t-as="tab" class="nav-item o_not_editable">
<a class="nav-link" data-bs-toggle="tab" t-attf-href="#tp-product-tab-#{tab.id}" role="tab" aria-selected="false">
<span t-attf-class="fa fa-#{tab.icon} me-1"/> <span t-field="tab.name"/>
</a>
</li>
</ul>
<div class="tab-content">
<!-- Description -->
<div groups="base.group_public,base.group_portal" t-if="product.website_description" class="tab-pane fade show active" id="tp-product-description-tab" role="tabpanel">
<div class="container-fluid">
<div class="row m-0 py-2">
<div class="col-12">
<div itemprop="description" t-field="product.website_description" class="oe_structure" id="product_full_description" />
</div>
</div>
</div>
</div>
<div groups="base.group_user" class="tab-pane fade show active" id="tp-product-description-tab" role="tabpanel">
<div class="container-fluid">
<div class="row m-0 py-2">
<div class="col-12">
<div itemprop="description" t-field="product.website_description" class="oe_structure" id="product_full_description" />
</div>
</div>
</div>
</div>
<!-- Specifications -->
<div t-if="is_view_active('website_sale_comparison.product_attributes_body')" class="tab-pane fade" id="tp-product-specification-tab" role="tabpanel">
<section class="container border-0" id="product_full_spec">
<t t-set="categories" t-value="product.valid_product_template_attribute_line_ids._prepare_categories_for_display()"/>
<t t-if="categories">
<div class="row pt-2 pb-4 m-0">
<div class="col-12 col-lg-8 offset-lg-2" id="product_specifications">
<table class="table mb-0 border">
<t t-foreach="categories" t-as="categ">
<t t-if="len(categories) > 1">
<tr class="shadow-sm text-bg-light">
<th class="text-start" t-att-colspan="2">
<span t-if="categ" t-field="categ.name"/>
<span t-else="">Uncategorized</span>
</th>
</tr>
</t>
<tr t-foreach="categories[categ].filtered(lambda l: len(l.value_ids) > 1)" t-as="ptal">
<td><span t-field="ptal.attribute_id.name"/></td>
<td>
<t t-foreach="ptal.value_ids" t-as="pav">
<span t-field="pav.name"/><t t-if="not pav_last"> or</t>
</t>
</td>
</tr>
<t t-set="single_value_attributes" t-value="categories[categ]._prepare_single_value_for_display()"/>
<tr t-foreach="single_value_attributes" t-as="attribute">
<td><span t-field="attribute.name"/></td>
<td>
<t t-foreach="single_value_attributes[attribute]" t-as="ptal">
<span t-field="ptal.product_template_value_ids._only_active().name"/><t t-if="not ptal_last">, </t>
</t>
</td>
</tr>
</t>
</table>
</div>
</div>
</t>
<div class="p-4 text-center" t-else="">
No Specifications
</div>
</section>
</div>
<!-- Documents -->
<div t-if="product_documents_ids" class="tab-pane fade" id="tp-product-documents-tab" role="tabpanel">
<div class="container">
<div class="row pt-2 pb-4 m-0">
<t t-foreach="product_documents_ids" t-as="document_sudo">
<t t-set="attachment_sudo" t-value="document_sudo.ir_attachment_id"/>
<t t-set="target" t-value="attachment_sudo.type == 'url' and '_blank' or '_self'"/>
<div class="col-12 col-sm-6 col-md-4 col-lg-3 my-2">
<div class="d-flex align-items-center p-2 border">
<div class="o_image" t-att-data-mimetype="attachment_sudo.mimetype"/>
<div class="ms-2 text-truncate">
<div t-field="attachment_sudo.name" t-att-title="attachment_sudo.name"/>
<a t-att-href="'/shop/' + slug(product) + '/document/' + str(document_sudo.id)" t-att-target="target" class="link-primary d-inline-block mt-1">
<i class="fa fa-download"/> Download
</a>
</div>
</div>
</div>
</t>
</div>
</div>
</div>
<!-- Rating -->
<div t-if="is_view_active('website_sale.product_comment')" class="tab-pane fade" id="tp-product-rating-tab" role="tabpanel">
<div class="o_shop_discussion_rating container">
<section class="container">
<div class="row m-0 mt-2">
<div class="col-lg-8 offset-lg-2">
<t t-call="portal.message_thread">
<t t-set="object" t-value="product"/>
<t t-set="display_rating" t-value="True"/>
<t t-set="message_per_page" t-value="10"/>
</t>
</div>
</div>
</section>
</div>
</div>
<!-- Dynamic Tabs -->
<div t-foreach="product.dr_product_tab_ids" t-as="tab" class="tab-pane fade" t-attf-id="tp-product-tab-#{tab.id}" role="tabpanel">
<div class="container-fluid">
<div class="row m-0 py-2">
<div class="col-12">
<div t-field="tab.content"/>
</div>
</div>
</div>
</div>
</div>
</div>
</template>
<template id="shop_product_image" inherit_id="website_sale.shop_product_image">
<div t-else="" position="replace">
<div t-else="" t-att-class="image_classes + ' oe_unmovable position-relative'">
<div t-field="product_image.image_1920" t-att-class="image_classes + ' oe_unmovable position-relative'" t-options='{"widget": "image", "preview_image": "image_1024", "class": "oe_unmovable product_detail_img mh-100", "alt-field": "name", "zoom": product_image.can_image_1024_be_zoomed and "image_1920"}'/>
</div>
</div>
</template>
<template id="product_price" inherit_id="website_sale.product_price">
<xpath expr="//div[contains(@t-attf-class, 'product_price')]" position="attributes">
<attribute name="t-attf-class" separator=" " remove="mb-3"/>
<attribute name="t-if">request.website._dr_has_b2b_access()</attribute>
</xpath>
<xpath expr="//div[contains(@t-attf-class, 'product_price')]//h3" position="attributes">
<attribute name="class" separator=" " add="h4 mb-0"/>
</xpath>
<span class="oe_price" position="attributes">
<attribute name="class" separator=" " add="text-primary"/>
</span>
<xpath expr="//span[contains(@t-attf-class, 'oe_default_price')]" position="attributes">
<attribute name="t-attf-class" separator=" " remove="text-danger h5"/>
</xpath>
<xpath expr="//div[contains(@t-attf-class, 'product_price')]//h3[hasclass('decimal_precision')]" position="attributes">
<attribute name="class" separator=" " add="h4 mb-0"/>
</xpath>
<xpath expr="//div[contains(@t-attf-class, 'product_price')]" position="after">
<h4 class="mb-0" t-else="">
<t t-call="theme_prime.tp_b2b_price_label"/>
</h4>
</xpath>
</template>
<template id="product_buy_now" inherit_id="website_sale.product_buy_now" name="Theme Prime: Buy Now Button">
<xpath expr="//a[contains(@t-attf-class, 'o_we_buy_now')]" position="replace"/>
</template>
<template id="product_custom_text" inherit_id="website_sale.product_custom_text" name="Theme Prime: Terms and Conditions">
<xpath expr="//div[@id='product_details']//p[contains(@class, 'text-muted mb-0')]" position="replace">
<div class="row tp-hook-terms">
<div class="col-12">
<h6 class="mb-1"><a href="/terms" class="tp-link-dark">Terms and Conditions :</a></h6>
</div>
<div class="col-12">
<section>
<div class="row g-0">
<div class="col-auto p-2 me-3 my-2" style="border-radius: 8px; width: 110px; box-shadow: 0 0 3px 0px rgb(0 0 0 / 10%)">
<div class="d-flex flex-column align-items-start h-100">
<img class="img-fluid" src="/theme_prime/static/src/img/content/tag_icon.svg" style="height: 24px;"/>
<h6 class="mt-3 mb-0 small">
100% original guarantee
</h6>
</div>
</div>
<div class="col-auto p-2 me-3 my-2" style="border-radius: 8px; width: 110px; box-shadow: 0 0 3px 0px rgb(0 0 0 / 10%)">
<div class="d-flex flex-column align-items-start h-100">
<img class="img-fluid" src="/theme_prime/static/src/img/content/return_icon.svg" style="height: 24px;"/>
<h6 class="mt-3 mb-0 small">
Return within 30days
</h6>
</div>
</div>
<div class="col-auto p-2 me-3 my-2" style="border-radius: 8px; width: 110px; box-shadow: 0 0 3px 0px rgb(0 0 0 / 10%)">
<div class="d-flex flex-column align-items-start h-100">
<img class="img-fluid" src="/theme_prime/static/src/img/content/delivery_icon.svg" style="height: 24px;"/>
<h6 class="mt-3 mb-0 small">
Free delivery on all orders
</h6>
</div>
</div>
</div>
</section>
</div>
</div>
</xpath>
</template>
<template id="product_share_buttons" inherit_id="website_sale.product_share_buttons" name="Theme Prime: Share Buttons">
<xpath expr="//div[@id='product_details']//div[contains(@class, 'h4 mt-3 mb-0 d-flex justify-content-md-end flex-shrink-0')]" position="replace"/>
</template>
<template id="alternative_products" inherit_id="website_sale.alternative_products" name="Theme Prime: Alternative Products">
<div id="oe_structure_website_sale_recommended_products" position="attributes">
<attribute name="t-if">False</attribute>
</div>
</template>
<template id="product_add_to_compare" inherit_id="website_sale_comparison.product_add_to_compare" name="Theme Prime: Add to comparison in product page">
<button t-if="product_variant_id and categories" position="replace"/>
</template>
<template id="product_attributes_body" inherit_id="website_sale_comparison.product_attributes_body" name="Theme Prime: Product attributes table">
<xpath expr="//section[@id='product_full_spec']" position="replace"/>
</template>
<template id="product_comment" inherit_id="website_sale.product_comment" name="Theme Prime: Discussion and Rating">
<xpath expr="//div[hasclass('o_shop_discussion_rating')]" position="attributes">
<attribute name="t-if">False</attribute>
</xpath>
</template>
<template id="ecom_show_extra_fields" inherit_id="website_sale.ecom_show_extra_fields" name="Theme Prime: Show Extra Fields">
<xpath expr="//t[@t-if='any([product[field.name] for field in website.shop_extra_field_ids])']" position="replace"/>
</template>
<template id="shop_product_carousel" inherit_id="website_sale.shop_product_carousel">
<xpath expr="//a[hasclass('carousel-control-prev')]/span" position="attributes">
<attribute name="class"> fa fa-chevron-left oe_unmovable tp-icon-center-2 dr-p-icon border-0 shadow</attribute>
</xpath>
<xpath expr="//a[hasclass('carousel-control-next')]/span" position="attributes">
<attribute name="class"> fa fa-chevron-right oe_unmovable tp-icon-center-2 dr-p-icon border-0 shadow</attribute>
</xpath>
</template>
</odoo>
+864
View File
@@ -0,0 +1,864 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<template id="shop_layout" name="Theme Prime: Shop Layout">
<t t-call="website.layout">
<t t-set="additional_title">Shop</t>
<t t-if="_config_shop_filters.get('filter_style') == '1'">
<t t-set="_filter_collapsible_plus_style" t-value="True"/>
</t>
<t t-elif="_config_shop_filters.get('filter_style') == '2'">
<t t-set="_filter_collapsible_plus_style" t-value="True"/>
<t t-set="_filter_attribute_title_classes" t-valuef="tp-underline-title"/>
</t>
<t t-elif="_config_shop_filters.get('filter_style') == '3'">
<t t-set="_filter_attribute_classes" t-valuef="border tp-rounded-border-radius bg-white my-2"/>
<t t-set="_filter_attribute_title_classes" t-valuef="px-3"/>
<t t-set="_filter_attribute_collapse_area_classes" t-valuef="border-top p-3"/>
</t>
<t t-elif="_config_shop_filters.get('filter_style') == '4'">
<t t-set="_bordered_classes" t-valuef="bordered"/>
<t t-set="_filter_attribute_classes" t-valuef="border-bottom"/>
<t t-set="_filter_attribute_collapse_area_classes" t-valuef="mb-3"/>
</t>
<t t-elif="_config_shop_filters.get('filter_style') == '5'">
<t t-set="_filter_container_classes" t-valuef="border mt-3"/>
<t t-set="_filter_attribute_classes" t-valuef="border-bottom bg-white"/>
<t t-set="_filter_attribute_title_classes" t-valuef="px-3"/>
<t t-set="_filter_attribute_collapse_area_classes" t-valuef="px-3 pb-2"/>
<t t-set="_filter_collapsible_plus_style" t-value="True"/>
</t>
<t t-set="_filter_category_activated" t-value="is_view_active('website_sale.products_categories')"/>
<t t-set="_filter_attributes_activated" t-value="is_view_active('website_sale.products_attributes')"/>
<t t-set="_filters_activated" t-value="_filter_category_activated or _filter_attributes_activated"/>
<t t-set="website_sale_sortable" t-value="website._get_product_sort_mapping()"/>
<t t-set="isSortingBy" t-value="[sort for sort in website_sale_sortable if sort[0]==request.params.get('order', '')]"/>
<div id="wrap" class="js_sale tp-shop-page">
<div class="oe_structure oe_empty oe_structure_not_nearest" id="oe_structure_website_sale_products_1"/>
<div class="container oe_website_sale tp-shop-layout pt-2" t-att-data-ppg="ppg" t-att-data-ppr="ppr" t-att-data-default-sort="website.shop_default_sort">
<div class="o_wsale_products_grid_table_wrapper"/> <!-- Class is used in JS for filters, Put it here to make it works. -->
<t t-if="_config_category_pills.get('active')" t-call="theme_prime.shop_category_pills"/>
<div t-attf-class="py-2 tp-shop-topbar #{_bordered_classes}">
<div class="d-lg-none d-flex align-items-center justify-content-between">
<h5 class="mb-0">Shop</h5>
<span><t t-out="search_count"/> items found.</span>
</div>
<div class="d-none d-lg-flex row justify-content-between align-items-center">
<div class="col-auto">
<div class="d-flex align-items-lg-center">
<a href="#" t-if="_filters_activated and _config_shop_filters.get('show_in_sidebar')" class="tp-open-filter-sidebar btn btn-primary-soft me-2 p-0">
<span class="d-inline-block text-bg-primary px-2 py-1"><i class="fa fa-filter"/> </span> <strong class="d-inline-block ps-1 pe-2">Show Filters</strong>
</a>
<ol t-if="category" t-attf-class="breadcrumb m-0 p-0 bg-transparent">
<li class="breadcrumb-item">
<a href="#" t-att-data-link-href="keep('/shop', category=0)">Products</a>
</li>
<t t-foreach="category.parents_and_self" t-as="cat">
<li t-if="cat == category" class="breadcrumb-item">
<span class="d-inline-block" t-field="cat.name"/>
- <t t-out="search_count"/> items
</li>
<li t-else="" class="breadcrumb-item">
<a href="#" t-att-data-link-href="keep('/shop/category/%s' % slug(cat), category=0)" t-field="cat.name"/>
</li>
</t>
</ol>
<div t-else="" class="d-flex">
<h6 class="mb-0 me-1">All Products</h6> - <t t-out="search_count"/> items
</div>
</div>
</div>
<div class="col-auto">
<div class="d-flex flex-wrap justify-content-end">
<t t-set="website_sale_pricelists" t-value="website.get_pricelist_available(show_visible=True)" />
<div t-attf-class="o_pricelist_dropdown dropdown#{'' if website_sale_pricelists and len(website_sale_pricelists)&gt;1 else ' d-none'}">
<t t-set="curr_pl" t-value="website.pricelist_id" />
<span class="h6 me-1">Pricelist :</span>
<a role="button" href="#" class="dropdown-toggle btn btn-link px-0 text-body shadow-none" data-bs-toggle="dropdown">
<t t-esc="curr_pl and curr_pl.name or ' - '" />
</a>
<div class="dropdown-menu" role="menu">
<t t-foreach="website_sale_pricelists" t-as="pl">
<a role="menuitem" t-att-href="'/shop/change_pricelist/%s' % pl.id" class="dropdown-item">
<span class="switcher_pricelist" t-att-data-pl_id="pl.id" t-esc="pl.name" />
</a>
</t>
</div>
</div>
<t t-if="is_view_active('website_sale.sort')">
<div class="o_sortby_dropdown dropdown dropdown_sorty_by ms-3">
<span class="d-none d-lg-inline h6 me-1">Sort By :</span>
<a role="button" href="#" class="dropdown-toggle btn btn-link px-0 text-body shadow-none" data-bs-toggle="dropdown">
<span class="d-none d-lg-inline">
<t t-if="isSortingBy" t-out="isSortingBy[0][1]"/>
<span t-else="" t-field="website.shop_default_sort"/>
</span>
<i class="fa fa-sort-amount-asc d-lg-none"/>
</a>
<div class="dropdown-menu dropdown-menu-end" role="menu">
<t t-foreach="website_sale_sortable" t-as="sortby">
<a role="menuitem" rel="noindex,nofollow" t-att-href="keep('/shop', order=sortby[0])" class="dropdown-item">
<span t-out="sortby[1]"/>
</a>
</t>
</div>
</div>
</t>
<div t-if="_config_shop_layout.get('show_view_switcher')" class="btn-group ms-3" role="group" aria-label="View">
<a href="#" title="Grid View" t-att-data-link-href="keep(page=page, view_mode='grid')" t-attf-class="btn btn-light border bg-white shadow-none text-muted #{view_mode == 'grid' and 'active text-primary' or ''}"><i class="fa fa-th"/></a>
<a href="#" title="List View" t-att-data-link-href="keep(page=page, view_mode='list')" t-attf-class="btn btn-light border bg-white shadow-none text-muted #{view_mode == 'list' and 'active text-primary' or ''}"><i class="fa fa-bars"/></a>
</div>
</div>
</div>
</div>
<t t-call="theme_prime.selected_attributes"/>
</div>
<div t-attf-class="row tp-shop-row #{_bordered_classes}">
<div t-if="_filters_activated" id="products_grid_before" t-attf-class="col-lg-3 #{_config_shop_filters.get('filter_position') == 'right' and 'order-1' or None} #{_config_shop_filters.get('show_in_sidebar') and 'd-none' or 'd-none d-lg-block'}">
<div class="tp-filters-container">
<div t-att-class="_filter_container_classes">
<t t-call="theme_prime.shop_layout_filters"/>
</div>
<div t-attf-class="mb-3 #{_filter_extra_content_classes}">
<a class="btn btn-dark w-100 my-3" t-att-href="'/shop/category/%s?view_mode=%s' % (str(category.id), view_mode) if category else '/shop?view_mode=%s' % view_mode">RESET</a>
<div class="oe_structure" t-field="website.dr_sale_special_offer" data-editor-message="Drag offer blocks here to customize"/>
</div>
</div>
</div>
<div id="products_grid" t-attf-class="#{(_filters_activated and not _config_shop_filters.get('show_in_sidebar')) and 'col-lg-9' or 'col-12'} tp-product-image-fill-#{_config_product_item.get('image_fill')} tp-product-image-size-#{_config_product_item.get('image_size')}">
<t t-if="products">
<t t-if="category">
<t t-set='editor_msg'>Drag building blocks here to customize the header for "<t t-esc='category.name'/>" category.</t>
<div class="o_editable" id="category_header" t-att-data-editor-message="editor_msg" t-field="category.website_description"/>
</t>
<div class="o_not_editable">
<div t-if="view_mode == 'grid'" t-attf-class="row row-cols-2 row-cols-md-#{ppr >= 3 and 3 or ppr} row-cols-lg-#{ppr} g-2 g-lg-3 mt-0">
<div t-attf-class="col tp-product-item tp-product-item-grid-#{_config_product_item.get('style')}" t-att-data-product-template-id="product.id" t-foreach="products" t-as="product">
<t t-call="{{ 'theme_prime.product_item_grid_%s' % _config_product_item.get('style') }}">
<t t-set="product_image_size" t-value="product._get_image_size_based_grid(ppr, view_mode)"/>
<t t-set="product_variant_id" t-value="product._get_first_possible_variant_id()"/>
<t t-set="product_id" t-value="request.env['product.product'].browse(product_variant_id)"/>
<t t-set="template_price_vals" t-value="get_product_prices(product)"/>
<t t-set="product_href" t-value="keep(product.website_url, page=(pager['page']['num'] if pager['page']['num']&gt;1 else None))" />
</t>
</div>
</div>
<div t-if="view_mode == 'list'" class="row">
<div class="col-12 tp-product-item tp-product-list-item my-2 my-md-0" t-att-data-product-template-id="product.id" t-foreach="products" t-as="product">
<t t-call="theme_prime.product_item_list_1">
<t t-set="product_image_size" t-value="product._get_image_size_based_grid(ppr, view_mode)"/>
<t t-set="product_variant_id" t-value="product._get_first_possible_variant_id()"/>
<t t-set="template_price_vals" t-value="get_product_prices(product)"/>
<t t-set="product_href" t-value="keep(product.website_url, page=(pager['page']['num'] if pager['page']['num']&gt;1 else None))" />
</t>
</div>
</div>
<div class="d-flex flex-column align-items-center justify-content-center my-4 tp-product-pager">
<t t-if="_config_shop_layout['load_more_products'] == 'pager'" t-call="website.pager"/>
<t t-elif="_config_shop_layout['load_more_products'] == 'button'">
<t t-if="pager['page_count'] > 1">
<a href="#" class="btn btn-primary tp-load-more-btn shadow-none" t-if="not pager['page']['num'] == pager['page_count']" t-att-href="pager['page_next']['url']">
<i class="fa fa-refresh me-1"></i> Load more
</a>
<h6 t-else="" class="text-center mb-0">All products are loaded.</h6>
</t>
</t>
<t t-elif="_config_shop_layout['load_more_products'] == 'scroll'">
<t t-if="pager['page_count'] > 1">
<a href="#" class="tp-load-more-on-scroll invisible" t-if="not pager['page']['num'] == pager['page_count']" t-att-href="pager['page_next']['url']">
Load more
</a>
<h6 t-else="" class="text-center mb-0">All products are loaded.</h6>
</t>
</t>
</div>
</div>
</t>
<div t-else="" class="tp-hook-no-search">
<div t-if="not search" class="my-5">
<div class="text-center">
<h2 class="mt-4">We couldn't find any product!</h2>
<p t-if="category">No product defined in category <span class="text-dark" t-out="category.display_name"/>.</p>
</div>
<div groups="sales_team.group_sale_manager" class="text-center mt48">
<div class="text-muted">Click<i>'New'</i> in the top-right corner to create your first product.</div>
</div>
</div>
<div t-else="" class="my-5">
<div class="text-center">
<div>You searched for <span class="text-primary" t-out="search"/>.</div>
<t t-call="theme_prime.tp_svg_no_products">
<t t-set="_classes" t-value="'m-5 mx-auto w-25'"/>
</t>
<h2 class="mt-4">We couldn't find any matches!</h2>
<p>Please check the spelling or try searching something else</p>
</div>
<div class="col-12 col-md-6 col-lg-5 mx-auto mt-4">
<t t-call="website.website_search_box_input">
<t t-set="_form_classes" t-valuef="o_wsale_products_searchbar_form w-100 mx-auto"/>
<t t-set="_classes" t-valuef="w-100"/>
<t t-set="search_type" t-valuef="products"/>
<t t-set="action" t-value="keep('/shop'+ ('/category/'+slug(category)) if category else None, search=0) or '/shop'"/>
<t t-set="display_image" t-valuef="true"/>
<t t-set="display_description" t-valuef="true"/>
<t t-set="display_extra_link" t-valuef="false"/>
<t t-set="display_detail" t-valuef="false"/>
</t>
</div>
<div t-ignore="true" groups="sales_team.group_sale_manager" class="text-center mt48">
<div class="text-muted">Click<i>'New'</i> in the top-right corner to create your first product.</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="oe_structure oe_empty oe_structure_not_nearest" id="oe_structure_website_sale_products_2"/>
<!-- Sort By Sidebar-->
<div t-if="is_view_active('website_sale.sort')" class="offcanvas offcanvas-bottom h-auto tp-offcanvas-sidebar" id="tp-shop-sort-sidebar" tabindex="-1">
<div class="d-flex justify-content-between align-items-center border-bottom p-3">
<div class="d-flex align-items-center">
<i class="fa fa-sort-amount-desc text-primary me-3 tp-header-icon"></i>
<h5 class="mb-0">Sort By</h5>
</div>
<button type="button" class="btn-close" data-bs-dismiss="offcanvas" title="Close" aria-label="Close"></button>
</div>
<div class="offcanvas-body p-0">
<ul class="list-group">
<a t-foreach="website_sale_sortable" t-as="sortby" t-attf-class="list-group-item list-group-item-action border-start-0 border-end-0 py-3 #{'active' if sortby[0] == request.params.get('order', website.shop_default_sort) else None}" t-att-href="keep('/shop', order=sortby[0])">
<span t-out="sortby[1]"/>
</a>
</ul>
</div>
</div>
</div>
</t>
</template>
<template id="shop_category_pills" name="Theme Prime: Shop Category Pills">
<div class="tp-category-pill-container">
<t t-set="_categories_to_display" t-value="categories"/>
<t t-if="category and _config_category_pills.get('show_child_categories')">
<t t-set="_categories_to_display" t-value="category.child_id"/>
<t t-if="not category.child_id">
<t t-set="_categories_to_display" t-value="category.parent_id.child_id"/>
</t>
</t>
<div t-if="_categories_to_display" t-attf-class="row py-3 #{'d-lg-none' if _config_category_pills.get('hide_in_desktop') else ''}">
<div class="col-12">
<div class="d-flex align-items-center justify-content-between mb-3">
<div class="d-lg-none">
<a t-if="category.parent_id or category.child_id" href="#" t-att-data-link-href="category.parent_id and keep('/shop/category/%s' % slug(category.parent_id), category=0) or '/shop'">
<h6 class="mb-0 tp-link-dark">
<i class="fa fa-angle-left me-1"/>
<span t-if="category.parent_id" t-out="category.parent_id.name"/>
<span t-else="">All Products</span>
</h6>
</a>
<h5 class="mb-0" t-else="">Categories</h5>
</div>
<h5 class="d-none d-lg-block mb-0">Categories</h5>
<a href="#" class="tp-category-action ms-3 tp-link-dark d-lg-none">See All <i class="fa fa-angle-right ms-1"/></a>
</div>
<ul t-attf-class="list-inline tp-category-pills-container style-#{_config_category_pills.get('style')} mb-0 pb-1">
<t t-foreach="_categories_to_display" t-as="_category">
<li t-if="_config_category_pills.get('style') == '1'" t-attf-class="list-inline-item me-3 tp-category-pill #{_category.id == category.id and 'active' or ''}">
<a t-att-title="_category.name" href="#" t-att-data-link-href="keep('/shop/category/%s' % slug(_category), category=0)" class="text-center h-100 d-flex flex-column justify-content-between align-items-center">
<img class="tp-category-img" t-attf-src="/web/image/product.public.category/#{_category.id}/image_128"/>
<h6 class="mb-0 text-truncate small w-100" t-out="_category.name"/>
</a>
</li>
<li t-elif="_config_category_pills.get('style') == '2'" class="list-inline-item me-2">
<a t-att-title="_category.name" href="#" t-att-data-link-href="keep('/shop/category/%s' % slug(_category), category=0)" t-attf-class="tp-category-pill d-block rounded-pill #{_category.id == category.id and 'active' or ''}">
<t t-out="_category.name"/>
</a>
</li>
<li t-elif="_config_category_pills.get('style') == '3'" class="list-inline-item me-2">
<a t-att-title="_category.name" href="#" t-att-data-link-href="keep('/shop/category/%s' % slug(_category), category=0)" t-attf-class="d-flex align-items-center py-1 ps-2 pe-3 tp-category-pill #{_category.id == category.id and 'active' or ''}">
<img class="tp-category-img" t-attf-src="/web/image/product.public.category/#{_category.id}/image_128"/>
<h6 class="mb-0 ms-2" t-out="_category.name"/>
</a>
</li>
<li t-elif="_config_category_pills.get('style') == '4'" class="list-inline-item me-2">
<a t-att-title="_category.name" href="#" t-att-data-link-href="keep('/shop/category/%s' % slug(_category), category=0)" t-attf-class="d-flex align-items-center rounded-pill p-1 pe-3 tp-category-pill #{_category.id == category.id and 'active' or ''}">
<img class="tp-category-img rounded-circle border" t-attf-src="/web/image/product.public.category/#{_category.id}/image_128"/>
<h6 class="mb-0 ms-2" t-out="_category.name"/>
</a>
</li>
<li t-elif="_config_category_pills.get('style') == '5'" class="list-inline-item me-3">
<a t-att-title="_category.name" href="#" t-att-data-link-href="keep('/shop/category/%s' % slug(_category), category=0)" t-attf-class="tp-category-pill d-block #{_category.id == category.id and 'active' or ''}">
<img class="tp-category-img" t-attf-src="/web/image/product.public.category/#{_category.id}/image_128"/>
</a>
</li>
</t>
</ul>
</div>
</div>
</div>
</template>
<template id="selected_attributes" name="Theme Prime: Selected Attributes">
<t t-set="_selected_min_price" t-value="request.httprequest.args.get('min_price')"/>
<t t-set="_selected_max_price" t-value="request.httprequest.args.get('max_price')"/>
<div class="row g-0 tp-selected-attributes" t-if="selected_attributes and is_view_active('website_sale.products_attributes')">
<div class="col-12">
<ul class="list-inline mt-2 mb-0">
<li class="list-inline-item me-3 my-1 border-end pe-3">
<div class="tp-attribute clear d-flex align-items-center cursor-pointer">
<span>Clear Filters</span>
<i class="dri dri-cross-l ms-1 tp-attribute-remove"/>
</div>
</li>
<li class="list-inline-item me-3 my-1" t-foreach="request.env['product.attribute.value'].browse(attrib_set)" t-as="attribute_value_id">
<div class="tp-attribute d-flex align-items-center cursor-pointer d-flex align-items-center" t-attf-data-id="attribute_#{attribute_value_id.attribute_id.id}-#{attribute_value_id.id}">
<span
t-if="attribute_value_id.attribute_id.display_type == 'color'"
class="tp-attribute-color mx-1"
t-attf-style="background-color: #{attribute_value_id.html_color or attribute_value_id.name}"/>
<span t-field="attribute_value_id.name"/>
<i class="dri dri-cross-l ms-1 tp-attribute-remove"/>
</div>
</li>
<li class="list-inline-item me-3 my-1" t-foreach="request.env['product.tag'].browse(tags)" t-as="tag">
<span class="tp-attribute d-flex align-items-center cursor-pointer" t-attf-data-id="tags-#{tag.id}">
<span t-field="tag.name"/>
<i class="dri dri-cross-l ms-1 tp-attribute-remove"/>
</span>
</li>
<li class="list-inline-item me-3 my-1" t-foreach="selected_ratings" t-as="rating">
<span class="tp-attribute d-flex align-items-center cursor-pointer" t-attf-data-id="rating-#{rating}">
<span t-out="rating"/>
<div class="o_website_rating_static d-inline-block mx-1">
<i class="fa fa-star"/>
</div>
<span>&amp; above</span>
<i class="dri dri-cross-l ms-1 tp-attribute-remove"/>
</span>
</li>
<li class="list-inline-item me-3 my-1" t-if="selected_hide_out_of_stock">
<span class="tp-attribute d-flex align-items-center cursor-pointer" data-id="hide_out_of_stock">
<span>Hide out of stock</span>
<i class="dri dri-cross-l ms-1 tp-attribute-remove"/>
</span>
</li>
<li t-if="_selected_min_price or _selected_max_price" class="list-inline-item me-3 my-1">
<span class="tp-attribute d-flex align-items-center cursor-pointer" data-type="price">
<span class="me-1" t-out="pricelist.currency_id.symbol"/>
<span t-out="'%s - %s' % (_selected_min_price or min_price, _selected_max_price or max_price)"/>
<i class="dri dri-cross-l ms-1 tp-attribute-remove"/>
</span>
</li>
</ul>
</div>
</div>
</template>
<template id="product_item_actions" name="Theme Prime: Product Item Actions">
<div t-attf-class="d-flex flex-column position-absolute tp-action-buttons #{_classes} o_wsale_product_btn">
<button type="button" role="button" class="btn btn-link p-0 tp-action-buttons-toggler d-lg-none">
<i class="fa fa-angle-down" role="img" aria-label="More options"/>
</button>
<a href="#" role="button" class="a-submit d-none tp-action-toggle" aria-label="Shopping cart">
<i class="dri dri-cart"/>
</a>
<a t-if="_config_product_item.get('show_quick_view')" href="#" class="tp-product-quick-view-action d-none d-lg-flex tp-action-toggle" t-att-data-product-id="product.id" title="Quick View">
<i class="dri dri-eye"/>
</a>
<button t-if="_config_product_item.get('show_wishlist') and product_variant_id" type="button" role="button" class="btn btn-link p-0 o_add_wishlist d-none d-lg-flex tp-action-toggle" t-att-disabled="product._is_in_wishlist() or None" title="Add to Wishlist" t-att-data-product-template-id="product.id" t-att-data-product-product-id="product_variant_id" data-action="o_wishlist">
<i class="dri dri-wishlist" role="img" aria-label="Add to wishlist"/>
</button>
<t t-if="_config_product_item.get('show_compare')">
<t t-set="categories_for_display" t-value="product.valid_product_template_attribute_line_ids._prepare_categories_for_display()"/>
<button t-if="product_variant_id and categories_for_display" type="button" role="button" class="d-none d-lg-flex btn btn-link p-0 o_add_compare" title="Add to Compare" aria-label="Compare" t-att-data-product-product-id="product_variant_id" data-action="o_comparelist"><span class="dri dri-compare"></span></button>
</t>
<a t-if="_config_product_item.get('show_similar_products')" href="#" class="tp_show_similar_products d-none d-lg-flex tp-action-toggle" title="View Similar Products" t-att-data-product-template-id="product.id">
<i class="fa fa-clone"/>
</a>
</div>
</template>
<template id="product_item_price" name="Theme Prime: Product Item Price">
<div t-if="request.website._dr_has_b2b_access()" t-attf-class="product_price #{_classes}" itemprop="offers" itemscope="itemscope" itemtype="http://schema.org/Offer">
<span t-attf-class="#{_size or 'h6'} text-primary mb-0" t-if="template_price_vals['price_reduce'] or not website.prevent_zero_price_sale" t-out="template_price_vals['price_reduce']" t-options="{'widget': 'monetary', 'display_currency': website.currency_id}"/>
<span t-attf-class="#{_size or 'h6'} mb-0" t-else="" t-field="website.prevent_zero_price_sale_text"/>
<t t-if="'base_price' in template_price_vals">
<del t-attf-class="text-body ms-1 #{_size or 'h6'} mb-0" style="white-space: nowrap;">
<span class="small" t-out="template_price_vals['base_price']" t-options="{'widget': 'monetary', 'display_currency': website.currency_id}" />
</del>
</t>
<span itemprop="price" style="display:none;" t-out="template_price_vals['price_reduce']" />
<span itemprop="priceCurrency" style="display:none;" t-out="website.currency_id.name" />
<small t-if="'base_price' in template_price_vals" class="tp-discount-percentage d-none d-md-inline-block ms-1">
(<t t-out="round((template_price_vals['base_price'] - template_price_vals['price_reduce']) / template_price_vals['base_price'] * 100)"/>% OFF)
</small>
</div>
<div t-else="" t-attf-class="#{_classes}">
<t t-call="theme_prime.tp_b2b_price_label"/>
</div>
</template>
<template id="product_item_list_1" name="Theme Prime: Product Item - List 1">
<form action="/shop/cart/update" method="post" itemscope="itemscope" t-att-data-publish="product.website_published and 'on' or 'off'" itemtype="http://schema.org/Product">
<input name="product_id" t-att-value="product_variant_id" type="hidden"/>
<input type="hidden" name="csrf_token" t-att-value="request.csrf_token()" t-nocache="The csrf token must always be up to date."/>
<div class="tp-product-wrapper">
<div class="tp-product-top position-relative overflow-hidden">
<a t-att-href="product_href" class="tp-product-image-container d-block h-100" itemprop="url">
<img t-attf-src="/web/image/product.template/#{product.id}/#{product_image_size}" itemprop="image" loading="lazy" class="h-100 w-100 tp-product-image"/>
</a>
<t t-call="theme_prime.product_label">
<t t-set="label" t-value="product.dr_label_id"/>
</t>
<t t-call="theme_prime.product_label">
<t t-set="stock" t-value="True"/>
</t>
<t t-call="theme_prime.product_item_actions"/>
</div>
<div class="tp-product-content py-3">
<h5 class="text-center text-md-start">
<a class="tp-link-dark text-truncate d-block" t-att-title="product.name" itemprop="name" t-att-href="product_href" t-att-content="product.name" t-field="product.name" />
<a t-if="not product.website_published" role="button" t-att-href="product_href" class="btn btn-sm btn-danger" title="This product is unpublished.">
Unpublished
</a>
</h5>
<t t-call="theme_prime.product_item_price">
<t t-set="_classes" t-valuef="text-center text-md-start"/>
<t t-set="_size" t-valuef="h5"/>
</t>
<t t-if="_config_product_item.get('show_product_preview_swatches')" t-call="theme_prime.product_preview_swatches">
<t t-set="_classes" t-valuef="mt-2 d-flex justify-content-center justify-content-md-start"/>
<t t-set="parent_selector" t-valuef="form"/>
<t t-set="img_selector" t-valuef=".tp-product-image-container img"/>
<t t-set="img_size" t-value="product_image_size"/>
</t>
<div t-if="product.description_sale" class="text-center text-md-start mt-2" itemprop="description" t-field="product.description_sale"/>
<t t-if="_config_product_item.get('show_rating') and is_view_active('website_sale.product_comment')">
<t t-set="rating_stats" t-value="product.sudo().rating_get_stats()"/>
<t t-if="rating_stats['total']" t-call="theme_prime.product_rating">
<t t-set="rating_avg" t-value="product.rating_avg"/>
<t t-set="_classes" t-valuef="text-center text-md-start mt-1"/>
</t>
</t>
<div class="text-center text-md-start o_wsale_product_btn mt-3" t-if="_config_product_item.get('show_add_to_cart') and product_variant_id and (template_price_vals['price_reduce'] or not website.prevent_zero_price_sale) and product._website_show_quick_add()">
<a href="#" role="button" class="a-submit btn btn-primary" aria-label="Shopping cart">
<i class="dri dri-cart"/> Add to Cart
</a>
</div>
</div>
</div>
</form>
</template>
<template id="product_item_grid_1" name="Theme Prime: Product Item - Grid 1">
<form action="/shop/cart/update" method="post" itemscope="itemscope" itemtype="http://schema.org/Product" class="h-100 bg-white" t-att-data-publish="product.website_published and 'on' or 'off'">
<input name="product_id" t-att-value="product_variant_id" type="hidden"/>
<input type="hidden" name="csrf_token" t-att-value="request.csrf_token()" t-nocache="The csrf token must always be up to date."/>
<div class="tp-product-wrapper h-100 border">
<div class="tp-product-top position-relative overflow-hidden">
<a t-att-href="product_href" class="tp-product-image-container d-block h-100" itemprop="url">
<img t-attf-src="/web/image/product.template/#{product.id}/#{product_image_size}" itemprop="image" loading="lazy" class="img-fluid h-100 w-100 tp-product-image"/>
</a>
<t t-call="theme_prime.product_label">
<t t-set="label" t-value="product.dr_label_id"/>
</t>
<t t-call="theme_prime.product_label">
<t t-set="stock" t-value="True"/>
</t>
<t t-if="_config_product_item.get('show_rating') and is_view_active('website_sale.product_comment')">
<t t-set="rating_stats" t-value="product.sudo().rating_get_stats()"/>
<div t-if="rating_stats['total']" class="tp-product-rating-count rounded-pill bg-white" t-attf-title="#{rating_stats['total']} Reviews">
<i class="fa fa-star"></i>
<span class="ms-1 text-body" t-out="'%.1f' % rating_stats['avg']"/>
</div>
</t>
<t t-call="theme_prime.product_item_actions"/>
<div class="tp-add-to-cart-btn o_wsale_product_btn d-none d-lg-block" t-if="_config_product_item.get('show_add_to_cart') and product_variant_id and (template_price_vals['price_reduce'] or not website.prevent_zero_price_sale) and product._website_show_quick_add()">
<a href="#" role="button" class="a-submit btn btn-primary w-100 shadow-none" aria-label="Shopping cart">
<i class="dri dri-cart"/> Add to Cart
</a>
</div>
</div>
<div class="tp-product-content border-top p-2 position-relative text-center text-lg-start">
<h6 class="mb-1 tp-product-title">
<a class="tp-link-dark text-truncate d-block" t-att-title="product.name" itemprop="name" t-att-href="product_href" t-att-content="product.name" t-field="product.name" />
<a t-if="not product.website_published" role="button" t-att-href="product_href" class="btn btn-sm btn-danger" title="This product is unpublished.">
Unpublished
</a>
</h6>
<t t-call="theme_prime.product_item_price"/>
<t t-if="_config_product_item.get('show_rating') and is_view_active('website_sale.product_comment')">
<t t-set="rating_stats" t-value="product.sudo().rating_get_stats()"/>
<t t-if="rating_stats['total']" t-call="theme_prime.product_rating">
<t t-set="rating_avg" t-value="product.rating_avg"/>
<t t-set="_classes" t-valuef="mt-1 small d-lg-none"/>
</t>
</t>
<t t-if="_config_product_item.get('show_product_preview_swatches')" t-call="theme_prime.product_preview_swatches">
<t t-set="_classes" t-valuef="tp-product-preview-swatches-md bg-white d-flex mt-1 p-lg-2 justify-content-center justify-content-lg-start"/>
<t t-set="_limit" t-value="4"/>
<t t-set="parent_selector" t-valuef="form"/>
<t t-set="img_selector" t-valuef=".tp-product-image-container img"/>
<t t-set="img_size" t-value="product_image_size"/>
</t>
</div>
</div>
</form>
</template>
<template id="product_item_grid_2" name="Theme Prime: Product Item - Grid 2">
<form action="/shop/cart/update" method="post" itemscope="itemscope" itemtype="http://schema.org/Product" class="h-100 bg-white" t-att-data-publish="product.website_published and 'on' or 'off'">
<input name="product_id" t-att-value="product_variant_id" type="hidden"/>
<input type="hidden" name="csrf_token" t-att-value="request.csrf_token()" t-nocache="The csrf token must always be up to date."/>
<div class="tp-product-wrapper border overflow-hidden tp-rounded-border-radius h-100">
<div class="tp-product-top position-relative overflow-hidden">
<a t-att-href="product_href" class="tp-product-image-container d-block" itemprop="url">
<img t-attf-src="/web/image/product.template/#{product.id}/#{product_image_size}" itemprop="image" loading="lazy" class="img-fluid h-100 w-100 tp-product-image"/>
</a>
<t t-call="theme_prime.product_label">
<t t-set="label" t-value="product.dr_label_id"/>
</t>
<t t-call="theme_prime.product_label">
<t t-set="stock" t-value="True"/>
</t>
<t t-if="_config_product_item.get('show_rating') and is_view_active('website_sale.product_comment')">
<t t-set="rating_stats" t-value="product.sudo().rating_get_stats()"/>
<div t-if="rating_stats['total']" class="tp-product-rating-count rounded-pill bg-white" t-attf-title="#{rating_stats['total']} Reviews">
<i class="fa fa-star"></i>
<span class="ms-1 text-body" t-out="'%.1f' % rating_stats['avg']"/>
</div>
</t>
<t t-call="theme_prime.product_item_actions">
<t t-set="_classes" t-valuef="tp-action-buttons-rounded"/>
</t>
<div class="tp-add-to-cart-btn o_wsale_product_btn d-none d-lg-block p-2" t-if="_config_product_item.get('show_add_to_cart') and product_variant_id and (template_price_vals['price_reduce'] or not website.prevent_zero_price_sale) and product._website_show_quick_add()">
<a href="#" role="button" class="a-submit btn btn-primary w-100 shadow-none rounded-pill" aria-label="Shopping cart">
<i class="dri dri-cart"/> Add to Cart
</a>
</div>
</div>
<div class="tp-product-content p-2 text-center text-lg-start">
<h6 class="mb-1 tp-product-title">
<a class="tp-link-dark text-truncate d-block" t-att-title="product.name" itemprop="name" t-att-href="product_href" t-att-content="product.name" t-field="product.name" />
<a t-if="not product.website_published" role="button" t-att-href="product_href" class="btn btn-sm btn-danger" title="This product is unpublished.">
Unpublished
</a>
</h6>
<div class="d-flex flex-wrap flex-column flex-lg-row justify-content-center justify-content-lg-between align-items-center position-relative">
<t t-call="theme_prime.product_item_price">
<t t-set="_classes" t-valuef="me-2"/>
</t>
<t t-if="_config_product_item.get('show_product_preview_swatches')" t-call="theme_prime.product_preview_swatches">
<t t-set="_classes" t-valuef="tp-product-preview-swatches-sm bg-white mt-1 mt-lg-0"/>
<t t-set="parent_selector" t-valuef="form"/>
<t t-set="img_selector" t-valuef=".tp-product-image-container img"/>
<t t-set="img_size" t-value="product_image_size"/>
</t>
</div>
<t t-if="_config_product_item.get('show_rating') and is_view_active('website_sale.product_comment')">
<t t-set="rating_stats" t-value="product.sudo().rating_get_stats()"/>
<t t-if="rating_stats['total']" t-call="theme_prime.product_rating">
<t t-set="rating_avg" t-value="product.rating_avg"/>
<t t-set="_classes" t-valuef="mt-1 small d-lg-none"/>
</t>
</t>
</div>
</div>
</form>
</template>
<template id="shop_layout_filters" name="Theme Prime: Shop Layout Filters">
<t t-set="_filter_collapsible" t-value="_config_shop_filters.get('collapsible_attribute')"/>
<t t-set="_filter_show_attribute_count" t-value="_config_shop_filters.get('show_attribute_count')"/>
<!-- Categories -->
<ul t-if="_filter_category_activated" class="nav nav-pills flex-column">
<li t-attf-class="nav-item tp-filter-attribute tp-hook-categories #{_filter_attribute_classes}">
<t t-call="theme_prime.filter_attribute">
<t t-set="string">
<span>Categories</span>
</t>
<t t-set="is_selected" t-value="bool(category)"/>
<t t-set="_filter_collapsible" t-value="_config_shop_filters.get('collapsible_category')"/>
<ul class="nav flex-column ms-0" id="o_shop_collapse_category">
<form>
<li class="nav-item">
<div t-att-data-link-href="keep('/shop', category=0)" class="custom-control form-check mb-1 d-inline-block">
<input type="radio" style="pointer-events:none;" class="form-check-input o_not_editable" t-att-id="all_products" t-att-value="all_products" t-att-checked="'true' if not category else None"/>
<label class="form-check-label fw-normal" t-att-for="all_products">All Products</label>
</div>
</li>
<t t-foreach="categories" t-as="c">
<t t-if="is_view_active('website_sale.option_collapse_products_categories')" t-call="website_sale.option_collapse_categories_recursive" />
<t t-else="" t-call="website_sale.categories_recursive" />
</t>
</form>
</ul>
</t>
</li>
</ul>
<form t-if="_filter_attributes_activated" class="js_attributes" method="get">
<input t-if="category" type="hidden" name="category" t-att-value="category.id" />
<input type="hidden" name="search" t-att-value="search" />
<input type="hidden" name="order" t-att-value="order"/>
<input t-if="view_mode" type="hidden" name="view_mode" t-att-value="view_mode"/>
<ul class="nav nav-pills flex-column">
<!-- Price -->
<li t-if="is_view_active('website_sale.filter_products_price') and available_min_price != available_max_price and website._dr_has_b2b_access()" t-attf-class="nav-item tp-filter-attribute tp-hook-filter-price #{_filter_attribute_classes}">
<t t-call="theme_prime.filter_attribute">
<t t-set="string">
<span>Price</span>
</t>
<t t-set="is_selected" t-value="request.httprequest.args.get('min_price') or request.httprequest.args.get('max_price')"/>
<t t-call="theme_prime.filter_attribute_range">
<t t-set="key" t-value="'price'"/>
<t t-set="prefix" t-value="pricelist.currency_id.symbol" />
<t t-set="from_value" t-value="'%.2f' % min_price"/>
<t t-set="to_value" t-value="'%.2f' % max_price"/>
<t t-set="min_value" t-value="'%f' % (available_min_price)"/>
<t t-set="max_value" t-value="'%f' % (available_max_price)"/>
</t>
</t>
</li>
<!-- Attributes -->
<t t-foreach="attributes" t-as="attribute">
<li t-if="attribute.value_ids and len(attribute.value_ids) &gt; 1 and attribute.visibility == 'visible'" t-attf-class="nav-item tp-filter-attribute #{_filter_attribute_classes}">
<t t-call="theme_prime.filter_attribute">
<t t-set="string">
<span t-field="attribute.name" />
</t>
<t t-set="is_selected" t-value="attribute.id in attributes_ids"/>
<t t-set="show_search" t-value="attribute.dr_is_show_shop_search and attribute.display_type != 'select'"/>
<t t-set="name" t-value="'attribute_%s' % attribute.id"/>
<t t-set="items" t-value="attribute.value_ids"/>
<t t-set="selected" t-value="attrib_set"/>
<t t-set="is_attribute" t-value="attribute"/>
<t t-set="hide_extra_value" t-value="_config_shop_filters.get('hide_extra_attrib_value')"/>
<t t-set="show_count" t-value="_filter_show_attribute_count"/>
<t t-set="count_list" t-value="get_attrib_count"/>
<t t-if="attribute.display_type == 'select'">
<t t-call="theme_prime.filter_attribute_select"/>
</t>
<t t-if="attribute.display_type in ['radio', 'pills', 'radio_circle', 'radio_square']">
<t t-call="theme_prime.filter_attribute_checkbox"/>
</t>
<t t-if="attribute.display_type == 'radio_image'">
<t t-if="attribute.dr_radio_image_style == 'default'">
<t t-call="theme_prime.filter_attribute_checkbox"/>
</t>
<t t-elif="attribute.dr_radio_image_style in ['image', 'image_compact']">
<t t-set="show_image" t-value="True"/>
<t t-set="image_model" t-value="'product.attribute.value'"/>
<t t-set="image_field" t-value="'dr_image'"/>
<t t-set="compact_image" t-value="attribute.dr_radio_image_style == 'image_compact'"/>
<t t-call="theme_prime.filter_attribute_image"/>
</t>
<t t-elif="attribute.dr_radio_image_style == 'image_text'">
<t t-set="show_image" t-value="True"/>
<t t-set="image_model" t-value="'product.attribute.value'"/>
<t t-set="image_field" t-value="'dr_image'"/>
<t t-call="theme_prime.filter_attribute_checkbox"/>
</t>
</t>
<t t-if="attribute.display_type == 'color'">
<t t-set="show_color" t-value="True"/>
<t t-call="theme_prime.filter_attribute_checkbox"/>
</t>
</t>
</li>
</t>
<!-- Availability -->
<li t-if="_config_shop_filters.get('show_availability_filter')" t-attf-class="nav-item tp-filter-attribute tp-hook-filter-availability #{_filter_attribute_classes}">
<t t-call="theme_prime.filter_attribute">
<t t-set="string">
<span>Availability</span>
</t>
<t t-set="is_selected" t-value="selected_hide_out_of_stock"/>
<ul class="nav nav-pills flex-column ms-0 flex-nowrap tp-filter-attribute-scrollbar">
<li class="nav-item">
<div class="form-check mb-1 ms-1">
<input type="checkbox" name="hide_out_of_stock" class="form-check-input" id="hide_out_of_stock" value="1" t-att-checked="'checked' if is_selected else None"/>
<label class="form-check-label fw-normal w-100" for="hide_out_of_stock">
<div class="d-flex align-items-center justify-content-between">
<div class="d-flex align-items-center">
Hide out of stock
</div>
</div>
</label>
</div>
</li>
</ul>
</t>
</li>
<!-- Rating -->
<li t-if="_config_shop_filters.get('show_rating_filter') and is_view_active('website_sale.product_comment')" t-attf-class="nav-item tp-filter-attribute tp-hook-filter-rating #{_filter_attribute_classes}">
<t t-call="theme_prime.filter_attribute">
<t t-set="string">
<span>Rating</span>
</t>
<t t-set="is_selected" t-value="selected_ratings"/>
<ul class="nav nav-pills flex-column ms-0 flex-nowrap tp-filter-attribute-scrollbar">
<t t-foreach="[4,3,2,1]" t-as="rating">
<li class="nav-item">
<div class="form-check mb-1 ms-1">
<input type="checkbox" name="rating" class="form-check-input" t-attf-id="rating-#{rating}" t-att-value="rating" t-att-checked="'checked' if rating in selected_ratings else None"/>
<label class="form-check-label fw-normal w-100" t-attf-for="rating-#{rating}">
<div class="d-flex align-items-center justify-content-between">
<div class="d-flex align-items-center">
<t t-out="rating"/>
<div class="o_website_rating_static mx-1">
<i class="fa fa-star"/>
</div>
<span> &amp; above</span>
</div>
<span class="tp-filter-count ms-1" t-if="_filter_show_attribute_count and get_ratings_count.get(rating)">
<t t-out="get_ratings_count.get(rating)"/>
</span>
</div>
</label>
</div>
</li>
</t>
</ul>
</t>
</li>
<!-- Tags -->
<li t-if="is_view_active('website_sale.filter_products_tags') and all_tags" t-attf-class="nav-item tp-filter-attribute tp-hook-filter-tags #{_filter_attribute_classes}">
<t t-call="theme_prime.filter_attribute">
<t t-set="string">
<span>Tags</span>
</t>
<t t-set="is_selected" t-value="tags"/>
<t t-set="show_search" t-value="True"/>
<t t-set="name" t-value="'tags'"/>
<t t-set="items" t-value="all_tags"/>
<t t-set="selected" t-value="tags"/>
<t t-call="theme_prime.filter_attribute_checkbox"/>
</t>
</li>
</ul>
</form>
</template>
<template id="categorie_link" inherit_id="website_sale.categorie_link" name="Theme Prime: Category Link">
<xpath expr="//label[@t-field='c.name']" position="replace">
<label class="form-check-label fw-normal" t-att-for="c.id">
<span t-field="c.name"/>
<span class="tp-filter-count ms-1" t-if="_config_shop_layout.get('layout') == 'prime' and _config_shop_filters.get('show_category_count') and get_category_count.get(c.id, 0)">
(<t t-out="get_category_count.get(c.id, 0)"/>)
</span>
</label>
</xpath>
</template>
<!--
============================================================================
Shop Filter Attributes
============================================================================
-->
<template id="filter_attribute" name="Theme Prime: Attribute">
<div t-attf-class="d-flex justify-content-between align-items-center tp-filter-attribute-title py-3 #{_filter_attribute_title_classes} #{_filter_collapsible and 'collapsible cursor-pointer' or None} #{is_selected and 'expanded' or None}">
<h6 class="mb-0">
<span t-out="string"/>
</h6>
<span t-if="_filter_collapsible" class="tp-collapse-indicator">
<t t-if="_filter_collapsible_plus_style">
<svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" fill="currentColor" class="bi bi-plus-lg" viewBox="0 0 16 16">
<path fill-rule="evenodd" d="M8 2a.5.5 0 0 1 .5.5v5h5a.5.5 0 0 1 0 1h-5v5a.5.5 0 0 1-1 0v-5h-5a.5.5 0 0 1 0-1h5v-5A.5.5 0 0 1 8 2Z"/>
</svg>
<svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" fill="currentColor" class="bi bi-dash-lg" viewBox="0 0 16 16">
<path fill-rule="evenodd" d="M2 8a.5.5 0 0 1 .5-.5h11a.5.5 0 0 1 0 1h-11A.5.5 0 0 1 2 8Z"/>
</svg>
</t>
<i t-else="" class="dri dri-chevron-right-l"/>
</span>
</div>
<div t-attf-class="tp-filter-attribute-collapsible-area #{_filter_attribute_collapse_area_classes} #{_filter_collapsible and 'collapsible' or None}" t-attf-style="display: #{(is_selected or not _filter_collapsible) and 'block' or 'none'}">
<div t-if="show_search" class="input-group mb-3 tp-search-input-group position-relative">
<input type="text" class="form-control tp-search-attribute-value" placeholder="Search..."/>
<i class="dri dri-search-l tp-search-icon"/>
</div>
<t t-out="0"/>
</div>
</template>
<template id="filter_attribute_checkbox" name="Theme Prime: Attribute Checkbox List">
<ul class="nav nav-pills flex-column ms-0 flex-nowrap tp-filter-attribute-scrollbar">
<t t-foreach="items.sorted(lambda i: i.id in selected, reverse=True)" t-as="item">
<li class="nav-item" t-att-data-search-term="item.name.lower()" t-if="(count_list.get(item.id) or item.id in selected) if hide_extra_value else True">
<div class="form-check mb-1 ms-1">
<input type="checkbox" t-att-name="'attrib' if is_attribute else name" class="form-check-input" t-attf-id="#{name}-#{item.id}" t-att-value="'%s-%s' % (is_attribute.id, item.id) if is_attribute else item.id" t-att-checked="'checked' if item.id in selected else None"/>
<label class="form-check-label fw-normal w-100" t-attf-for="#{name}-#{item.id}">
<div class="d-flex align-items-center justify-content-between">
<div class="d-flex align-items-center">
<span t-if="show_image" class="tp-attribute-image-box border me-1" t-attf-style="background-image: url('/web/image/#{image_model}/#{item.id}/#{image_field}');"/>
<span t-if="show_color" class="tp-attribute-color-box me-1" t-attf-style="background-color: #{item.html_color or item.name}"/>
<span t-field="item.name"/>
</div>
<span class="tp-filter-count ms-1" t-if="show_count and count_list.get(item.id)">
<t t-out="count_list.get(item.id)"/>
</span>
</div>
</label>
</div>
</li>
</t>
</ul>
</template>
<template id="filter_attribute_select" name="Theme Prime: Attribute Select">
<select class="form-control" t-att-name="'attrib' if is_attribute else name">
<option value="" />
<t t-foreach="items" t-as="item" t-if="count_list.get(item.id) if hide_extra_value else True">
<option t-attf-id="#{name}-#{item.id}" t-att-value="'%s-%s' % (is_attribute.id, item.id) if is_attribute else item.id" t-out="item.name" t-att-selected="item.id in selected" />
</t>
</select>
</template>
<template id="filter_attribute_image" name="Theme Prime: Attribute Image">
<ul class="nav nav-pills ms-0 tp-filter-attribute-scrollbar tp-filter-image-style">
<t t-foreach="items.sorted(lambda i: i.id in selected, reverse=True)" t-as="item">
<li t-attf-class="nav-item p-1 #{compact_image and 'compact' or ''}" t-att-data-search-term="item.name.lower()" t-if="count_list.get(item.id) if hide_extra_value else True">
<input type="checkbox" t-att-name="'attrib' if is_attribute else name" class="d-none" t-attf-id="#{name}-#{item.id}" t-att-value="'%s-%s' % (is_attribute.id, item.id) if is_attribute else item.id" t-att-checked="'checked' if item.id in selected else None"/>
<label t-attf-for="#{name}-#{item.id}">
<img class="w-100" t-att-title="item.name" t-attf-src="/web/image/#{image_model}/#{item.id}/#{image_field}"/>
</label>
</li>
</t>
</ul>
</template>
<template id="filter_attribute_range" name="Theme Prime: Attribute Range">
<div class="tp-range-filter">
<input class="tp-slider d-none" t-att-data-key="key" t-att-data-min="min_value" t-att-data-max="max_value" t-att-data-from="from_value" t-att-data-to="to_value" t-att-data-prefix="prefix" />
<div class="d-flex align-items-center justify-content-center gap-3 mt-2">
<div class="input-group">
<input type="text" class="form-control min" t-att-value="from_value" placeholder="From"/>
</div>
<div class="text-center">
-
</div>
<div class="input-group">
<input type="text" class="form-control max" t-att-value="to_value" placeholder="To"/>
</div>
</div>
<input t-if="request.httprequest.args.get('min_%s' % key)" type="hidden" t-attf-name="min_#{key}" t-att-value="from_value"/>
<input t-if="request.httprequest.args.get('max_%s' % key)" type="hidden" t-attf-name="max_#{key}" t-att-value="to_value"/>
<div class="d-flex align-items-center justify-content-between mt-3">
<div class="text-danger tp-validate-msg"/>
<button type="submit" class="btn btn-sm btn-primary apply">FILTER</button>
</div>
</div>
</template>
</odoo>
+322
View File
@@ -0,0 +1,322 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<!--
============================================================================
Page Sidebar
============================================================================
-->
<template id="page_sidebars" inherit_id="website.layout" name="Theme Prime: Page Sidebar">
<xpath expr="//header" position="before">
<!--
============================================================================
Account Info Sidebar
============================================================================
-->
<div t-cache="user_id" class="offcanvas offcanvas-end tp-account-info-sidebar tp-offcanvas-sidebar bg-200" tabindex="-1" aria-hidden="true">
<div class="d-flex justify-content-between align-items-center bg-white border-bottom p-3">
<div class="d-flex align-items-center">
<i class="dri dri-user tp-bg-soft-primary text-primary rounded-circle me-3 tp-header-icon"></i>
<h5 class="mb-0" t-if="user_id._is_public()">Guest</h5>
<div t-else="">
<h5 class="mb-0"><t t-out="user_id.name"/></h5>
<span class="text-muted"><t t-out="user_id.email"/></span>
</div>
</div>
<button type="button" class="btn-close" data-bs-dismiss="offcanvas" title="Close" aria-label="Close"></button>
</div>
<div class="tp-scrollable-y flex-grow-1">
<ul t-if="user_id._is_public()" class="list-group p-2 mt-2 tp-hook-public-user">
<a href="/web/login" class="list-group-item list-group-item-action d-flex align-items-center">
<div class="d-flex align-items-center">
<svg xmlns="http://www.w3.org/2000/svg" width="1em" height="1em" fill="currentColor" class="bi bi-box-arrow-in-right" viewBox="0 0 16 16">
<path fill-rule="evenodd" d="M6 3.5a.5.5 0 0 1 .5-.5h8a.5.5 0 0 1 .5.5v9a.5.5 0 0 1-.5.5h-8a.5.5 0 0 1-.5-.5v-2a.5.5 0 0 0-1 0v2A1.5 1.5 0 0 0 6.5 14h8a1.5 1.5 0 0 0 1.5-1.5v-9A1.5 1.5 0 0 0 14.5 2h-8A1.5 1.5 0 0 0 5 3.5v2a.5.5 0 0 0 1 0v-2z"/>
<path fill-rule="evenodd" d="M11.854 8.354a.5.5 0 0 0 0-.708l-3-3a.5.5 0 1 0-.708.708L10.293 7.5H1.5a.5.5 0 0 0 0 1h8.793l-2.147 2.146a.5.5 0 0 0 .708.708l3-3z"/>
</svg>
<h6 class="mb-0 ms-3">Login</h6>
</div>
</a>
<a t-if="request.env['res.users']._get_signup_invitation_scope() == 'b2c'" href="/web/signup" class="list-group-item list-group-item-action d-flex align-items-center">
<div class="d-flex align-items-center">
<svg xmlns="http://www.w3.org/2000/svg" width="1em" height="1em" fill="currentColor" class="bi bi-person-plus" viewBox="0 0 16 16">
<path d="M6 8a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm2-3a2 2 0 1 1-4 0 2 2 0 0 1 4 0zm4 8c0 1-1 1-1 1H1s-1 0-1-1 1-4 6-4 6 3 6 4zm-1-.004c-.001-.246-.154-.986-.832-1.664C9.516 10.68 8.289 10 6 10c-2.29 0-3.516.68-4.168 1.332-.678.678-.83 1.418-.832 1.664h10z"/>
<path fill-rule="evenodd" d="M13.5 5a.5.5 0 0 1 .5.5V7h1.5a.5.5 0 0 1 0 1H14v1.5a.5.5 0 0 1-1 0V8h-1.5a.5.5 0 0 1 0-1H13V5.5a.5.5 0 0 1 .5-.5z"/>
</svg>
<h6 class="mb-0 ms-3">Register</h6>
</div>
</a>
</ul>
<ul class="list-group p-2 mt-2 tp-hook-generic">
<a href="/shop/cart" class="list-group-item list-group-item-action d-flex align-items-center" t-nocache="The number of products is dynamic, this rendering cannot be cached.">
<div class="d-flex align-items-center">
<i class="dri dri-cart"/>
<div class="d-flex align-items-center">
<t t-set="website_sale_cart_quantity" t-value="request.session['website_sale_cart_quantity'] if 'website_sale_cart_quantity' in request.session else website.sale_get_order().cart_quantity or 0"/>
<h6 class="mb-0 ms-3">My Cart</h6> <span class="ms-2">(<span class="my_cart_quantity" t-att-data-order-id="request.session.get('sale_order_id', '')"><t t-out="website_sale_cart_quantity"/></span>)</span>
</div>
</div>
</a>
<a href="/shop/wishlist" class="list-group-item list-group-item-action d-flex align-items-center" t-nocache="The wishlist may vary and depends on the user.">
<div class="d-flex align-items-center">
<i class="dri dri-wishlist"/>
<div class="d-flex align-items-center">
<t t-set="wishlist_quantity" t-value="len(request.env['product.wishlist'].current())"/>
<h6 class="mb-0 ms-3">My Wishlist</h6> <span class="ms-2">(<span class="tp-wishlist-counter"><t t-out="wishlist_quantity"/></span>)</span>
</div>
</div>
</a>
</ul>
<ul class="list-group p-2 tp-hook-logged-user" t-if="not user_id._is_public()">
<a href="/my" class="list-group-item list-group-item-action d-flex align-items-center">
<div class="d-flex align-items-center">
<i class="dri dri-user"/>
<h6 class="mb-0 ms-3">My Account</h6>
</div>
</a>
<a href="/my/orders" class="list-group-item list-group-item-action d-flex align-items-center">
<div class="d-flex align-items-center">
<i class="fa fa-list"/>
<h6 class="mb-0 ms-3">My Orders</h6>
</div>
</a>
<a href="/my/account" class="list-group-item list-group-item-action d-flex align-items-center">
<div class="d-flex align-items-center">
<svg xmlns="http://www.w3.org/2000/svg" width="1em" height="1em" fill="currentColor" class="bi bi-pencil-square" viewBox="0 0 16 16">
<path d="M15.502 1.94a.5.5 0 0 1 0 .706L14.459 3.69l-2-2L13.502.646a.5.5 0 0 1 .707 0l1.293 1.293zm-1.75 2.456-2-2L4.939 9.21a.5.5 0 0 0-.121.196l-.805 2.414a.25.25 0 0 0 .316.316l2.414-.805a.5.5 0 0 0 .196-.12l6.813-6.814z"/>
<path fill-rule="evenodd" d="M1 13.5A1.5 1.5 0 0 0 2.5 15h11a1.5 1.5 0 0 0 1.5-1.5v-6a.5.5 0 0 0-1 0v6a.5.5 0 0 1-.5.5h-11a.5.5 0 0 1-.5-.5v-11a.5.5 0 0 1 .5-.5H9a.5.5 0 0 0 0-1H2.5A1.5 1.5 0 0 0 1 2.5v11z"/>
</svg>
<h6 class="mb-0 ms-3">Edit Profile</h6>
</div>
</a>
<a href="/my/payment_method" class="list-group-item list-group-item-action d-flex align-items-center">
<div class="d-flex align-items-center">
<i class="fa fa-credit-card"/>
<h6 class="mb-0 ms-3">Manage Payment Methods</h6>
</div>
</a>
<a href="/my/security" class="list-group-item list-group-item-action d-flex align-items-center">
<div class="d-flex align-items-center">
<svg xmlns="http://www.w3.org/2000/svg" width="1em" height="1em" fill="currentColor" class="bi bi-shield-check" viewBox="0 0 16 16">
<path d="M5.338 1.59a61.44 61.44 0 0 0-2.837.856.481.481 0 0 0-.328.39c-.554 4.157.726 7.19 2.253 9.188a10.725 10.725 0 0 0 2.287 2.233c.346.244.652.42.893.533.12.057.218.095.293.118a.55.55 0 0 0 .101.025.615.615 0 0 0 .1-.025c.076-.023.174-.061.294-.118.24-.113.547-.29.893-.533a10.726 10.726 0 0 0 2.287-2.233c1.527-1.997 2.807-5.031 2.253-9.188a.48.48 0 0 0-.328-.39c-.651-.213-1.75-.56-2.837-.855C9.552 1.29 8.531 1.067 8 1.067c-.53 0-1.552.223-2.662.524zM5.072.56C6.157.265 7.31 0 8 0s1.843.265 2.928.56c1.11.3 2.229.655 2.887.87a1.54 1.54 0 0 1 1.044 1.262c.596 4.477-.787 7.795-2.465 9.99a11.775 11.775 0 0 1-2.517 2.453 7.159 7.159 0 0 1-1.048.625c-.28.132-.581.24-.829.24s-.548-.108-.829-.24a7.158 7.158 0 0 1-1.048-.625 11.777 11.777 0 0 1-2.517-2.453C1.928 10.487.545 7.169 1.141 2.692A1.54 1.54 0 0 1 2.185 1.43 62.456 62.456 0 0 1 5.072.56z"/>
<path d="M10.854 5.146a.5.5 0 0 1 0 .708l-3 3a.5.5 0 0 1-.708 0l-1.5-1.5a.5.5 0 1 1 .708-.708L7.5 7.793l2.646-2.647a.5.5 0 0 1 .708 0z"/>
</svg>
<h6 class="mb-0 ms-3">Change Password</h6>
</div>
</a>
</ul>
<ul t-if="not user_id._is_public()" class="list-group p-2 tp-hook-logout">
<a class="list-group-item list-group-item-action d-flex align-items-center link-danger" href="/web/session/logout?redirect=/">
<div class="d-flex align-items-center">
<svg xmlns="http://www.w3.org/2000/svg" width="1em" height="1em" fill="currentColor" class="bi bi-box-arrow-right" viewBox="0 0 16 16">
<path fill-rule="evenodd" d="M10 12.5a.5.5 0 0 1-.5.5h-8a.5.5 0 0 1-.5-.5v-9a.5.5 0 0 1 .5-.5h8a.5.5 0 0 1 .5.5v2a.5.5 0 0 0 1 0v-2A1.5 1.5 0 0 0 9.5 2h-8A1.5 1.5 0 0 0 0 3.5v9A1.5 1.5 0 0 0 1.5 14h8a1.5 1.5 0 0 0 1.5-1.5v-2a.5.5 0 0 0-1 0v2z"/>
<path fill-rule="evenodd" d="M15.854 8.354a.5.5 0 0 0 0-.708l-3-3a.5.5 0 0 0-.708.708L14.293 7.5H5.5a.5.5 0 0 0 0 1h8.793l-2.147 2.146a.5.5 0 0 0 .708.708l3-3z"/>
</svg>
<h6 class="mb-0 ms-3">Logout</h6>
</div>
</a>
</ul>
</div>
</div>
</xpath>
</template>
<!--
============================================================================
Cart Sidebar
============================================================================
-->
<template id="cart_sidebar" name="Theme Prime: Cart Sidebar">
<div class="tp-cart-sidebar d-flex flex-column h-100">
<div class="d-flex justify-content-between align-items-center border-bottom p-3">
<div class="d-flex align-items-center">
<i class="dri dri-cart text-primary me-3 tp-header-icon"></i>
<h5 class="mb-0">
Your Cart
</h5>
<a t-if="order.website_order_line" href="#" class="text-muted small tp-clear-cart ms-2">(Clear Cart)</a>
</div>
<button type="button" class="btn-close" data-bs-dismiss="offcanvas" title="Close" aria-label="Close"></button>
</div>
<t t-if="order and order.website_order_line">
<div class="tp-scrollable-y position-relative flex-grow-1 p-3 bg-200">
<t t-foreach="order.website_order_line" t-as="line">
<div class="d-flex p-3 mb-3 shadow-sm bg-white position-relative tp-product-card">
<div class="flex-shrink-0">
<span t-if="line._is_not_sellable_line() and line.product_id.image_128">
<img t-att-src="image_data_uri(line.product_id.image_128)" class="img o_image_64_max rounded border" t-att-alt="line.name_short"/>
</span>
<span t-else="" t-field="line.product_id.image_128" t-options="{'widget': 'image', 'qweb_img_responsive': False, 'class': 'rounded o_image_64_max border'}" />
</div>
<div class="flex-grow-1 ms-3">
<a href="#" class="tp-remove-line tp-icon-center-1 dr-d-icon shadow rounded-circle text-muted position-absolute top-0 start-100 translate-middle" title="Remove from Cart">
<i class="fa fa-times"/>
</a>
<h6><a class="tp-link-dark" t-att-href="line.product_id.website_url" t-out="line.name_short"/></h6>
<div class="css_quantity input-group input-group-sm">
<t t-if="not line._is_not_sellable_line()">
<a href="#" class="btn btn-link js_add_cart_json d-none d-md-inline-block" aria-label="Remove one" title="Remove one">
<i class="fa fa-minus"/>
</a>
<input type="text" class="js_quantity form-control quantity" t-att-data-line-id="line.id" t-att-data-product-id="line.product_id.id" t-att-value="int(line.product_uom_qty) == line.product_uom_qty and int(line.product_uom_qty) or line.product_uom_qty" />
<a href="#" class="btn btn-link js_add_cart_json d-none d-md-inline-block" aria-label="Add one" title="Add one">
<i class="fa fa-plus"/>
</a>
</t>
<t t-else="">
<span class="text-muted w-100" t-out="int(line.product_uom_qty)"/>
<input type="hidden" class="js_quantity form-control quantity" t-att-data-line-id="line.id" t-att-data-product-id="line.product_id.id" t-att-value="line.product_uom_qty" />
</t>
</div>
<div class="mt-2 d-inline-block float-end">
<t t-if="website.show_line_subtotals_tax_selection == 'tax_excluded'">
<h6 t-field="line.price_reduce_taxexcl" class="text-primary mb-0" style="white-space: nowrap;" t-options="{'widget': 'monetary', 'display_currency': order.currency_id}"/>
</t>
<t t-if="website.show_line_subtotals_tax_selection == 'tax_included'">
<h6 t-field="line.price_reduce_taxinc" class="text-primary mb-0" style="white-space: nowrap;" t-options="{'widget': 'monetary', 'display_currency': order.currency_id}"/>
</t>
</div>
</div>
</div>
</t>
</div>
<div class="tp-hook-total border-top">
<div class="d-flex justify-content-between p-3">
<h6 class="mb-0">Subtotal</h6>
<h6 t-field="order.amount_untaxed" class="monetary_field mb-0" style="white-space: nowrap;" t-options="{'widget': 'monetary', 'display_currency': order.currency_id}"/>
</div>
<div class="d-flex justify-content-between p-3 pt-0">
<h6 class="mb-0">Taxes</h6>
<h6 t-field="order.amount_tax" class="monetary_field mb-0" style="white-space: nowrap;" t-options="{'widget': 'monetary', 'display_currency': order.currency_id}"/>
</div>
<div t-if="is_view_active('website_sale.reduction_code')" class="d-flex justify-content-end p-3 pt-0">
<a href="#" class="show_coupon">Apply promo code</a>
<div class="coupon_form d-none w-100">
<t t-call="website_sale.coupon_form">
<t t-set="website_sale_order" t-value="order"/>
</t>
</div>
</div>
<t t-if="website._get_dr_theme_config('json_sidebar_config').get('cart_sidebar_free_delivery_progress')">
<t t-set="free_delivery_details" t-value="order._get_free_delivery_details()"/>
<div t-if="free_delivery_details" class="row mx-0 py-3 border-top">
<div class="col-12">
<t t-if="free_delivery_details['order_amount'] >= free_delivery_details['free_over']">
<div class="mb-1 text-success"><i class="fa fa-truck"/> You are eligible for <strong>free shipping!</strong></div>
<div class="progress">
<div class="progress-bar progress-bar-striped bg-success" role="progressbar" style="width: 100%"></div>
</div>
</t>
<t t-else="">
<div class="mb-1">You're <strong class="text-primary" t-esc="free_delivery_details['remaining_amount']" t-options="{'widget': 'monetary', 'display_currency': order.currency_id}"/> away from <strong>free shipping!</strong></div>
<div class="progress">
<div class="progress-bar progress-bar-striped progress-bar-animated" role="progressbar" t-attf-style="width: #{free_delivery_details['progress']}%"></div>
</div>
</t>
</div>
</div>
</t>
<div class="row mx-0 pb-3">
<div class="col-12">
<a class="btn btn-primary btn-lg shadow d-flex align-items-center justify-content-between tp-proceed-btn" href="/shop/cart">
<div class="d-flex flex-column align-items-start">
<span class="tp-total-cart-items"><t t-esc="order.cart_quantity"/> items</span>
<span t-field="order.amount_total" class="tp-total-amount fw-bold" style="white-space: nowrap;" t-options="{'widget': 'monetary', 'display_currency': order.currency_id}"/>
</div>
<small>Proceed <i class="fa fa-angle-right ms-1"/></small>
</a>
</div>
</div>
</div>
</t>
<div t-else="" class="text-center">
<t t-call="theme_prime.tp_svg_cart">
<t t-set="_classes" t-value="'m-5'"/>
</t>
<h5 class="my-4">Your cart is empty!</h5>
<a class="btn btn-primary" href="/shop">
Shop Now
</a>
</div>
</div>
</template>
<!--
============================================================================
Search Sidebar
============================================================================
-->
<template id="search_sidebar" name="Theme Prime: Search Sidebar">
<div class="row g-0">
<div class="col-12">
<t t-call="website.website_search_box_input">
<t t-set="_form_classes" t-valuef="o_wsale_products_searchbar_form border m-2 o_not_editable"/>
<t t-set="search_type" t-valuef="products"/>
<t t-set="action" t-value="'/shop'"/>
</t>
</div>
</div>
</template>
<!--
============================================================================
Similar Products Sidebar
============================================================================
-->
<template id="similar_products_sidebar" name="Theme Prime: Similar Products Sidebar">
<div class="tp-scrollable-y flex-grow-1 p-3 bg-200" t-if="len(products)">
<t t-foreach="products" t-as="product_id">
<div class="tp-product-card d-flex p-3 mb-3 shadow-sm bg-white">
<a class="flex-shrink-0" t-att-href="product_id.website_url">
<span t-field="product_id.image_128" t-options="{'widget': 'image', 'qweb_img_responsive': False, 'class': 'rounded border'}" />
</a>
<div class="flex-grow-1 ms-3">
<div class="d-flex justify-content-between align-items-center position-relative">
<a t-if="product_id.public_categ_ids" class="text-muted" t-attf-href="/shop/category/#{product_id.public_categ_ids[0].id}">
<small t-field="product_id.public_categ_ids[0].name"/>
</a>
<div class="position-absolute" style="left: auto; right: 0;">
<t t-call="theme_prime.product_label">
<t t-set="label" t-value="product_id.dr_label_id"/>
<t t-set="style" t-valuef="2"/>
<t t-set="_classes" t-valuef="position-relative top-0 start-0"/>
</t>
</div>
</div>
<h6 class="my-1">
<a class="tp-link-dark" t-att-href="product_id.website_url">
<span t-field="product_id.name"/>
</a>
</h6>
<div class="mt-1">
<div t-if="request.website._dr_has_b2b_access()">
<t t-set="product_combination_info" t-value="product_id._get_combination_info(only_template=True, add_qty=1)"/>
<h6 class="text-primary d-inline-block mb-0" t-out="product_combination_info['price']" t-options="{'widget': 'monetary', 'display_currency': website.currency_id}"/>
<small t-attf-class="oe_default_price ms-1 {{'' if product_combination_info['has_discounted_price'] else 'd-none'}}" style="text-decoration: line-through; white-space: nowrap;" t-out="product_combination_info['list_price']" t-options="{'widget': 'monetary', 'display_currency': website.currency_id}"/>
<t t-call="theme_prime.discount_percentage">
<t t-set="combination_info" t-value="product_combination_info"/>
</t>
</div>
<div t-else="">
<t t-call="theme_prime.tp_b2b_price_label"/>
</div>
</div>
<t t-if="is_view_active('website_sale.product_comment')">
<t t-set="rating_stats" t-value="product_id.sudo().rating_get_stats()"/>
<t t-if="rating_stats['total']" t-call="theme_prime.product_rating">
<t t-set="rating_avg" t-value="product_id.rating_avg"/>
<t t-set="_classes" t-valuef="mt-1 small"/>
</t>
</t>
</div>
</div>
</t>
</div>
<t t-else="">
<t t-call="theme_prime.tp_svg_cart">
<t t-set="_classes" t-value="'m-5'"/>
</t>
<h5 class="my-4 text-center">No similar products found!</h5>
</t>
</template>
</odoo>
+598
View File
@@ -0,0 +1,598 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<template id="snippets" inherit_id="website.snippets">
<div id="snippet_structure" position="before">
<div id="tp_snippet_dynamic" class="o_panel">
<div class="o_panel_header">Dynamic Snippet</div>
<div class="o_panel_body">
<t t-snippet="theme_prime.s_d_products_snippet" string="Dynamic Snippet" t-thumbnail="/theme_prime/static/src/img/snippets_thumbs/s_prooduct_cards.png">
<keywords>products, dynamic</keywords>
</t>
</div>
</div>
<div id="tp_snippet_advance" class="o_panel">
<div class="o_panel_header">Advance Snippet</div>
<div class="o_panel_body">
<t t-snippet="theme_prime.s_tp_countdown" string="Countdown" t-thumbnail="/theme_prime/static/src/img/snippets_thumbs/s_countdown_1.png">
<keywords>countdown, timer</keywords>
</t>
<t t-snippet="theme_prime.s_tp_documents_snippet" string="Documents" t-thumbnail="/theme_prime/static/src/img/snippets_thumbs/s_products_brands.png">
<keywords>documents, attachments</keywords>
</t>
<t t-snippet="theme_prime.s_d_2_column_snippet" string="2 Column Deals" t-thumbnail="/theme_prime/static/src/img/snippets_thumbs/s_products_brands.png">
<keywords>products, dynamic</keywords>
</t>
<t t-snippet="theme_prime.s_category_brands" string="Categories &amp; Brands" t-thumbnail="/theme_prime/static/src/img/snippets_thumbs/s_products_brands.png">
<keywords>products, dynamic</keywords>
</t>
</div>
</div>
<div id="tp_snippet_cover" class="o_panel">
<div class="o_panel_header">Cover</div>
<div class="o_panel_body">
<t t-snippet="theme_prime.s_cover_1" string="Cover - 1" t-thumbnail="/theme_prime/static/src/img/snippets_thumbs/s_cover_1.png">
<keywords>covers, carousel</keywords>
</t>
<t t-snippet="theme_prime.s_cover_2" string="Cover - 2" t-thumbnail="/theme_prime/static/src/img/snippets_thumbs/s_cover_2.png">
<keywords>covers, carousel</keywords>
</t>
<t t-snippet="theme_prime.s_cover_3" string="Cover - 3" t-thumbnail="/theme_prime/static/src/img/snippets_thumbs/s_cover_3.png">
<keywords>covers, carousel</keywords>
</t>
<t t-snippet="theme_prime.s_cover_4" string="Cover - 4" t-thumbnail="/theme_prime/static/src/img/snippets_thumbs/s_cover_4.png">
<keywords>covers, carousel</keywords>
</t>
<t t-snippet="theme_prime.s_cover_5" string="Cover - 5" t-thumbnail="/theme_prime/static/src/img/snippets_thumbs/s_cover_4.png">
<keywords>covers</keywords>
</t>
</div>
</div>
<div id="tp_snippet_heading" class="o_panel">
<div class="o_panel_header">Heading</div>
<div class="o_panel_body">
<t t-snippet="theme_prime.s_heading_1" string="Heading - 1" t-thumbnail="/theme_prime/static/src/img/snippets_thumbs/s_heading_1.png">
<keywords>heading, title</keywords>
</t>
<t t-snippet="theme_prime.s_heading_2" string="Heading - 2" t-thumbnail="/theme_prime/static/src/img/snippets_thumbs/s_heading_2.png">
<keywords>heading, title</keywords>
</t>
<t t-snippet="theme_prime.s_heading_3" string="Heading - 3" t-thumbnail="/theme_prime/static/src/img/snippets_thumbs/s_heading_3.png">
<keywords>heading, title</keywords>
</t>
<t t-snippet="theme_prime.s_heading_4" string="Heading - 4" t-thumbnail="/theme_prime/static/src/img/snippets_thumbs/s_heading_4.png">
<keywords>heading, title</keywords>
</t>
<t t-snippet="theme_prime.s_heading_5" string="Heading - 5" t-thumbnail="/theme_prime/static/src/img/snippets_thumbs/s_heading_5.png">
<keywords>heading, title</keywords>
</t>
<t t-snippet="theme_prime.s_heading_6" string="Heading - 6" t-thumbnail="/theme_prime/static/src/img/snippets_thumbs/s_heading_6.png">
<keywords>heading, title</keywords>
</t>
</div>
</div>
<div id="tp_snippet_banner" class="o_panel">
<div class="o_panel_header">Banner</div>
<div class="o_panel_body">
<t t-snippet="theme_prime.s_banner_1" string="Banner - 1" t-thumbnail="/theme_prime/static/src/img/snippets_thumbs/s_banner_1.png">
<keywords>banner, hero</keywords>
</t>
<t t-snippet="theme_prime.s_banner_2" string="Banner - 2" t-thumbnail="/theme_prime/static/src/img/snippets_thumbs/s_banner_2.png">
<keywords>banner, hero</keywords>
</t>
<t t-snippet="theme_prime.s_banner_3" string="Banner - 3" t-thumbnail="/theme_prime/static/src/img/snippets_thumbs/s_banner_3.png">
<keywords>banner, hero</keywords>
</t>
<t t-snippet="theme_prime.s_banner_4" string="Banner - 4" t-thumbnail="/theme_prime/static/src/img/snippets_thumbs/s_banner_4.png">
<keywords>banner, hero</keywords>
</t>
<t t-snippet="theme_prime.s_banner_5" string="Banner - 5" t-thumbnail="/theme_prime/static/src/img/snippets_thumbs/s_banner_5.png">
<keywords>banner, hero</keywords>
</t>
<t t-snippet="theme_prime.s_banner_6" string="Banner - 6" t-thumbnail="/theme_prime/static/src/img/snippets_thumbs/s_banner_6.png">
<keywords>banner, hero</keywords>
</t>
<t t-snippet="theme_prime.s_banner_7" string="Banner - 7" t-thumbnail="/theme_prime/static/src/img/snippets_thumbs/s_banner_7.png">
<keywords>banner, hero</keywords>
</t>
<t t-snippet="theme_prime.s_banner_8" string="Banner - 8" t-thumbnail="/theme_prime/static/src/img/snippets_thumbs/s_banner_8.png">
<keywords>banner, hero</keywords>
</t>
<t t-snippet="theme_prime.s_banner_9" string="Banner - 9" t-thumbnail="/theme_prime/static/src/img/snippets_thumbs/s_banner_9.png">
<keywords>banner, hero</keywords>
</t>
<t t-snippet="theme_prime.s_banner_10" string="Banner - 10" t-thumbnail="/theme_prime/static/src/img/snippets_thumbs/s_banner_10.png">
<keywords>banner, hero</keywords>
</t>
<t t-snippet="theme_prime.s_banner_11" string="Banner - 11" t-thumbnail="/theme_prime/static/src/img/snippets_thumbs/s_banner_11.png">
<keywords>banner, hero</keywords>
</t>
<t t-snippet="theme_prime.s_banner_12" string="Banner - 12" t-thumbnail="/theme_prime/static/src/img/snippets_thumbs/s_banner_12.png">
<keywords>banner, hero</keywords>
</t>
<t t-snippet="theme_prime.s_banner_13" string="Banner - 13" t-thumbnail="/theme_prime/static/src/img/snippets_thumbs/s_banner_13.png">
<keywords>banner, hero</keywords>
</t>
<t t-snippet="theme_prime.s_banner_14" string="Banner - 14" t-thumbnail="/theme_prime/static/src/img/snippets_thumbs/s_banner_14.png">
<keywords>banner, hero</keywords>
</t>
<t t-snippet="theme_prime.s_banner_15" string="Banner - 15" t-thumbnail="/theme_prime/static/src/img/snippets_thumbs/s_banner_15.png">
<keywords>banner, hero</keywords>
</t>
</div>
</div>
<div id="tp_snippet_info_block" class="o_panel">
<div class="o_panel_header">Info Block</div>
<div class="o_panel_body">
<t t-snippet="theme_prime.s_info_block_1" string="Info Block - 1" t-thumbnail="/theme_prime/static/src/img/snippets_thumbs/s_info_block_1.png">
<keywords>information, content</keywords>
</t>
<t t-snippet="theme_prime.s_info_block_2" string="Info Block - 2" t-thumbnail="/theme_prime/static/src/img/snippets_thumbs/s_info_block_2.png">
<keywords>information, content</keywords>
</t>
<t t-snippet="theme_prime.s_info_block_3" string="Info Block - 3" t-thumbnail="/theme_prime/static/src/img/snippets_thumbs/s_info_block_3.png">
<keywords>information, content</keywords>
</t>
<t t-snippet="theme_prime.s_info_block_4" string="Info Block - 4" t-thumbnail="/theme_prime/static/src/img/snippets_thumbs/s_info_block_4.png">
<keywords>information, content</keywords>
</t>
<t t-snippet="theme_prime.s_info_block_5" string="Info Block - 5" t-thumbnail="/theme_prime/static/src/img/snippets_thumbs/s_info_block_5.png">
<keywords>information, content</keywords>
</t>
<t t-snippet="theme_prime.s_info_block_6" string="Info Block - 6" t-thumbnail="/theme_prime/static/src/img/snippets_thumbs/s_info_block_6.png">
<keywords>information, content</keywords>
</t>
<t t-snippet="theme_prime.s_info_block_7" string="Info Block - 7" t-thumbnail="/theme_prime/static/src/img/snippets_thumbs/s_info_block_7.png">
<keywords>information, content</keywords>
</t>
<t t-snippet="theme_prime.s_info_block_8" string="Info Block - 8" t-thumbnail="/theme_prime/static/src/img/snippets_thumbs/s_info_block_8.png">
<keywords>information, content</keywords>
</t>
</div>
</div>
<div id="tp_snippet_shop_offer" class="o_panel">
<div class="o_panel_header">Shop Offer</div>
<div class="o_panel_body">
<t t-snippet="theme_prime.s_shop_offer_1" string="Shop Offer - 1" t-thumbnail="/theme_prime/static/src/img/snippets_thumbs/s_shop_offer_1.png">
<keywords>offer</keywords>
</t>
<t t-snippet="theme_prime.s_shop_offer_2" string="Shop Offer - 2" t-thumbnail="/theme_prime/static/src/img/snippets_thumbs/s_shop_offer_2.png">
<keywords>offer</keywords>
</t>
<t t-snippet="theme_prime.s_shop_offer_3" string="Shop Offer - 3" t-thumbnail="/theme_prime/static/src/img/snippets_thumbs/s_shop_offer_3.png">
<keywords>offer</keywords>
</t>
<t t-snippet="theme_prime.s_shop_offer_4" string="Shop Offer - 4" t-thumbnail="/theme_prime/static/src/img/snippets_thumbs/s_shop_offer_4.png">
<keywords>offer</keywords>
</t>
<t t-snippet="theme_prime.s_shop_offer_5" string="Shop Offer - 5" t-thumbnail="/theme_prime/static/src/img/snippets_thumbs/s_shop_offer_5.png">
<keywords>offer</keywords>
</t>
</div>
</div>
<div id="tp_snippet_pricing" class="o_panel">
<div class="o_panel_header">Pricing</div>
<div class="o_panel_body">
<t t-snippet="theme_prime.s_pricing_1" string="Pricing - 1" t-thumbnail="/theme_prime/static/src/img/snippets_thumbs/s_pricing_1.png">
<keywords>pricing, comparison, table</keywords>
</t>
<t t-snippet="theme_prime.s_pricing_2" string="Pricing - 2" t-thumbnail="/theme_prime/static/src/img/snippets_thumbs/s_pricing_2.png">
<keywords>pricing, comparison, table</keywords>
</t>
<t t-snippet="theme_prime.s_pricing_3" string="Pricing - 3" t-thumbnail="/theme_prime/static/src/img/snippets_thumbs/s_pricing_3.png">
<keywords>pricing, comparison, table</keywords>
</t>
<t t-snippet="theme_prime.s_pricing_4" string="Pricing - 4" t-thumbnail="/theme_prime/static/src/img/snippets_thumbs/s_pricing_4.png">
<keywords>pricing, comparison, table</keywords>
</t>
<t t-snippet="theme_prime.s_pricing_5" string="Pricing - 5" t-thumbnail="/theme_prime/static/src/img/snippets_thumbs/s_pricing_5.png">
<keywords>pricing, comparison, table</keywords>
</t>
</div>
</div>
<div id="tp_snippet_icon_block" class="o_panel">
<div class="o_panel_header">Icon Block</div>
<div class="o_panel_body">
<t t-snippet="theme_prime.s_icon_block_1" string="Icon Block - 1" t-thumbnail="/theme_prime/static/src/img/snippets_thumbs/s_icon_block_1.png">
<keywords>icon, features</keywords>
</t>
<t t-snippet="theme_prime.s_icon_block_2" string="Icon Block - 2" t-thumbnail="/theme_prime/static/src/img/snippets_thumbs/s_icon_block_2.png">
<keywords>icon, features</keywords>
</t>
<t t-snippet="theme_prime.s_icon_block_3" string="Icon Block - 3" t-thumbnail="/theme_prime/static/src/img/snippets_thumbs/s_icon_block_3.png">
<keywords>icon, features</keywords>
</t>
<t t-snippet="theme_prime.s_icon_block_4" string="Icon Block - 4" t-thumbnail="/theme_prime/static/src/img/snippets_thumbs/s_icon_block_4.png">
<keywords>icon, features</keywords>
</t>
<t t-snippet="theme_prime.s_icon_block_5" string="Icon Block - 5" t-thumbnail="/theme_prime/static/src/img/snippets_thumbs/s_icon_block_5.png">
<keywords>icon, features</keywords>
</t>
<t t-snippet="theme_prime.s_icon_block_6" string="Icon Block - 6" t-thumbnail="/theme_prime/static/src/img/snippets_thumbs/s_icon_block_6.png">
<keywords>icon, features</keywords>
</t>
<t t-snippet="theme_prime.s_icon_block_7" string="Icon Block - 7" t-thumbnail="/theme_prime/static/src/img/snippets_thumbs/s_icon_block_7.png">
<keywords>icon, features</keywords>
</t>
<t t-snippet="theme_prime.s_icon_block_8" string="Icon Block - 8" t-thumbnail="/theme_prime/static/src/img/snippets_thumbs/s_icon_block_8.png">
<keywords>icon, features</keywords>
</t>
<t t-snippet="theme_prime.s_icon_block_9" string="Icon Block - 9" t-thumbnail="/theme_prime/static/src/img/snippets_thumbs/s_icon_block_9.png">
<keywords>icon, features</keywords>
</t>
<t t-snippet="theme_prime.s_icon_block_10" string="Icon Block - 10" t-thumbnail="/theme_prime/static/src/img/snippets_thumbs/s_icon_block_10.png">
<keywords>icon, features</keywords>
</t>
<t t-snippet="theme_prime.s_icon_block_11" string="Icon Block - 11" t-thumbnail="/theme_prime/static/src/img/snippets_thumbs/s_icon_block_11.png">
<keywords>icon, features</keywords>
</t>
<t t-snippet="theme_prime.s_icon_block_12" string="Icon Block - 12" t-thumbnail="/theme_prime/static/src/img/snippets_thumbs/s_icon_block_12.png">
<keywords>icon, features</keywords>
</t>
</div>
</div>
<div id="tp_snippet_stats" class="o_panel">
<div class="o_panel_header">Stats</div>
<div class="o_panel_body">
<t t-snippet="theme_prime.s_stats_1" string="States - 1" t-thumbnail="/theme_prime/static/src/img/snippets_thumbs/s_stats_1.png">
<keywords>stats, counter, number</keywords>
</t>
<t t-snippet="theme_prime.s_stats_2" string="States - 2" t-thumbnail="/theme_prime/static/src/img/snippets_thumbs/s_stats_2.png">
<keywords>stats, counter, number</keywords>
</t>
<t t-snippet="theme_prime.s_stats_3" string="States - 3" t-thumbnail="/theme_prime/static/src/img/snippets_thumbs/s_stats_3.png">
<keywords>stats, counter, number</keywords>
</t>
<t t-snippet="theme_prime.s_stats_4" string="States - 4" t-thumbnail="/theme_prime/static/src/img/snippets_thumbs/s_stats_4.png">
<keywords>stats, counter, number</keywords>
</t>
<t t-snippet="theme_prime.s_stats_5" string="States - 5" t-thumbnail="/theme_prime/static/src/img/snippets_thumbs/s_stats_5.png">
<keywords>stats, counter, number</keywords>
</t>
</div>
</div>
<div id="tp_snippet_clients" class="o_panel">
<div class="o_panel_header">Clients</div>
<div class="o_panel_body">
<t t-snippet="theme_prime.s_clients_1" string="Clients - 1" t-thumbnail="/theme_prime/static/src/img/snippets_thumbs/s_clients_1.png">
<keywords>clients, logo, reference</keywords>
</t>
<t t-snippet="theme_prime.s_clients_2" string="Clients - 2" t-thumbnail="/theme_prime/static/src/img/snippets_thumbs/s_clients_2.png">
<keywords>clients, logo, reference</keywords>
</t>
<t t-snippet="theme_prime.s_clients_3" string="Clients - 3" t-thumbnail="/theme_prime/static/src/img/snippets_thumbs/s_clients_3.png">
<keywords>clients, logo, reference</keywords>
</t>
<t t-snippet="theme_prime.s_clients_4" string="Clients - 4" t-thumbnail="/theme_prime/static/src/img/snippets_thumbs/s_clients_4.png">
<keywords>clients, logo, reference</keywords>
</t>
</div>
</div>
<div id="tp_snippet_gallery" class="o_panel">
<div class="o_panel_header">Gallery</div>
<div class="o_panel_body">
<t t-snippet="theme_prime.s_gallery_1" string="Gallery - " t-thumbnail="/theme_prime/static/src/img/snippets_thumbs/s_gallery_1.png">
<keywords>gallery, album, portfolio</keywords>
</t>
<t t-snippet="theme_prime.s_gallery_2" string="Gallery - 2" t-thumbnail="/theme_prime/static/src/img/snippets_thumbs/s_gallery_2.png">
<keywords>gallery, album, portfolio</keywords>
</t>
<t t-snippet="theme_prime.s_gallery_3" string="Gallery - 3" t-thumbnail="/theme_prime/static/src/img/snippets_thumbs/s_gallery_3.png">
<keywords>gallery, album, portfolio</keywords>
</t>
<t t-snippet="theme_prime.s_gallery_4" string="Gallery - 4" t-thumbnail="/theme_prime/static/src/img/snippets_thumbs/s_gallery_4.png">
<keywords>gallery, album, portfolio</keywords>
</t>
<t t-snippet="theme_prime.s_gallery_5" string="Gallery - 5" t-thumbnail="/theme_prime/static/src/img/snippets_thumbs/s_gallery_5.png">
<keywords>gallery, album, portfolio</keywords>
</t>
</div>
</div>
<div id="tp_snippet_testimonial" class="o_panel">
<div class="o_panel_header">Testimonial</div>
<div class="o_panel_body">
<t t-snippet="theme_prime.s_testimonial_1" string="Testimonial - 1" t-thumbnail="/theme_prime/static/src/img/snippets_thumbs/s_testimonial_1.png">
<keywords>testimonials, quotes</keywords>
</t>
<t t-snippet="theme_prime.s_testimonial_2" string="Testimonial - 2" t-thumbnail="/theme_prime/static/src/img/snippets_thumbs/s_testimonial_2.png">
<keywords>testimonials, quotes</keywords>
</t>
<t t-snippet="theme_prime.s_testimonial_3" string="Testimonial - 3" t-thumbnail="/theme_prime/static/src/img/snippets_thumbs/s_testimonial_3.png">
<keywords>testimonials, quotes</keywords>
</t>
<t t-snippet="theme_prime.s_testimonial_4" string="Testimonial - 4" t-thumbnail="/theme_prime/static/src/img/snippets_thumbs/s_testimonial_4.png">
<keywords>testimonials, quotes</keywords>
</t>
<t t-snippet="theme_prime.s_testimonial_5" string="Testimonial - 5" t-thumbnail="/theme_prime/static/src/img/snippets_thumbs/s_testimonial_5.png">
<keywords>testimonials, quotes</keywords>
</t>
</div>
</div>
<div id="tp_snippet_team" class="o_panel">
<div class="o_panel_header">Team</div>
<div class="o_panel_body">
<t t-snippet="theme_prime.s_team_1" string="Team - 1" t-thumbnail="/theme_prime/static/src/img/snippets_thumbs/s_team_1.png">
<keywords>team, avatar, profile, organisation, structure</keywords>
</t>
<t t-snippet="theme_prime.s_team_2" string="Team - 2" t-thumbnail="/theme_prime/static/src/img/snippets_thumbs/s_team_2.png">
<keywords>team, avatar, profile, organisation, structure</keywords>
</t>
<t t-snippet="theme_prime.s_team_3" string="Team - 3" t-thumbnail="/theme_prime/static/src/img/snippets_thumbs/s_team_3.png">
<keywords>team, avatar, profile, organisation, structure</keywords>
</t>
<t t-snippet="theme_prime.s_team_4" string="Team - 4" t-thumbnail="/theme_prime/static/src/img/snippets_thumbs/s_team_4.png">
<keywords>team, avatar, profile, organisation, structure</keywords>
</t>
<t t-snippet="theme_prime.s_team_5" string="Team - 5" t-thumbnail="/theme_prime/static/src/img/snippets_thumbs/s_team_5.png">
<keywords>team, avatar, profile, organisation, structure</keywords>
</t>
</div>
</div>
<div id="tp_snippet_call_to_action" class="o_panel">
<div class="o_panel_header">Call To Action</div>
<div class="o_panel_body">
<t t-snippet="theme_prime.s_call_to_action_1" string="Call To Action - 1" t-thumbnail="/theme_prime/static/src/img/snippets_thumbs/s_call_to_action_1.png">
<keywords>call to action, cta</keywords>
</t>
<t t-snippet="theme_prime.s_call_to_action_2" string="Call To Action - 2" t-thumbnail="/theme_prime/static/src/img/snippets_thumbs/s_call_to_action_2.png">
<keywords>call to action, cta</keywords>
</t>
<t t-snippet="theme_prime.s_call_to_action_3" string="Call To Action - 3" t-thumbnail="/theme_prime/static/src/img/snippets_thumbs/s_call_to_action_3.png">
<keywords>call to action, cta</keywords>
</t>
<t t-snippet="theme_prime.s_call_to_action_4" string="Call To Action - 4" t-thumbnail="/theme_prime/static/src/img/snippets_thumbs/s_call_to_action_4.png">
<keywords>call to action, cta</keywords>
</t>
<t t-snippet="theme_prime.s_call_to_action_5" string="Call To Action - 5" t-thumbnail="/theme_prime/static/src/img/snippets_thumbs/s_call_to_action_5.png">
<keywords>call to action, cta</keywords>
</t>
</div>
</div>
<div id="tp_snippet_subscribe" class="o_panel">
<div class="o_panel_header">Subscribe</div>
<div class="o_panel_body">
<t t-snippet="theme_prime.s_subscribe_1" string="Subscribe - 1" t-thumbnail="/theme_prime/static/src/img/snippets_thumbs/s_subscribe_1.png">
<keywords>newsletter, subscribe, mail, email, marketing, mass mailing</keywords>
</t>
<t t-snippet="theme_prime.s_subscribe_2" string="Subscribe - 2" t-thumbnail="/theme_prime/static/src/img/snippets_thumbs/s_subscribe_2.png">
<keywords>newsletter, subscribe, mail, email, marketing, mass mailing</keywords>
</t>
<t t-snippet="theme_prime.s_subscribe_3" string="Subscribe - 3" t-thumbnail="/theme_prime/static/src/img/snippets_thumbs/s_subscribe_3.png">
<keywords>newsletter, subscribe, mail, email, marketing, mass mailing</keywords>
</t>
<t t-snippet="theme_prime.s_subscribe_4" string="Subscribe - 4" t-thumbnail="/theme_prime/static/src/img/snippets_thumbs/s_subscribe_4.png">
<keywords>newsletter, subscribe, mail, email, marketing, mass mailing</keywords>
</t>
</div>
</div>
<div id="tp_snippet_coming_soon" class="o_panel">
<div class="o_panel_header">Coming Soon</div>
<div class="o_panel_body">
<t t-snippet="theme_prime.s_coming_soon_1" string="Coming Soon - 1" t-thumbnail="/theme_prime/static/src/img/snippets_thumbs/s_coming_soon_1.png">
<keywords>coming soon, countdown, timer</keywords>
</t>
<t t-snippet="theme_prime.s_coming_soon_2" string="Coming Soon - 2" t-thumbnail="/theme_prime/static/src/img/snippets_thumbs/s_coming_soon_2.png">
<keywords>coming soon, countdown, timer</keywords>
</t>
</div>
</div>
</div>
</template>
<template id="snippet_options" inherit_id="website.snippet_options">
<xpath expr="." position="inside">
<!-- Background image -->
<t t-call="web_editor.snippet_options_background_options">
<t t-set="selector" t-value="'.tp-editor-bg-image'"/>
<t t-set="with_images" t-value="True"/>
<t t-set="with_colors" t-value="False"/>
<t t-set="with_videos" t-value="False"/>
<t t-set="with_shapes" t-value="False"/>
</t>
<!-- Background color, border and shadow -->
<t t-call="web_editor.snippet_options_background_options">
<t t-set="selector" t-value="'.tp-editor-bg-color-n-shadow:not(.card)'"/>
<t t-set="with_colors" t-value="True"/>
<t t-set="with_images" t-value="False"/>
<t t-set="with_videos" t-value="False"/>
<t t-set="with_color_combinations" t-value="True"/>
<t t-set="with_gradients" t-value="True"/>
</t>
<t t-call="web_editor.snippet_options_background_options">
<t t-set="selector" t-value="'.tp-editor-bg-color-n-shadow.card'"/>
<t t-set="with_colors" t-value="True"/>
<t t-set="with_images" t-value="False"/>
<t t-set="with_videos" t-value="False"/>
<t t-set="with_color_combinations" t-value="False"/>
<t t-set="with_gradients" t-value="True"/>
</t>
<div data-js="Box" data-selector=".tp-editor-bg-color-n-shadow">
<t t-call="website.snippet_options_border_widgets"/>
<t t-call="website.snippet_options_shadow_widgets"/>
</div>
<!-- Duplicate and movable block -->
<div data-selector=".tp-editor-copy-n-move" data-drop-near=".tp-editor-copy-n-move"/>
</xpath>
<!-- Duplicate and movable block -->
<xpath expr="//div[@data-js='SnippetMove']" position="attributes">
<attribute name="data-selector" add=".tp-editor-copy-n-move" separator=","/>
</xpath>
<!-- Vertical alignment -->
<xpath expr="//div[@id='row_valign_snippet_option']" position="attributes">
<attribute name="data-selector" add=".tp-editor-snippet-valign" separator=", "/>
</xpath>
<!-- Use as a inner content -->
<xpath expr="//*[@t-set='so_content_addition_selector']" position="inside">, .tp-editor-inner-snippet</xpath>
<!-- Mega Menu -->
<xpath expr="//div[@data-js='MegaMenuLayout']/we-select/we-button[last()]" position="after">
<t t-set="_label">Menus</t>
<we-button t-att-data-select-label="_label" data-select-template="droggol_theme_common.s_mega_menu_prime_1" data-img="/theme_prime/static/src/img/options/s_mega_menu_prime_1.png" t-out="_label"/>
<t t-set="_label">Menus - Content</t>
<we-button t-att-data-select-label="_label" data-select-template="droggol_theme_common.s_mega_menu_prime_2" data-img="/theme_prime/static/src/img/options/s_mega_menu_prime_2.png" t-out="_label"/>
<t t-set="_label">Menus - Image - Logos</t>
<we-button t-att-data-select-label="_label" data-select-template="droggol_theme_common.s_mega_menu_prime_3" data-img="/theme_prime/static/src/img/options/s_mega_menu_prime_3.png" t-out="_label"/>
<t t-set="_label">Content - Menus</t>
<we-button t-att-data-select-label="_label" data-select-template="droggol_theme_common.s_mega_menu_prime_4" data-img="/theme_prime/static/src/img/options/s_mega_menu_prime_4.png" t-out="_label"/>
<t t-set="_label">Categories - Info</t>
<we-button t-att-data-select-label="_label" data-select-template="droggol_theme_common.s_mega_menu_prime_5" data-img="/theme_prime/static/src/img/options/s_mega_menu_prime_5.png" t-out="_label"/>
<t t-set="_label">Menus - Images</t>
<we-button t-att-data-select-label="_label" data-select-template="droggol_theme_common.s_mega_menu_prime_6" data-img="/theme_prime/static/src/img/options/s_mega_menu_prime_6.png" t-out="_label"/>
<t t-set="_label">Categories Listing</t>
<we-button t-att-data-select-label="_label" data-select-template="droggol_theme_common.s_tp_mega_menu_category_snippet" data-img="/theme_prime/static/src/img/options/s_mega_menu_prime_6.png" t-out="_label"/>
</xpath>
<!-- Add color for header box -->
<xpath expr="//div[@data-js='HeaderLayout']/we-row/we-colorpicker" position="before">
<we-colorpicker data-dependencies="tp_header_style_2_opt, tp_header_style_3_opt, tp_header_style_4_opt"
data-customize-website-color="" data-color="tp-header-box-color"
data-customize-website-layer2-color="" data-layer-color="tp-header-box-color-custom" data-layer-gradient="tp-header-box-color-gradient"
data-no-bundle-reload="true"
data-null-value="'NULL'"
data-with-combinations="customizeWebsiteColor"
data-with-gradients="true"/>
</xpath>
<!-- Enable header logo options for custom header box -->
<xpath expr="//div[contains(@data-selector, 'navbar-brand.logo')]" position="attributes">
<attribute name="data-selector" separator="," add=".tp-header-box .navbar-brand"/>
</xpath>
<!-- Hide elements options for custom headers -->
<xpath expr="//div[@data-js='HeaderElements']" position="attributes">
<attribute name="data-selector" remove="#wrapwrap > header" separator=" " add="#wrapwrap > header:not(.tp-custom-header)"/>
</xpath>
<xpath expr="//div[@data-js='HeaderElements']" position="after">
<div data-js="HeaderElements"
data-selector="#wrapwrap > header.tp-custom-header"
data-no-check="true"
groups="website.group_website_designer">
<we-row string="Elements" class="o_we_full_row align-items-start">
<we-button title="Show/hide sign in button" class="fa fa-sign-in d-flex justify-content-center flex-grow-1"
data-customize-website-views="portal.user_sign_in"
data-reload="/"
data-no-preview="true"/>
<we-button title="Show/hide logo" class="flex-grow-1 d-flex justify-content-center"
data-img="/website/static/src/img/snippets_options/header_extra_element_logo.svg"
data-customize-website-views="website.option_header_brand_logo"
data-reload="/"/>
</we-row>
</div>
</xpath>
<!-- Header -->
<xpath expr="//we-select[@data-variable='header-template']/we-button[last()]" position="after">
<we-button title="Prime Header Style - 1" data-name="tp_header_style_1_opt" data-customize-website-views="theme_prime.template_header_style_1" data-customize-website-variable="'prime_style_1'" data-img="/theme_prime/static/src/img/options/header_1.svg"/>
<we-button title="Prime Header Style - 2" data-name="tp_header_style_2_opt" data-customize-website-views="theme_prime.template_header_style_2" data-customize-website-variable="'prime_style_2'" data-img="/theme_prime/static/src/img/options/header_2.svg"/>
<we-button title="Prime Header Style - 3" data-name="tp_header_style_3_opt" data-customize-website-views="theme_prime.template_header_style_3" data-customize-website-variable="'prime_style_3'" data-img="/theme_prime/static/src/img/options/header_3.svg"/>
<we-button title="Prime Header Style - 4" data-name="tp_header_style_4_opt" data-customize-website-views="theme_prime.template_header_style_4" data-customize-website-variable="'prime_style_4'" data-img="/theme_prime/static/src/img/options/header_4.svg"/>
<we-button title="Prime Header Style - 5" data-name="tp_header_style_5_opt" data-customize-website-views="theme_prime.template_header_style_5" data-customize-website-variable="'prime_style_5'" data-img="/theme_prime/static/src/img/options/header_5.svg"/>
<we-button title="Prime Header Style - 6" data-name="tp_header_style_6_opt" data-customize-website-views="theme_prime.template_header_style_6" data-customize-website-variable="'prime_style_6'" data-img="/theme_prime/static/src/img/options/header_6.svg"/>
<we-button title="Prime Header Style - 7" data-name="tp_header_style_7_opt" data-customize-website-views="theme_prime.template_header_style_7" data-customize-website-variable="'prime_style_7'" data-img="/theme_prime/static/src/img/options/header_7.svg"/>
<we-button title="Prime Header Style - 8" data-name="tp_header_style_8_opt" data-customize-website-views="theme_prime.template_header_style_8" data-customize-website-variable="'prime_style_8'" data-img="/theme_prime/static/src/img/options/header_8.svg"/>
</xpath>
<xpath expr="//div[@data-js='HeaderLayout']/we-row" position="after">
<we-select string="Preheader" data-dependencies="tp_preheader_opt" data-variable="tp-preheader-template" data-reload="/">
<we-button title="None" data-name="tp_preheader_style_none_opt" data-customize-website-views="" data-customize-website-variable="'none'" string="None"/>
<we-button title="Prime Preheader Style - 1" data-name="tp_preheader_style_1_opt" data-customize-website-views="theme_prime.template_preheader_style_1" data-customize-website-variable="'prime_style_1'" data-img="/theme_prime/static/src/img/options/preheader_1.svg"/>
<we-button title="Prime Preheader Style - 2" data-name="tp_preheader_style_2_opt" data-customize-website-views="theme_prime.template_preheader_style_2" data-customize-website-variable="'prime_style_2'" data-img="/theme_prime/static/src/img/options/preheader_2.svg"/>
<we-button title="Prime Preheader Style - 3" data-name="tp_preheader_style_3_opt" data-customize-website-views="theme_prime.template_preheader_style_3" data-customize-website-variable="'prime_style_3'" data-img="/theme_prime/static/src/img/options/preheader_3.svg"/>
<we-button title="Prime Preheader Style - 4" data-name="tp_preheader_style_4_opt" data-customize-website-views="theme_prime.template_preheader_style_4" data-customize-website-variable="'prime_style_4'" data-img="/theme_prime/static/src/img/options/preheader_4.svg"/>
<we-button title="Prime Preheader Style - 5" data-name="tp_preheader_style_5_opt" data-customize-website-views="theme_prime.template_preheader_style_5" data-customize-website-variable="'prime_style_5'" data-img="/theme_prime/static/src/img/options/preheader_5.svg"/>
<we-button title="Prime Preheader Style - 6" data-name="tp_preheader_style_6_opt" data-customize-website-views="theme_prime.template_preheader_style_6" data-customize-website-variable="'prime_style_6'" data-img="/theme_prime/static/src/img/options/preheader_6.svg"/>
</we-select>
<we-colorpicker class="o_we_sublevel_1" string="Color" data-dependencies="!tp_preheader_style_none_opt" data-customize-website-color="" data-color="preheader" data-customize-website-layer2-color="" data-layer-color="preheader-custom" data-layer-gradient="preheader-gradient" data-no-bundle-reload="true" data-null-value="'NULL'" data-with-combinations="customizeWebsiteColor" data-with-gradients="true"/>
</xpath>
<!-- Footer -->
<xpath expr="//we-select[@data-variable='footer-template']/we-button[last()]" position="after">
<we-button title="Prime Footer Style - 1" data-name="tp_footer_style_1_opt" data-customize-website-views="theme_prime.template_footer_style_1" data-customize-website-variable="'prime_style_1'" data-img="/theme_prime/static/src/img/options/footer_1.svg"/>
<we-button title="Prime Footer Style - 2" data-name="tp_footer_style_2_opt" data-customize-website-views="theme_prime.template_footer_style_2" data-customize-website-variable="'prime_style_2'" data-img="/theme_prime/static/src/img/options/footer_2.svg"/>
<we-button title="Prime Footer Style - 3" data-name="tp_footer_style_3_opt" data-customize-website-views="theme_prime.template_footer_style_3" data-customize-website-variable="'prime_style_3'" data-img="/theme_prime/static/src/img/options/footer_3.svg"/>
<we-button title="Prime Footer Style - 4" data-name="tp_footer_style_4_opt" data-customize-website-views="theme_prime.template_footer_style_4" data-customize-website-variable="'prime_style_4'" data-img="/theme_prime/static/src/img/options/footer_4.svg"/>
<we-button title="Prime Footer Style - 5" data-name="tp_footer_style_5_opt" data-customize-website-views="theme_prime.template_footer_style_5" data-customize-website-variable="'prime_style_5'" data-img="/theme_prime/static/src/img/options/footer_5.svg"/>
<we-button title="Prime Footer Style - 6" data-name="tp_footer_style_6_opt" data-customize-website-views="theme_prime.template_footer_style_6" data-customize-website-variable="'prime_style_6'" data-img="/theme_prime/static/src/img/options/footer_6.svg"/>
<we-button title="Prime Footer Style - 7" data-name="tp_footer_style_7_opt" data-customize-website-views="theme_prime.template_footer_style_7" data-customize-website-variable="'prime_style_7'" data-img="/theme_prime/static/src/img/options/footer_7.svg"/>
<we-button title="Prime Footer Style - 8" data-name="tp_footer_style_8_opt" data-customize-website-views="theme_prime.template_footer_style_8" data-customize-website-variable="'prime_style_8'" data-img="/theme_prime/static/src/img/options/footer_8.svg"/>
<we-button title="Prime Footer Style - 9" data-name="tp_footer_style_9_opt" data-customize-website-views="theme_prime.template_footer_style_9" data-customize-website-variable="'prime_style_9'" data-img="/theme_prime/static/src/img/options/footer_9.svg"/>
<we-button title="Prime Footer Style - 10" data-name="tp_footer_style_10_opt" data-customize-website-views="theme_prime.template_footer_style_10" data-customize-website-variable="'prime_style_10'" data-img="/theme_prime/static/src/img/options/footer_10.svg"/>
</xpath>
<xpath expr="//div[@data-selector='.o_footer_copyright']" position="attributes">
<attribute name="data-selector" remove=".o_footer_copyright" add=".o_footer_copyright:not(.tp-custom-copyright)" separator=", "/>
</xpath>
<xpath expr="." position="inside">
<div data-js="WebsiteLevelColor" data-selector=".tp-custom-copyright" data-no-check="true" groups="website.group_website_designer">
<we-colorpicker string="Colors" data-customize-website-color="" data-color="copyright" data-customize-website-layer2-color="" data-layer-color="copyright-custom" data-layer-gradient="copyright-gradient" data-no-bundle-reload="true" data-null-value="'NULL'" data-with-combinations="customizeWebsiteColor" data-with-gradients="true"/>
</div>
</xpath>
<!-- Theme Prime Options -->
<xpath expr="//div[@data-selector='website-settings']" position="before">
<div data-js="OptionsTab" data-selector="theme-prime-options" data-no-check="true">
<we-checkbox string="Square UI" title="Override all components border radius to 0" data-name="tp_square_ui_opt" data-customize-website-variable="false|true" data-variable="tp-square-ui"/>
<we-checkbox string="Back to top button" data-name="tp_scroll_back_to_top_opt" data-customize-website-views="theme_prime.option_back_to_top" data-customize-website-variable="false|true" data-variable="tp-back-to-top"/>
<we-select string="Icon Pack" data-variable="tp-icon-pack" data-reload="/">
<we-button data-customize-website-variable="1" data-name="tp_icon_pack_style_1_opt" data-customize-website-views="theme_prime.option_icon_pack_1" data-img="/theme_prime/static/src/img/options/pack_1.svg"/>
<we-button data-customize-website-variable="2" data-name="tp_icon_pack_style_2_opt" data-customize-website-views="theme_prime.option_icon_pack_2" data-img="/theme_prime/static/src/img/options/pack_2.svg"/>
<we-button data-customize-website-variable="3" data-name="tp_icon_pack_style_3_opt" data-customize-website-views="theme_prime.option_icon_pack_3" data-img="/theme_prime/static/src/img/options/pack_3.svg"/>
<we-button data-customize-website-variable="4" data-name="tp_icon_pack_style_4_opt" data-customize-website-views="theme_prime.option_icon_pack_4" data-img="/theme_prime/static/src/img/options/pack_4.svg"/>
<we-button data-customize-website-variable="5" data-name="tp_icon_pack_style_5_opt" data-customize-website-views="theme_prime.option_icon_pack_5" data-img="/theme_prime/static/src/img/options/pack_5.svg"/>
<we-button data-customize-website-variable="6" data-name="tp_icon_pack_style_6_opt" data-customize-website-views="theme_prime.option_icon_pack_6" data-img="/theme_prime/static/src/img/options/pack_6.svg"/>
<we-button data-customize-website-variable="7" data-name="tp_icon_pack_style_7_opt" data-customize-website-views="theme_prime.option_icon_pack_7" data-img="/theme_prime/static/src/img/options/pack_7.svg"/>
<we-button data-customize-website-variable="8" data-name="tp_icon_pack_style_8_opt" data-customize-website-views="theme_prime.option_icon_pack_8" data-img="/theme_prime/static/src/img/options/pack_8.svg"/>
</we-select>
</div>
</xpath>
<xpath expr="." position="inside">
<!-- Shop Page -->
<div data-js="WebsiteSaleGridLayout" data-target=".oe_website_sale" data-page-options="true" data-selector="main:has(.tp-shop-page)" data-no-check="true" string="Products Page">
<we-row string="Products on page">
<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-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-button data-set-ppr="5">5</we-button>
<we-button data-set-ppr="6">6</we-button>
</we-select>
</we-row>
<we-row string="Left Panel" class="o_we_full_row">
<we-button string="Categories"
data-name="categories_opt"
data-customize-website-views="website_sale.products_categories"
data-no-preview="true"
data-reload="/"/>
<we-button string="Attributes"
data-name="attributes_opt"
data-customize-website-views="website_sale.products_attributes"
data-no-preview="true"
data-reload="/"/>
</we-row>
<we-checkbox 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-checkbox string="Price Filter"
class="o_we_sublevel_1"
data-customize-website-views="website_sale.filter_products_price"
data-dependencies="attributes_opt"
data-no-preview="true"
data-reload="/"/>
<we-checkbox string="Product Tags Filter"
class="o_we_sublevel_1"
data-customize-website-views="website_sale.filter_products_tags"
data-dependencies="attributes_opt"
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-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>
</div>
</xpath>
</template>
</odoo>
@@ -0,0 +1,328 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<!-- Product snippet -->
<template id="s_d_products_snippet" name="Products Cards">
<section contenteditable="false" class="tp-droggol-builder-snippet dr_not_editable s_d_products_snippet_wrapper text-center" data-tp-snippet-id="s_d_products_snippet">
<div class="s_d_products_snippet container o_not_editable"/>
</section>
</template>
<!-- Product Countdown Slider -->
<template id="s_d_single_product_count_down" name="Countdown Slider">
<section contenteditable="false" class="s_d_single_product_count_down_wrapper dr_not_editable tp-droggol-builder-snippet pt32 pb32" data-tp-snippet-id="s_d_single_product_count_down">
<div class="s_d_single_product_count_down container-fluid o_not_editable"/>
</section>
</template>
<!-- Product Category Tabs -->
<template id="s_d_category_snippet" name="Product Category Tabs">
<section contenteditable="false" class="tp-droggol-builder-snippet s_d_category_snippet_wrapper text-center" data-tp-snippet-id="s_d_category_snippet">
<div class="s_d_category_snippet container o_not_editable"/>
</section>
</template>
<!-- Single Category Snippet -->
<template id="s_d_single_category_snippet" name="Featured Category">
<section class="tp-droggol-builder-snippet s_d_single_category_snippet_wrapper" data-tp-snippet-id="s_d_single_category_snippet">
<div class="container">
<div class="row s_col_no_resize">
<div class="d-none d-lg-block col-lg-4 position-relative">
<div class="tp-editor-bg-image shadow d_category_image_block p-3" style="background-image:url('/web/image/theme_prime.s_gallery_01');">
<div class="banner-text text-center p-3">
<h4 class="fw-bold">For Women</h4>
<p class="mb-0 text-muted">Starting at $24</p>
<div class="mt-2">
<a href="/shop" class="btn btn-primary">Shop Now</a>
</div>
</div>
</div>
</div>
<div contenteditable="false" class="col-12 col-lg-8 s_d_single_category_snippet dr_not_editable o_not_editable"/>
</div>
</div>
</section>
</template>
<!-- Single Product Snippet -->
<template id="s_d_single_product_snippet" name="Full Products">
<section contenteditable="false" class="s_d_single_product_snippet_wrapper tp-droggol-builder-snippet pt32 pb32" data-tp-snippet-id="s_d_single_product_snippet">
<div class="d_single_product_continer container dr_not_editable o_not_editable mb-4"/>
</section>
</template>
<!-- Single Product Cover Snippet -->
<template id="s_d_single_product_cover_snippet" name="Full Products + Cover">
<section class="s_d_single_product_cover_snippet_wrapper tp-show-variant-image tp-droggol-builder-snippet pb64 pt64" data-tp-snippet-id="s_d_single_product_cover_snippet">
<div class="container">
<div class="row align-items-center">
<div class="order-lg-2 mb-4 mb-lg-0 col-lg-7 offset-lg-1">
<img class="img img-fluid mx-auto tp-variant-image" src="/droggol_theme_common/static/src/img/s_d_single_product_cover_snippet.png" alt="Cover Image 01"></img>
</div>
<div class="order-lg-1 col-lg-4">
<div contenteditable="false" class="s_d_single_product_cover_snippet border dr_not_editable shadow-sm tp-rounded-border p-3 p-md-5 bg-white"/>
</div>
</div>
</div>
</section>
</template>
<!-- Top Categories -->
<template id="s_d_top_categories" name="Top Categories">
<section contenteditable="false" class="s_d_top_categories dr_not_editable tp-droggol-builder-snippet pt32 pb32" data-tp-snippet-id="s_d_top_categories">
<div class="container dr_not_editable s_d_top_categories_container"/>
</section>
</template>
<!-- 2 col deal -->
<template id="s_d_2_column_snippet" name="2 Column Deals">
<section class="s_d_2_column_snippet pt32 pb32">
<div class="container">
<div class="row">
<div class="col-lg-6">
<div class="mt-4">
<h3 class="s_d_full_title">
<span class="s_d_title_text"><p class="mb-0 d-inline-block"> Super Deal</p></span>
</h3>
</div>
<div contenteditable="false" class="s_d_product_count_down dr_not_editable tp-droggol-builder-snippet" data-tp-snippet-id="s_d_product_count_down"/>
</div>
<div class="col-lg-6">
<div class="mt-4">
<h3 class="s_d_full_title">
<span class="s_d_title_text"><p class="mb-0 d-inline-block"> Featured Products</p></span>
</h3>
</div>
<div contenteditable="false" class="s_d_product_small_block tp-droggol-builder-snippet dr_not_editable" data-tp-snippet-id="s_d_product_small_block"/>
</div>
</div>
</div>
</section>
</template>
<!-- 2 col deal -->
<template id="s_category_brands" name="Categories &amp; Brands">
<section class="s_category_brands mt-n5">
<div class="container">
<div class="row">
<div class="col-lg-6">
<div contenteditable="false" data-tp-res-model="product.public.category" class="s_category_small mb-3 bg-white border tp-rounded-border shadow-sm dr_not_editable tp-droggol-builder-snippet" data-tp-snippet-id="s_category_small"/>
</div>
<div class="col-lg-6">
<div contenteditable="false" data-tp-res-model="product.attribute.value" class="s_brands_small mb-3 tp-droggol-builder-snippet bg-white border tp-rounded-border shadow-sm dr_not_editable" data-tp-snippet-id="s_brands_small"/>
</div>
</div>
</div>
</section>
</template>
<!-- Categories Menu -->
<template id="s_tp_categories_menu" name="Categories Menu">
<section class="s_tp_categories_menu tp-droggol-builder-snippet pt32 pb32" data-tp-snippet-id="s_tp_categories_menu">
<div class="container">
<div class="row">
<div class="col-xl-3 d-none dr_not_editable d-xl-block">
<t t-call="droggol_theme_common.s_mega_menu_category_tabs_snippet">
<t t-set="_drClasses" t-value="'tp-side-menu'"/>
</t>
</div>
<div class="col-xl-9">
<t t-call="theme_prime.s_cover_2"/>
</div>
</div>
</div>
</section>
</template>
<!-- Image + Products Cards -->
<template id="s_d_image_products_block" name="Image + Products Cards">
<section class="tp-droggol-builder-snippet s_banner_2 s_d_image_products_block_wrapper pt64 pb64" data-tp-snippet-id="s_d_image_products_block">
<div class="container">
<div class="row s_animation_block_2">
<div class="col-12 col-md-3 py-3 tp-block-container">
<div class="tp-block-wrapper h-100">
<div class="tp-block-container h-100 tp-editor-bg-image oe_img_bg o_bg_img_center" style="background-image: url('/web/image/theme_prime.s_gallery_01');">
<div class="tp-block-content h-100 w-100">
<h2 class="tp-title text-center w-100">Trending Products</h2>
<div class="tp-subtitle text-center w-100">
<p class="o_default_snippet_text">Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et.</p>
<a href="/shop" class="btn btn-primary o_default_snippet_text">Shop Now</a>
</div>
</div>
</div>
</div>
</div>
<div class="col-md-9">
<h3 class="s_d_full_title mt-2">
<span class="s_d_title_text px-2">
<p class="mb-0 d-inline-block o_default_snippet_text"> Super Deal</p>
</span>
</h3>
<div contenteditable="false" class="s_d_image_products_block dr_not_editable"/>
</div>
</div>
</div>
</section>
</template>
<!-- Category Snippet -->
<template id="s_category_snippet" name="Categories Grids">
<section contenteditable="false" class="tp-droggol-builder-snippet s_category_snippet_wrapper pt64 pb64 " data-tp-snippet-id="s_category_snippet">
<div class="container s_category_snippet dr_not_editable"/>
</section>
</template>
<!-- Mega Menu -->
<template id="s_tp_hierarchical_category_snippet" name="Categories">
<section contenteditable="false" class="s_tp_hierarchical_category_snippet tp-droggol-builder-snippet pt32 pb32" data-tp-snippet-id="s_tp_hierarchical_category_snippet">
<div class="container s_tp_hierarchical_category_wrapper"/>
</section>
</template>
<template id="s_d_brand_snippet" name="Brands">
<section class="s_d_brand_snippet_wrapper tp-droggol-builder-snippet pt32 pb32" data-tp-snippet-id="s_d_brand_snippet">
<div class="container s_d_brand_snippet position-relative"/>
</section>
</template>
<template id="s_d_products_grid" name="Product Hero Grid">
<section contenteditable="false" data-ui-config-info='{"activeActions":["rating","quick_view","add_to_cart","comparison","wishlist","category_info","label","show_similar"],"style":"s_card_style_3","mode":"slider","ppr":3}' class="s_d_products_grid_wrapper tp-droggol-builder-snippet pt32 pb32" data-tp-snippet-id="s_d_products_grid">
<div class="container s_d_products_grids dr_not_editable"/>
</section>
</template>
<template id="s_tp_documents_snippet" name="Documents">
<section class="s_tp_documents_snippet pt40 pb40">
<div class="container s_tp_documents_snippet_container">
<div class="row s_tp_documents_snippet_row">
<div class="alert alert-info w-100 css_non_editable_mode_hidden text-center o_colored_level" role="status">
<span class="tp_add_documents fw-bold" style="cursor: pointer;"><i class="fa fa-plus-circle"></i> Add Documents</span>
<div class="small pt-1"><i class="fa fa-warning"></i> External Documents will not work</div>
</div>
</div>
</div>
</section>
</template>
<template id="s_two_column_cards" name="Two Column Cards">
<section contenteditable="false" class="s_two_column_card_wrapper tp-droggol-builder-snippet pt32 pb32" data-tp-snippet-id="s_two_column_cards">
<div class="container s_two_column_cards dr_not_editable"/>
</section>
</template>
<template id="s_product_listing_cards" name="Product Listing">
<section contenteditable="false" class="s_product_listing_cards_wrapper tp-droggol-builder-snippet pt32 pb32" data-tp-snippet-id="s_product_listing_cards">
<div class="container s_product_listing_cards dr_not_editable"/>
</section>
</template>
<template id="s_product_listing_tabs" name="Product Listing Tabs">
<section contenteditable="false" class="s_product_listing_tabs_wrapper tp-droggol-builder-snippet pt32 pb32" data-ui-config-info='{"style":"s_card_style_1","mode":"slider","tabStyle":"tp-droggol-builder-snippet-tab-1", "bestseller":true,"newArrived":true,"discount":true,"activeActions":["rating", "quick_view", "add_to_cart", "comparison", "wishlist", "category_info", "label"],"model":"product.template", "ppr":4, "limit":6, "mobileConfig": { "style": "default", "mode": "default" }}' data-tp-snippet-id="s_product_listing_tabs">
<div class="container s_product_listing_tabs dr_not_editable"/>
</section>
</template>
<template id="s_products_by_brands_tabs" name="Products By Brands Tabs">
<section contenteditable="false" class="s_products_by_brands_tabs_wrapper tp-droggol-builder-snippet pt32 pb32" data-tp-snippet-id="s_products_by_brands_tabs">
<div class="container s_products_by_brands_tabs dr_not_editable"/>
</section>
</template>
<template id="s_image_product_listing_cards" name="Image + Product Listing">
<section class="s_image_product_listing_cards_wrapper tp-droggol-builder-snippet pt64 pb64 bg-100" data-ui-config-info='{"style":"tp_product_list_cards_1","bestseller":true,"newArrived":true,"discount":true,"activeActions":[],"model":"product.template", "header":"tp_product_list_header_1", "limit": 5}' data-tp-snippet-id="s_image_product_listing_cards">
<div class="container">
<div class="row">
<div class="d-none d-lg-block col-lg-4 text-center">
<div class="tp-editor-bg-image oe_img_bg oe_custom_bg pt40 mb-3" style="height:100%;background-image: url('/web/image/theme_prime.s_banner_9_1');">
<h5 class="fw-light mb-2">Hurry up! Limited time offer</h5>
<h6 class="mb-3 fw-bold">New Hoodie Collection</h6>
<a class="btn btn-primary" href="#">Shop now</a>
</div>
</div>
<div class="col-12 col-lg-8 pt16 pb32">
<div contenteditable="false" class="container s_product_listing_cards dr_not_editable"/>
</div>
</div>
</div>
</section>
</template>
<!-- Generic Options -->
<template id="tp_snippet_options_background_options" inherit_id="web_editor.snippet_options_background_options">
<xpath expr="//we-row[@t-if='with_colors or with_images']" position="after">
<we-checkbox string="Gradient Animation" data-select-class="tp-gradient-animation" data-no-preview="true"/>
</xpath>
</template>
<template id="tp_options" inherit_id="website.snippet_options">
<xpath expr="." position="inside">
<div data-js="s_tp_documents_snippet" data-selector=".s_tp_documents_snippet">
<we-button data-manage-documents="true" data-no-preview="true">
<i class="fa fa-cogs fa-fw"/> Manage Documents
</we-button>
</div>
<div data-js="tp_dynamic_snippet" data-selector=".tp-droggol-builder-snippet">
<we-button data-set-grid="true" data-no-preview="true">
<i class="fa fa-shopping-cart fa-fw"/> Manage Snippet
</we-button>
<we-checkbox string="Enable Lazy Loading" data-select-class="tp-snippet-shiftless-enable" data-no-preview="true"/>
<we-checkbox data-name="show_variant_image" string="Show variant image" data-select-class="tp-show-variant-image" data-no-preview="true"/>
</div>
<div data-js="TpImageHotspot" data-selector="img">
<we-row>
<we-checkbox string="Enable hotspot" data-toggle-img-hotspot="true" data-no-preview="true"/>
<we-button data-name="add_hotspot" data-add-hotspot="true" title="ADD HOTSPOT" data-no-preview="true">
<i class="fa fa-fw fa-plus pe-1"/> Add hotspot
</we-button>
</we-row>
</div>
<div data-js="TpImageHeightWidth" data-selector="img.img-fluid">
<we-checkbox string="Adjust Height/Width" data-toggle-height-width="true" data-no-preview="true"/>
<we-input data-name="dr_height_option" string="Height" data-no-preview="true" data-select-attribute="" class="o_we_large" placeholder="Height" data-attribute-name="height"/>
<we-input data-name="dr_width_option" string="Width" data-no-preview="true" data-select-attribute="" class="o_we_large" placeholder="Width" data-attribute-name="width"/>
</div>
<div data-js="TpImageHotspotConfig" data-selector=".tp_hotspot">
<we-row>
<we-select data-no-preview="true" string="Type" data-attribute-name="hotspotType">
<we-button data-set-hotspot-type="static" data-name="static_hotspot" data-select-data-attribute="static">Static</we-button>
<we-button data-set-hotspot-type="dynamic" data-name="dynamic_hotspot" data-select-data-attribute="dynamic">Dynamic</we-button>
</we-select>
<we-button title="Preview" data-name="hotspot_priview" data-dependencies="static_hotspot" data-render-hotspot-preview="true" data-no-preview="true">
<!-- HACK pe-1 -->
<i class="fa fa-fw fa-eye pe-1"/>
</we-button>
</we-row>
<we-row>
<we-select data-no-preview="true" data-attribute-name="onHotspotClick" data-dependencies="dynamic_hotspot" class="o_we_large_input" string="On Click">
<we-button data-select-data-attribute="popover">Popover</we-button>
<we-button data-select-data-attribute="modal">Modal</we-button>
</we-select>
<we-button data-set-product="" data-no-preview="true" data-dependencies="dynamic_hotspot"><i class="dri dri-cart pe-1"/> Set Product</we-button>
</we-row>
<we-select string="Theme">
<we-button data-select-class="tp-hotspot-primary">Primary</we-button>
<we-button data-select-class="tp-hotspot-light">Light</we-button>
<we-button data-select-class="tp-hotspot-dark">Dark</we-button>
</we-select>
<we-select string="Style">
<we-button data-select-class="tp_hotspot_style_1">Style - 1</we-button>
<we-button data-select-class="tp_hotspot_style_2">Style - 2</we-button>
<we-button data-select-class="tp_hotspot_style_3">Style - 3</we-button>
<we-button data-select-class="tp_hotspot_style_4">Style - 4</we-button>
</we-select>
<we-input string="Title" data-dependencies="static_hotspot" class="o_we_large" placeholder="Title" data-set-title-text=""/>
<we-input string="Subtitle" data-dependencies="static_hotspot" class="o_we_large" placeholder="Subtitle" data-set-subtitle-text=""/>
<we-input string="Button Text" data-dependencies="static_hotspot" class="o_we_large" placeholder="Button" data-set-button-text=""/>
<we-row>
<we-input string="Button" data-dependencies="static_hotspot" class="o_we_large_input" placeholder="Link" data-set-button-link=""/>
<we-button data-dependencies="static_hotspot" class="o_we_large_input" data-no-preview="true" data-set-static-image="">
<i class="fa fa-image"/>
</we-button>
</we-row>
<we-range string="Top" data-max="100" data-set-top=" " data-step="1"/>
<we-range string="Left" data-max="100" data-set-left=" " data-step="1"/>
</div>
</xpath>
<xpath expr="//div[@data-js='layout_column']" position="attributes">
<attribute name="data-exclude" add=", .tp-droggol-builder-snippet" separator=","/>
</xpath>
</template>
</odoo>
+593
View File
@@ -0,0 +1,593 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<template id="s_banner_1" name="Banner - 1">
<section class="s_banner_1 pt16 pb16">
<div class="container">
<div class="row s_col_no_bgcolor s_nb_column_fixed">
<div class="col-12 col-md-6 col-xl-4 py-3">
<div class="tp-block-container tp-editor-bg-image position-relative" style="background-image: url('/web/image/theme_prime.s_banner_1_1')">
<div class="tp-block-content h-100 w-100">
<h2 class="tp-title text-center w-100">New Arrival</h2>
<div class="tp-subtitle px-3 text-center w-100">
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et.</p>
<a href="/shop" class="btn btn-primary">Shop Now</a>
</div>
</div>
</div>
</div>
<div class="col-12 col-md-6 col-xl-4 py-3">
<div class="tp-block-container tp-editor-bg-image position-relative" style="background-image: url('/web/image/theme_prime.s_banner_1_2')">
<div class="tp-block-content h-100 w-100">
<h2 class="tp-title text-center w-100">Trending Products</h2>
<div class="tp-subtitle px-3 text-center w-100">
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et.</p>
<a href="/shop" class="btn btn-primary">Shop Now</a>
</div>
</div>
</div>
</div>
<div class="col-12 col-md-6 col-xl-4 py-3">
<div class="tp-block-container tp-editor-bg-image position-relative" style="background-image: url('/web/image/theme_prime.s_banner_1_3')">
<div class="tp-block-content h-100 w-100">
<h2 class="tp-title text-center w-100">New Collection</h2>
<div class="tp-subtitle px-3 text-center w-100">
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et.</p>
<a href="/shop" class="btn btn-primary">Shop Now</a>
</div>
</div>
</div>
</div>
</div>
</div>
</section>
</template>
<template id="s_banner_2" name="Banner - 2">
<section class="s_banner_2 pt16 pb16">
<div class="container">
<div class="row s_col_no_bgcolor s_nb_column_fixed">
<div class="col-12 col-md-6 col-xl-4 py-3">
<div class="tp-block-wrapper">
<div class="tp-block-container tp-editor-bg-image" style="background-image: url('/web/image/theme_prime.s_banner_1_1')">
<div class="tp-block-content h-100 w-100">
<h2 class="tp-title text-center w-100">New Arrival</h2>
<div class="tp-subtitle text-center w-100">
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et.</p>
<a href="/shop" class="btn btn-primary">Shop Now</a>
</div>
</div>
</div>
</div>
</div>
<div class="col-12 col-md-6 col-xl-4 py-3">
<div class="tp-block-wrapper">
<div class="tp-block-container tp-editor-bg-image" style="background-image: url('/web/image/theme_prime.s_banner_1_2')">
<div class="tp-block-content h-100 w-100">
<h2 class="tp-title text-center w-100">Trending Products</h2>
<div class="tp-subtitle text-center w-100">
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et.</p>
<a href="/shop" class="btn btn-primary">Shop Now</a>
</div>
</div>
</div>
</div>
</div>
<div class="col-12 col-md-6 col-xl-4 py-3">
<div class="tp-block-wrapper">
<div class="tp-block-container tp-editor-bg-image" style="background-image: url('/web/image/theme_prime.s_banner_1_3')">
<div class="tp-block-content h-100 w-100">
<h2 class="tp-title text-center w-100">New Collection</h2>
<div class="tp-subtitle text-center w-100">
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et.</p>
<a href="/shop" class="btn btn-primary">Shop Now</a>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</section>
</template>
<template id="s_banner_3" name="Banner - 3">
<section class="s_banner_3 pt16 pb16">
<div class="container">
<div class="row s_col_no_bgcolor">
<div class="col-12 col-lg-4 position-relative py-3">
<div class="tp-animation-layla">
<a href="#"><img src="/web/image/theme_prime.s_banner_3_1" class="w-100" alt="Banner Image 01"/></a>
<div class="tp-banner-content tp-editor-bg-color-n-shadow o_cc o_cc1 rounded">
<h5 class="text-center mb-0">Mens</h5>
</div>
</div>
</div>
<div class="col-12 col-lg-4 position-relative py-3">
<div class="tp-animation-layla">
<a href="#"><img src="/web/image/theme_prime.s_banner_3_2" class="w-100" alt="Banner Image 02"/></a>
<div class="tp-banner-content tp-editor-bg-color-n-shadow o_cc o_cc1 rounded">
<h5 class="text-center mb-0">Womens</h5>
</div>
</div>
</div>
<div class="col-12 col-lg-4 position-relative py-3">
<div class="tp-animation-layla">
<a href="#"><img src="/web/image/theme_prime.s_banner_3_3" class="w-100" alt="Banner Image 03"/></a>
<div class="tp-banner-content tp-editor-bg-color-n-shadow o_cc o_cc1 rounded">
<h5 class="text-center mb-0">Kids</h5>
</div>
</div>
</div>
</div>
</div>
</section>
</template>
<template id="s_banner_4" name="Banner - 4">
<section class="s_banner_4 pt16 pb16">
<div class="container">
<div class="row s_col_no_bgcolor">
<div class="col-12 col-lg-4 py-3">
<div class="tp-animation-layla position-relative">
<a href="#"><img src="/web/image/theme_prime.s_banner_4_1" class="w-100" alt="Banner Image 01"/></a>
<div class="tp-banner-content">
<h6>Collections</h6>
<h2>Women</h2>
</div>
</div>
</div>
<div class="col-12 col-lg-4 py-3">
<div class="tp-animation-layla position-relative">
<a href="#"><img src="/web/image/theme_prime.s_banner_4_2" class="w-100" alt="Banner Image 02"/></a>
<div class="tp-banner-content">
<h6>Collections</h6>
<h2>Children</h2>
</div>
</div>
</div>
<div class="col-12 col-lg-4 py-3">
<div class="tp-animation-layla position-relative">
<a href="#"><img src="/web/image/theme_prime.s_banner_4_3" class="w-100" alt="Banner Image 03"/></a>
<div class="tp-banner-content">
<h6>Collections</h6>
<h2>Men</h2>
</div>
</div>
</div>
</div>
</div>
</section>
</template>
<template id="s_banner_5" name="Banner - 5">
<section class="s_banner_5 pt16 pb16">
<div class="container">
<div class="row s_col_no_bgcolor s_nb_column_fixed">
<div class="col-12 col-lg-6 py-3">
<div class="row g-0 s_col_no_bgcolor s_nb_column_fixed">
<div class="col-12 col-sm-6 o_cc o_cc2 pt80 pb80 tp-editor-bg-color-n-shadow">
<div class="px-4 text-center">
<h4>Featured</h4>
<h4 class="text-o-color-1">Products</h4>
<p class="mt16">Just some random content to break this paragraph into two line.</p>
<a href="/shop" class="btn btn-primary mt16">Discover Now</a>
</div>
</div>
<div class="col-12 col-sm-6 oe_img_bg oe_custom_bg tp-editor-bg-image" style="background-image: url('/web/image/theme_prime.s_banner_5_1')"/>
</div>
</div>
<div class="col-12 col-lg-6 py-3">
<div class="row g-0 s_col_no_bgcolor s_nb_column_fixed">
<div class="col-12 col-sm-6 o_cc o_cc2 pt80 pb80 tp-editor-bg-color-n-shadow">
<div class="px-4 text-center">
<h4>Fresh Arrival</h4>
<h4 class="text-o-color-1">Products</h4>
<p class="mt16">Just some random content to break this paragraph into two line.</p>
<a href="/shop" class="btn btn-primary mt16">Discover Now</a>
</div>
</div>
<div class="col-12 col-sm-6 oe_img_bg oe_custom_bg tp-editor-bg-image" style="background-image: url('/web/image/theme_prime.s_banner_5_2')"/>
</div>
</div>
</div>
</div>
</section>
</template>
<template id="s_banner_6" name="Banner - 6">
<section class="s_banner_6 pt16 pb16">
<div class="container">
<div class="row s_col_no_bgcolor s_nb_column_fixed">
<div class="col-12 col-md-6 col-lg-4 py-3">
<img src="/web/image/theme_prime.s_banner_6_1" class="img img-fluid" alt="Banner Image 01"/>
<div class="tp-banner-content tp-editor-bg-color-n-shadow p-3 o_cc o_cc1 position-relative text-center border">
<img src="/web/image/theme_prime.s_brand_1" class="img img-fluid" style="width: 25%;" alt="Banner Brand Image 01"/>
<h4 class="mt-2">New Collection</h4>
<p class="lead mb-1">Starting at $150.</p>
<a href="#" class="btn btn-link">+ Explore Now</a>
</div>
</div>
<div class="col-12 col-md-6 col-lg-4 py-3">
<img src="/web/image/theme_prime.s_banner_6_2" class="img img-fluid" alt="Banner Image 02"/>
<div class="tp-banner-content tp-editor-bg-color-n-shadow p-3 o_cc o_cc1 position-relative text-center border">
<img src="/web/image/theme_prime.s_brand_2" class="img img-fluid" style="width: 25%;" alt="Banner Brand Image 02"/>
<h4 class="mt-2">Winter Collection</h4>
<p class="lead mb-1">Starting at $99.</p>
<a href="#" class="btn btn-link">+ Explore Now</a>
</div>
</div>
<div class="col-12 col-md-6 col-lg-4 py-3">
<img src="/web/image/theme_prime.s_banner_6_3" class="img img-fluid" alt="Banner Image 03"/>
<div class="tp-banner-content tp-editor-bg-color-n-shadow p-3 o_cc o_cc1 position-relative text-center border">
<img src="/web/image/theme_prime.s_brand_3" class="img img-fluid" style="width: 25%;" alt="Banner Brand Image 03"/>
<h4 class="mt-2">Trending Collection</h4>
<p class="lead mb-1">Starting at $200.</p>
<a href="#" class="btn btn-link">+ Explore Now</a>
</div>
</div>
</div>
</div>
</section>
</template>
<template id="s_banner_7" name="Banner - 7">
<section class="s_banner_7 pt16 pb16">
<div class="container">
<div class="row s_col_no_bgcolor s_nb_column_fixed">
<div class="col-12 col-md-6 col-lg-4 py-3">
<div class="card">
<img src="/web/image/theme_prime.s_brand_1" class="img img-fluid mx-auto" style="width: 25% !important; padding: 6px !important;" alt="Banner Brand Image 01"/>
<img src="/web/image/theme_prime.s_banner_7_1" class="img img-fluid" alt="Banner Image 01"/>
<div class="card-body">
<h4 style="text-align: center;">Flat 50% Off</h4>
<div style="text-align: center;"><a href="#" class="btn btn-link">+ Shop Now</a></div>
</div>
</div>
</div>
<div class="col-12 col-md-6 col-lg-4 py-3">
<div class="card">
<img src="/web/image/theme_prime.s_brand_2" class="img img-fluid mx-auto" style="width: 25% !important; padding: 6px !important;" alt="Banner Brand Image 02"/>
<img src="/web/image/theme_prime.s_banner_7_2" class="img img-fluid" alt="Banner Image 02"/>
<div class="card-body">
<h4 style="text-align: center;">Up To 60% Off</h4>
<div style="text-align: center;"><a href="#" class="btn btn-link">+ Shop Now</a></div>
</div>
</div>
</div>
<div class="col-12 col-md-6 col-lg-4 py-3">
<div class="card">
<img src="/web/image/theme_prime.s_brand_3" class="img img-fluid mx-auto" style="width: 25% !important; padding: 6px !important;" alt="Banner Brand Image 03"/>
<img src="/web/image/theme_prime.s_banner_7_3" class="img img-fluid" alt="Banner Image 03"/>
<div class="card-body">
<h4 style="text-align: center;">Complimentary Gift</h4>
<div style="text-align: center;"><a href="#" class="btn btn-link">+ Shop Now</a></div>
</div>
</div>
</div>
</div>
</div>
</section>
</template>
<template id="s_banner_8" name="Banner - 8">
<section class="s_banner_8 pt16 pb16">
<div class="container">
<div class="row s_col_no_bgcolor s_nb_column_fixed">
<div class="col-12 col-md-6 col-lg-4 py-3">
<div class="card border-0 tp-bg-gradient-50-black tp-animation-scale">
<img src="/web/image/theme_prime.s_banner_8_1" class="img img-fluid card-img-top" alt="Banner Image 01"/>
<div class="tp-content p-3 d-flex align-items-center justify-content-between">
<div>
<h3 class="text-white">
Up To 25% Off
</h3>
<h6 class="mb-0 text-white">
On order above $60
</h6>
</div>
<a href="#" class="btn btn-link"><i class="fa fa-chevron-right fa-2x text-white"/></a>
</div>
</div>
</div>
<div class="col-12 col-md-6 col-lg-4 py-3">
<div class="card border-0 tp-bg-gradient-50-black tp-animation-scale">
<img src="/web/image/theme_prime.s_banner_8_2" class="img img-fluid card-img-top" alt="Banner Image 02"/>
<div class="tp-content p-3 d-flex align-items-center justify-content-between">
<div>
<h3 class="text-white">
Up To 40% Off
</h3>
<h6 class="mb-0 text-white">
On order above $80
</h6>
</div>
<a href="#" class="btn btn-link"><i class="fa fa-chevron-right fa-2x text-white"/></a>
</div>
</div>
</div>
<div class="col-12 col-md-6 col-lg-4 py-3">
<div class="card border-0 tp-bg-gradient-50-black tp-animation-scale">
<img src="/web/image/theme_prime.s_banner_8_3" class="img img-fluid card-img-top" alt="Banner Image 03"/>
<div class="tp-content p-3 d-flex align-items-center justify-content-between">
<div>
<h3 class="text-white">
Up To 50% Off
</h3>
<h6 class="mb-0 text-white">
On order above $100
</h6>
</div>
<a href="#" class="btn btn-link"><i class="fa fa-chevron-right fa-2x text-white"/></a>
</div>
</div>
</div>
</div>
</div>
</section>
</template>
<template id="s_banner_9" name="Banner - 9">
<section class="s_banner_9 pt16 pb16">
<div class="container">
<div class="row s_col_no_bgcolor s_nb_column_fixed">
<div class="col-12 col-md-6 col-lg-4 py-3">
<div class="card border-0 tp-bg-gradient-50-black tp-animation-scale">
<img src="/web/image/theme_prime.s_banner_9_1" class="img img-fluid card-img-top" alt="Banner Image 01"/>
<div class="tp-content p-3">
<h3 class="text-white" style="text-align: center;">Personal Care</h3>
<h6 class="text-white" style="text-align: center;">Amazing beauty products</h6>
<div class="mt-4" style="text-align: center;"><a href="#"><font class="text-white">+ Explore More</font></a></div>
</div>
</div>
</div>
<div class="col-12 col-md-6 col-lg-4 py-3">
<div class="card border-0 tp-bg-gradient-50-black tp-animation-scale">
<img src="/web/image/theme_prime.s_banner_9_2" class="img img-fluid card-img-top" alt="Banner Image 02"/>
<div class="tp-content p-3">
<h3 class="text-white" style="text-align: center;">Printed T-Shirts</h3>
<h6 class="text-white" style="text-align: center;">International style</h6>
<div class="mt-4" style="text-align: center;"><a href="#"><font class="text-white">+ Explore More</font></a></div>
</div>
</div>
</div>
<div class="col-12 col-md-6 col-lg-4 py-3">
<div class="card border-0 tp-bg-gradient-50-black tp-animation-scale">
<img src="/web/image/theme_prime.s_banner_9_3" class="img img-fluid card-img-top" alt="Banner Image 03"/>
<div class="tp-content p-3">
<h3 class="text-white" style="text-align: center;">Winter Wear Fest</h3>
<h6 class="text-white" style="text-align: center;">Shirts, Jeans &amp; Waistcoats</h6>
<div class="mt-4" style="text-align: center;"><a href="#"><font class="text-white">+ Explore More</font></a></div>
</div>
</div>
</div>
</div>
</div>
</section>
</template>
<template id="s_banner_10" name="Banner - 10">
<section class="s_banner_10 parallax s_parallax_is_fixed pt56 pb56 s_parallax_no_overflow_hidden oe_img_bg o_bg_img_center" data-scroll-background-ratio="0" data-snippet="s_banner_10" data-name="Banner - 10" style="background-image: url('/web/image/theme_prime.s_banner_10_1'); background-position: 50% 0;">
<div class="container">
<div class="row s_col_no_bgcolor s_nb_column_fixed">
<div class="col-12">
<h4 style="text-align: center;">Hurry up!</h4>
<h2 style="text-align: center;" class="display-3 fw-bold">HUGE SALE!</h2>
<h4 style="text-align: center;">Up to 20% off on all products.</h4>
<div style="text-align: center;"><a href="/shop" class="btn btn-primary mt32">Shop Now</a></div>
</div>
</div>
</div>
</section>
</template>
<template id="s_banner_11" name="Banner - 11">
<section class="s_banner_11 pt16 pb16">
<div class="container">
<div class="row s_col_no_bgcolor s_nb_column_fixed">
<div class="col-12 col-lg-6 py-3">
<div class="d-flex border align-items-center tp-editor-bg-color-n-shadow">
<img src="/web/image/theme_prime.s_brand_1" class="flex-shrink-0 me-2 img img-fluid border-end" alt="Banner Image 01" style="width: 20% !important; padding: 10px !important;"/>
<div class="flex-grow-1 p-2">
<h5>Up To 10% Off</h5>
<p class="lead mb-0">Get discount on shoes on order above $150.</p>
</div>
</div>
</div>
<div class="col-12 col-lg-6 py-3">
<div class="d-flex border align-items-center tp-editor-bg-color-n-shadow">
<img src="/web/image/theme_prime.s_brand_2" class="flex-shrink-0 me-2 img img-fluid border-end" alt="Banner Image 02" style="width: 20% !important; padding: 10px !important;"/>
<div class="flex-grow-1 p-2">
<h5>Up To 20% Off</h5>
<p class="lead mb-0">Order above $250 and get free gift voucher.</p>
</div>
</div>
</div>
</div>
</div>
</section>
</template>
<template id="s_banner_12" name="Banner - 12">
<section class="s_banner_12 pt16 pb16">
<div class="container">
<div class="row s_col_no_bgcolor s_nb_column_fixed">
<div class="col-12 col-lg-6 py-3">
<div class="position-relative">
<img class="img img-fluid img-thumbnail" src="/web/image/theme_prime.s_banner_12_1" alt="Banner Image 01"/>
<div class="tp-banner-content">
<h5>Get 10% Off</h5>
<h3>Get Best Burger</h3>
<div class="pt16">
<a href="/shop" class="btn btn-primary rounded-circle">Shop Now</a>
</div>
</div>
</div>
</div>
<div class="col-12 col-lg-6 py-3">
<div class="position-relative">
<img class="img img-fluid img-thumbnail" src="/web/image/theme_prime.s_banner_12_2" alt="Banner Image 02"/>
<div class="tp-banner-content">
<h5>Get 15% Off</h5>
<h3>Get Big Pizzas</h3>
<div class="pt16">
<a href="/shop" class="btn btn-primary rounded-circle">Shop Now</a>
</div>
</div>
</div>
</div>
</div>
</div>
</section>
</template>
<template id="s_banner_13" name="Banner - 13">
<section class="s_banner_13 pt16 pb16">
<div class="container">
<div class="row s_col_no_bgcolor g-0 s_nb_column_fixed">
<div class="col-12 col-lg-6 p-1">
<div class="position-relative tp-animation-scale">
<img src="/web/image/theme_prime.s_banner_13_1" class="w-100" alt="Banner Image 01"/>
<div class="tp-banner-content tp-editor-bg-color-n-shadow text-center rounded o_cc o_cc1 w-50">
<h5>Women Tops</h5>
<div>Up to 70% off on selected item</div>
<a href="#" class="mt-3 btn btn-primary">Discover Now</a>
</div>
</div>
</div>
<div class="col-12 col-lg-6">
<div class="row s_col_no_bgcolor g-0 s_nb_column_fixed">
<div class="col-lg-12 p-1">
<div class="position-relative tp-animation-scale">
<img src="/web/image/theme_prime.s_banner_13_2" class="w-100" alt="Banner Image 02"/>
<div class="tp-banner-content tp-editor-bg-color-n-shadow text-center rounded o_cc o_cc1 w-50">
<h5>Accessories</h5>
<div>Add finishing touch to your outfit</div>
<a href="#" class="mt-3 btn btn-primary">Shop Now</a>
</div>
</div>
</div>
<div class="col-lg-12">
<div class="row s_col_no_bgcolor g-0 s_nb_column_fixed">
<div class="col-lg-6 p-1">
<div class="position-relative tp-animation-scale">
<img src="/web/image/theme_prime.s_banner_13_3" class="w-100" alt="Banner Image 03"/>
<div class="tp-banner-content tp-editor-bg-color-n-shadow text-center rounded o_cc o_cc1 w-50 w-lg-75">
<h5>Denim Jeans</h5>
<div>Find your perfect outfit</div>
<a href="#" class="mt-3 btn btn-primary">Shop Now</a>
</div>
</div>
</div>
<div class="col-lg-6 p-1">
<div class="position-relative tp-animation-scale">
<img src="/web/image/theme_prime.s_banner_13_4" class="w-100" alt="Banner Image 04"/>
<div class="tp-banner-content tp-editor-bg-color-n-shadow text-center rounded o_cc o_cc1 w-50 w-lg-75">
<h5>Hot Collection</h5>
<div>From world's top designer</div>
<a href="#" class="mt-3 btn btn-primary">Shop Now</a>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</section>
</template>
<template id="s_banner_14" name="Banner - 14">
<section class="s_banner_14 pt16 pb16">
<div class="container">
<div class="row s_col_no_bgcolor s_nb_column_fixed">
<div class="col-12 col-lg-8">
<div class="parallax s_parallax_is_fixed s_parallax_no_overflow_hidden pb64 pt64 px-4 oe_img_bg o_bg_img_center" data-scroll-background-ratio="0" style="background-image: url('/web/image/theme_prime.s_banner_14_1'); background-position: 50% 0;">
<h5>Hurry up! Limited time offer</h5>
<h3 class="mb-4">Brand New Shoes On Sale</h3>
<a class="btn btn-primary" href="#">Shop now</a>
</div>
</div>
<div class="col-12 col-lg-4">
<div class="d-flex flex-column h-100 justify-content-center oe_img_bg o_bg_img_center oe_custom_bg" style="background-image:url('/web/image/theme_prime.s_banner_14_2')">
<div class="my-2 p-4 text-center">
<h4>Your Add Text Here</h4>
<p>Hurry up to reserve your spot now</p>
<a class="btn btn-primary" href="#">Learn more</a>
</div>
</div>
</div>
</div>
</div>
</section>
</template>
<template id="s_banner_15" name="Banner - 15">
<section class="s_banner_15 pt16 pb16">
<div class="container">
<div class="row s_col_no_bgcolor s_nb_column_fixed">
<div class="col-12">
<img src="/web/image/theme_prime.s_banner_15_1" class="img img-fluid shadow-sm" alt="Banner Image 01"/>
</div>
</div>
</div>
</section>
</template>
<!-- Assets -->
<record id="theme_prime.s_banner_1_000_scss" model="ir.asset">
<field name="name">Banner 1 000 SCSS</field>
<field name="bundle">web.assets_frontend</field>
<field name="path">theme_prime/static/src/snippets/s_banner_1/000.scss</field>
</record>
<record id="theme_prime.s_banner_2_000_scss" model="ir.asset">
<field name="name">Banner 2 000 SCSS</field>
<field name="bundle">web.assets_frontend</field>
<field name="path">theme_prime/static/src/snippets/s_banner_2/000.scss</field>
</record>
<record id="theme_prime.s_banner_3_000_scss" model="ir.asset">
<field name="name">Banner 3 000 SCSS</field>
<field name="bundle">web.assets_frontend</field>
<field name="path">theme_prime/static/src/snippets/s_banner_3/000.scss</field>
</record>
<record id="theme_prime.s_banner_4_000_scss" model="ir.asset">
<field name="name">Banner 4 000 SCSS</field>
<field name="bundle">web.assets_frontend</field>
<field name="path">theme_prime/static/src/snippets/s_banner_4/000.scss</field>
</record>
<record id="theme_prime.s_banner_6_000_scss" model="ir.asset">
<field name="name">Banner 6 000 SCSS</field>
<field name="bundle">web.assets_frontend</field>
<field name="path">theme_prime/static/src/snippets/s_banner_6/000.scss</field>
</record>
<record id="theme_prime.s_banner_8_000_scss" model="ir.asset">
<field name="name">Banner 8 000 SCSS</field>
<field name="bundle">web.assets_frontend</field>
<field name="path">theme_prime/static/src/snippets/s_banner_8/000.scss</field>
</record>
<record id="theme_prime.s_banner_9_000_scss" model="ir.asset">
<field name="name">Banner 9 000 SCSS</field>
<field name="bundle">web.assets_frontend</field>
<field name="path">theme_prime/static/src/snippets/s_banner_9/000.scss</field>
</record>
<record id="theme_prime.s_banner_12_000_scss" model="ir.asset">
<field name="name">Banner 12 000 SCSS</field>
<field name="bundle">web.assets_frontend</field>
<field name="path">theme_prime/static/src/snippets/s_banner_12/000.scss</field>
</record>
<record id="theme_prime.s_banner_13_000_scss" model="ir.asset">
<field name="name">Banner 13 000 SCSS</field>
<field name="bundle">web.assets_frontend</field>
<field name="path">theme_prime/static/src/snippets/s_banner_13/000.scss</field>
</record>
</odoo>
+124
View File
@@ -0,0 +1,124 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<template id="dynamic_filter_template_blog_post_prime_layout_1" name="Prime Layout - 1">
<figure t-foreach="records" t-as="data" class="s_blog_posts_post my-2 w-100" data-number-of-elements="3">
<t t-set="record" t-value="data['_record']"/>
<div class="border">
<t t-set="_cp" t-value="json.loads(record.cover_properties)"/>
<div class="tp-cover-image" t-attf-style="background-image: #{_cp.get('background-image')};">
<div t-if="len(record.tag_ids)" class="p-3">
<span t-foreach="record.tag_ids" t-as="tag" class="m-1 badge text-bg-primary rounded-pill">
<t t-out="tag.name"/>
</span>
</div>
</div>
<figcaption class="text-center w-100 h-100 p-3 d-flex flex-column flex-grow-1">
<h4 class="text-truncate s_latest_posts_post_title mt-3">
<a t-attf-href="/blog/#{record.blog_id.id}/post/#{record.id}" class="tp-link-dark" t-out="record.name"/>
</h4>
<div class="d-flex align-items-center my-2 justify-content-center">
<i class="fa fa-calendar me-2"></i>
<span t-field="record.post_date" t-options='{"format": "d MMMM, yyyy"}'/>
<span class="mx-2"></span>
<span t-field="record.author_avatar" t-options='{"widget": "image", "class": "rounded-circle tp-blog-avatar"}'/>
<span class="mx-1">Posted by</span>
<span t-field="record.author_id" t-options='{"widget": "contact", "fields": ["name"]}'/>
</div>
<p t-out="record.teaser"/>
<a class="my-2 btn btn-primary-soft" t-attf-href="/blog/#{record.blog_id.id}/post/#{record.id}">Continue Reading</a>
</figcaption>
</div>
</figure>
</template>
<template id="dynamic_filter_template_blog_post_prime_layout_2" name="Prime Layout - 2">
<figure t-foreach="records" t-as="data" class="s_blog_posts_post my-2 w-100" data-number-of-elements="3">
<t t-set="record" t-value="data['_record']"/>
<a t-attf-href="/blog/#{record.blog_id.id}/post/#{record.id}" class="card mb-2 tp-blog-container tp-animation-lift">
<t t-set="_cp" t-value="json.loads(record.cover_properties)"/>
<div class="card-img-top">
<div class="tp-cover-image" t-attf-style="background-image: #{_cp.get('background-image')};"/>
<div class="position-relative">
<div class="tp-svg-img">
<svg preserveAspectRatio="none" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="100%" height="140px" viewBox="20 -20 300 100" style="top: -70%;">
<path d="M30.913,43.944c0,0,42.911-34.464,87.51-14.191c77.31,35.14,113.304-1.952,146.638-4.729 c48.654-4.056,69.94,16.218,69.94,16.218v54.396H30.913V43.944z" opacity="0.4" fill="#f0f1f3"></path>
<path d="M-35.667,44.628c0,0,42.91-34.463,87.51-14.191c77.31,35.141,113.304-1.952,146.639-4.729 c48.653-4.055,69.939,16.218,69.939,16.218v54.396H-35.667V44.628z" opacity="0.4" fill="#f0f1f3"></path>
<path d="M43.415,98.342c0,0,48.283-68.927,109.133-68.927c65.886,0,97.983,67.914,97.983,67.914v3.716 H42.401L43.415,98.342z" opacity="0" fill="#fff"></path>
<path d="M-34.667,62.998c0,0,56-45.667,120.316-27.839C167.484,57.842,197,41.332,232.286,30.428 c53.07-16.399,104.047,36.903,104.047,36.903l1.333,36.667l-372-2.954L-34.667,62.998z" fill="#fff"></path>
</svg>
</div>
</div>
</div>
<div class="card-body px-4 py-1">
<h3 class="text-truncate mt-3 mb-2" t-out="record.name"/>
<p class="text-body" t-out="record.teaser"/>
<div t-if="len(record.tag_ids)">
<t t-foreach="record.tag_ids" t-as="tag">
<span class="badge text-bg-dark rounded-pill me-1" t-out="tag.name"/>
</t>
</div>
<div class="align-items-center justify-content-between d-flex position-relative w-100 o_not_editable pb-2">
<div class="align-items-center d-flex">
<span t-field="record.author_avatar" t-options='{"widget": "image", "class": "rounded-circle me-2 tp-blog-avatar"}'/>
<small t-field="record.author_id" t-options='{"widget": "contact", "fields": ["name"]}'/>
</div>
<div>
<small t-field="record.post_date" t-options='{"format": "d MMMM, yyyy"}'/>
</div>
</div>
</div>
</a>
</figure>
</template>
<template id="dynamic_filter_template_blog_post_prime_layout_3" name="Prime Layout - 3">
<figure t-foreach="records" t-as="data" class="s_blog_posts_post my-2 w-100" data-number-of-elements="3">
<t t-set="record" t-value="data['_record']"/>
<a t-attf-href="/blog/#{record.blog_id.id}/post/#{record.id}" class="card mb-2 tp-animation-lift">
<t t-set="_cp" t-value="json.loads(record.cover_properties)"/>
<div class="tp-cover-image" t-attf-style="background-image: #{_cp.get('background-image')};"/>
<div class="card-body">
<h4 class="text-truncate" t-out="record.name"/>
<p class="text-body" t-out="record.teaser"/>
<div t-if="len(record.tag_ids)">
<t t-foreach="record.tag_ids" t-as="tag">
<span class="badge text-bg-light me-1" t-out="tag.name"/>
</t>
</div>
</div>
<div class="card-footer d-flex align-items-center bg-white">
<div class="d-flex align-items-center">
<span t-field="record.author_avatar" t-options='{"widget": "image", "class": "rounded-circle me-2 tp-blog-avatar"}'/>
<small t-field="record.author_id" t-options='{"widget": "contact", "fields": ["name"]}'/>
</div>
<div class="ms-auto">
<small t-field="record.post_date" t-options='{"format": "d MMMM, yyyy"}'/>
</div>
</div>
</a>
</figure>
</template>
<template id="dynamic_filter_template_blog_post_prime_layout_4" name="Prime Layout - 4">
<figure t-foreach="records" t-as="data" class="s_blog_posts_post my-2 w-100" data-number-of-elements="4">
<t t-set="record" t-value="data['_record']"/>
<div class="card border-0 mb-2">
<t t-set="_cp" t-value="json.loads(record.cover_properties)"/>
<a t-attf-href="/blog/#{record.blog_id.id}/post/#{record.id}" class="tp-cover-image" t-attf-style="background-image: #{_cp.get('background-image')};">
<div class="tp-date d-flex flex-column bg-white text-center shadow">
<h4 class="pt-2 mb-1" t-field="record.post_date" t-options='{"format": "dd"}'/>
<span class="text-uppercase pb-2 fw-bold small" t-field="record.post_date" t-options='{"format": "MMM"}'/>
</div>
</a>
<div class="card-body text-center">
<a t-attf-href="/blog/#{record.blog_id.id}/post/#{record.id}" class="tp-link-dark">
<h4 class="text-truncate" t-out="record.name"/>
</a>
<span class="text-body">Posted by <span t-field="record.author_avatar" t-options='{"widget": "image", "class": "rounded-circle tp-blog-avatar"}'/> <t t-out="record.author_id.name"/></span>
</div>
</div>
</figure>
</template>
</odoo>
+90
View File
@@ -0,0 +1,90 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<template id="s_clients_1" name="Clients - 1">
<section class="s_clients_1 pt16 pb16">
<div class="container">
<div class="row tp-client-list s_nb_column_fixed">
<div t-foreach="list(range(1, 13))" t-as="number" class="col-6 col-sm-4 col-md-3 col-lg-2 tp-client-box">
<t t-set="number" t-value="'%02d' % number"/>
<div class="p-4 text-center tp-animation-scale">
<img class="img img-fluid tp-cursor-pointer" t-attf-src="/web/image/theme_prime.s_client_#{number}" t-attf-alt="Client Image #{number}"/>
</div>
</div>
</div>
</div>
</section>
</template>
<template id="s_clients_2" name="Clients - 2">
<section class="s_clients_2 pt16 pb16">
<div class="container">
<div class="row s_nb_column_fixed">
<div t-foreach="list(range(1, 7))" t-as="number" class="col-12 col-sm-6 col-md-4 col-lg-3 col-xl-2 px-sm-0">
<t t-set="number" t-value="'%02d' % number"/>
<div class="tp-client-box p-5 text-center">
<img class="img img-fluid tp-client-image" t-attf-src="/web/image/theme_prime.s_client_#{number}" t-attf-alt="Client Image #{number}"/>
</div>
</div>
</div>
</div>
</section>
</template>
<template id="s_clients_3" name="Clients - 3">
<section class="s_clients_3 pt16 pb16">
<div class="container">
<div class="row s_nb_column_fixed">
<div t-foreach="list(range(1, 9))" t-as="number" class="col-12 col-md-3 tp-client-box">
<t t-set="number" t-value="'%02d' % number"/>
<div class="p-4 text-center">
<img class="img img-fluid tp-client-image" t-attf-src="/web/image/theme_prime.s_client_#{number}" t-attf-alt="Client Image #{number}"/>
</div>
</div>
</div>
</div>
</section>
</template>
<template id="s_clients_4" name="Clients - 4">
<section class="s_clients_4 pt16 pb16">
<div class="container">
<div class="row s_col_no_bgcolor s_nb_column_fixed">
<t t-set="clients" t-value="{'01': 'Droggol', '02': 'Twilio', '03': 'Airbnb', '04': 'Atlassian', '05': 'CircleCI', '06': 'Fitbit'}"/>
<div t-foreach="clients" t-as="client" class="col-12 col-sm-6 col-md-4 col-lg-3 col-xl-2 py-3">
<div class="tp-client-box tp-editor-bg-color-n-shadow border py-3 text-center">
<img class="img img-fluid" t-attf-src="/theme_prime/static/src/img/snippets/s_client_#{client}.png" t-attf-alt="Client Image #{client}"/>
<h6 class="mt-2 mb-0"><t t-out="clients[client]"/></h6>
</div>
</div>
</div>
</div>
</section>
</template>
<!-- Assets -->
<record id="theme_prime.s_clients_1_000_scss" model="ir.asset">
<field name="name">Clients 1 000 SCSS</field>
<field name="bundle">web.assets_frontend</field>
<field name="path">theme_prime/static/src/snippets/s_clients_1/000.scss</field>
</record>
<record id="theme_prime.s_clients_2_000_scss" model="ir.asset">
<field name="name">Clients 2 000 SCSS</field>
<field name="bundle">web.assets_frontend</field>
<field name="path">theme_prime/static/src/snippets/s_clients_2/000.scss</field>
</record>
<record id="theme_prime.s_clients_3_000_scss" model="ir.asset">
<field name="name">Clients 3 000 SCSS</field>
<field name="bundle">web.assets_frontend</field>
<field name="path">theme_prime/static/src/snippets/s_clients_3/000.scss</field>
</record>
<record id="theme_prime.s_clients_4_000_scss" model="ir.asset">
<field name="name">Clients 4 000 SCSS</field>
<field name="bundle">web.assets_frontend</field>
<field name="path">theme_prime/static/src/snippets/s_clients_4/000.scss</field>
</record>
</odoo>
@@ -0,0 +1,104 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<template id="s_coming_soon_1" name="Coming Soon - 1">
<section class="s_coming_soon s_coming_soon_1 o_full_screen_height">
<div class="container-fluid">
<div class="row tp-coming-soon-container align-items-center">
<div class="col-md-6 bg-o-color-1 tp-editor-bg-image">
<div class="tp-coming-soon-side-block d-flex justify-content-center flex-column align-items-center">
<t t-call="theme_prime.s_tp_countdown"/>
</div>
</div>
<div class="col-md-6 d-none d-md-block">
<div class="tp-coming-soon-side-block d-flex justify-content-center flex-column align-items-center">
<div class="my-4">
<span class="fa fa-rocket fa-5x text-dark"></span>
</div>
<h6 class="mb-3 tp-stay-tuned">STAY TUNED</h6>
<h1 class="fw-bold text-primary">WE ARE LAUNCHING SOON!</h1>
<h3>Are you ready?</h3>
<p class="mt-2">Subscribe to get a notification as soon as we launch!</p>
<div class="s_newsletter_list js_subscribe w-100 w-md-50 mx-auto my-4" data-vxml="001" data-list-id="0" data-name="Newsletter Form">
<div class="input-group">
<input type="email" name="email" class="js_subscribe_value form-control" placeholder="your email..."/>
<span class="input-group-append">
<a role="button" href="#" class="btn btn-primary js_subscribe_btn">Subscribe</a>
<a role="button" href="#" class="btn btn-success js_subscribed_btn d-none" disabled="disabled">Thanks</a>
</span>
</div>
</div>
<div class="s_social_media o_not_editable text-center" data-snippet="s_social_media" data-name="Social Media">
<a href="/website/social/facebook" class="s_social_media_facebook" target="_blank">
<i class="fa fa-facebook m-1 rounded-circle shadow-sm o_editable_media"/>
</a>
<a href="/website/social/twitter" class="s_social_media_twitter" target="_blank">
<i class="fa fa-twitter m-1 rounded-circle shadow-sm o_editable_media"/>
</a>
<a href="/website/social/linkedin" class="s_social_media_linkedin" target="_blank">
<i class="fa fa-linkedin m-1 rounded-circle shadow-sm o_editable_media"/>
</a>
<a href="/website/social/github" class="s_social_media_github" target="_blank">
<i class="fa fa-github m-1 rounded-circle shadow-sm o_editable_media"/>
</a>
<a href="/website/social/youtube" class="s_social_media_youtube" target="_blank">
<i class="fa fa-youtube m-1 rounded-circle shadow-sm o_editable_media"/>
</a>
</div>
</div>
</div>
</div>
</div>
</section>
</template>
<template id="s_coming_soon_2" name="Coming Soon - 2">
<section class="s_coming_soon s_coming_soon_2 o_full_screen_height" style="background-position: 0% 53.2468%; background-image: url('/web/image/theme_prime.s_coming_soon_2_2');">
<div class="container">
<div class="row">
<div class="col-12">
<div class="text-center d-none d-md-block">
<div class="my-4">
<img src="/web/image/theme_prime.s_coming_soon_2_1" class="img img-fluid" style="max-width: 160px;"/>
</div>
</div>
<div class="text-center">
<h1>Coming Soon...</h1>
<p>We are glad to see you, but please be patient. This page is under construction.</p>
</div>
<div class="tp-coming-soon-side-block d-flex justify-content-center flex-column align-items-center py-4">
<t t-call="theme_prime.s_tp_countdown"/>
</div>
<div class="text-center py-4 d-none d-md-block">
<h4>Subscribe</h4>
<p>Subscribe and stay in touch with the latest news, deals and promotions.</p>
<div class="s_newsletter_list js_subscribe w-100 w-md-50 w-xl-25 mx-auto my-4" data-vxml="001" data-list-id="0" data-name="Newsletter Form">
<div class="input-group">
<input type="email" name="email" class="js_subscribe_value form-control" placeholder="your email..."/>
<span class="input-group-append">
<a role="button" href="#" class="btn btn-primary js_subscribe_btn">Subscribe</a>
<a role="button" href="#" class="btn btn-success js_subscribed_btn d-none" disabled="disabled">Thanks</a>
</span>
</div>
</div>
</div>
</div>
</div>
</div>
</section>
</template>
<!-- Assets -->
<record id="theme_prime.s_coming_soon_1_000_js" model="ir.asset">
<field name="name">Coming Soon 1 000 JS</field>
<field name="bundle">web.assets_frontend</field>
<field name="path">theme_prime/static/src/snippets/s_coming_soon_1/000.js</field>
</record>
<record id="theme_prime.s_coming_soon_1_000_scss" model="ir.asset">
<field name="name">Coming Soon 1 000 SCSS</field>
<field name="bundle">web.assets_frontend</field>
<field name="path">theme_prime/static/src/snippets/s_coming_soon_1/000.scss</field>
</record>
</odoo>
@@ -0,0 +1,67 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<template id="s_tp_countdown" name="Countdown">
<div class="tp-countdown tp-editor-inner-snippet style-1 position-left tp-dark pt16 pb8" t-att-data-due-date="datetime.datetime.now().timestamp() + 228307" data-countdown-style="s_countdown_1">
<div class="container tp-countdown-wrapper">
<div class="row pt16 tp-end-msg-container css_non_editable_mode_hidden s_nb_column_fixed">
<div class="col-12">
<div class="text-center alert alert-info css_non_editable_mode_hidden o_not_editable" t-ignore="True" role="status">
The following message will become visible <strong>only</strong> once the countdown ends.
</div>
<div class="oe_structure">
<section class="s_picture">
<div class="container">
<div class="row s_nb_column_fixed">
<div class="col-12">
<h2>Happy Shopping!</h2>
<p>As promised, we will offer surprise coupon for our next sale.</p>
</div>
</div>
</div>
</section>
</div>
</div>
</div>
</div>
</div>
</template>
<template id="s_tp_countdown_options" inherit_id="website.snippet_options">
<xpath expr="." position="inside">
<div data-js="dr_countdown" data-selector=".tp-countdown">
<we-datetimepicker string="Due Date" data-select-data-attribute="" data-attribute-name="dueDate"/>
<we-select string="Style" data-attribute-name="countdownStyle">
<we-button data-name="style-1" data-select-class="style-1" data-select-data-attribute="s_countdown_1">Style - 1</we-button>
<we-button data-name="style-2" data-select-class="style-2" data-select-data-attribute="s_countdown_2">Style - 2</we-button>
<we-button data-name="style-3" data-select-class="style-3" data-select-data-attribute="s_countdown_3">Style - 3</we-button>
<we-button data-name="style-4" data-select-class="style-4" data-select-data-attribute="s_countdown_4">Style - 4</we-button>
</we-select>
<we-button-group string="Theme" class="ms-auto" data-dependencies="style-1, style-4">
<we-button data-select-class="" title="None"><i class="fa fa-fw fa-ban"/></we-button>
<we-button data-select-class="tp-light" title="Light"><i class="fa fa-fw fa-sun-o"/></we-button>
<we-button data-select-class="tp-dark" title="Dark"><i class="fa fa-fw fa-moon-o"/></we-button>
</we-button-group>
<we-button-group string="Alignment" class="ms-auto" data-dependencies="style-2, style-3, style-4">
<we-button data-select-class="position-left"><i class="fa fa-fw fa-align-left"/></we-button>
<we-button data-select-class="position-center"><i class="fa fa-fw fa-align-center"/></we-button>
<we-button data-select-class="position-right"><i class="fa fa-fw fa-align-right"/></we-button>
</we-button-group>
</div>
</xpath>
</template>
<!-- Assets -->
<record id="theme_prime.s_tp_countdown_000_scss" model="ir.asset">
<field name="name">Tp Countdown 000 SCSS</field>
<field name="bundle">web.assets_frontend</field>
<field name="path">theme_prime/static/src/snippets/s_tp_countdown/000.scss</field>
</record>
<record id="theme_prime.s_tp_countdown_000_js" model="ir.asset">
<field name="name">Tp Countdown 000 JS</field>
<field name="bundle">web.assets_frontend</field>
<field name="path">theme_prime/static/src/snippets/s_tp_countdown/000.js</field>
</record>
</odoo>
+292
View File
@@ -0,0 +1,292 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<template id="s_cover_1" name="Cover - 1">
<section class="s_cover_1">
<t t-set="uniq" t-value="datetime.datetime.now().microsecond"/>
<div t-attf-id="myCarousel{{uniq}}" class="s_carousel tp-custom-carousel s_carousel_rounded carousel slide" data-bs-interval="10000">
<!-- Indicators -->
<ol class="carousel-indicators">
<li t-attf-data-bs-target="#myCarousel{{uniq}}" data-bs-slide-to="0" class="active"/>
<li t-attf-data-bs-target="#myCarousel{{uniq}}" data-bs-slide-to="1"/>
</ol>
<!-- Content -->
<div class="carousel-inner">
<!-- #01 -->
<div class="carousel-item active" data-name="Slide">
<div class="container-fluid px-0">
<div class="row content g-0 align-items-center s_col_no_bgcolor s_nb_column_fixed">
<div class="tp-editor-bg-color-n-shadow border order-2 order-lg-1 jumbotron rounded px-4 offset-lg-1 col-lg-4 pt24 pb24 o_cc o_cc1 border" data-name="Box">
<img class="img img-fluid" src="/web/image/theme_prime.s_cover_1_brand_1" style="width: 25%;" alt="Cover Brand Image 01"></img>
<h2 class="mt-2">Special Collection</h2>
<h5>Starting at $120.00</h5>
<a href="/shop" class="btn btn-primary mt-2">Shop Now</a>
</div>
<div class="order-1 order-lg-2 offset-lg-1 col-lg-6">
<img class="img img-fluid" src="/web/image/theme_prime.s_cover_1_1" alt="Cover Image 01"></img>
</div>
</div>
</div>
</div>
<!-- #02 -->
<div class="carousel-item" data-name="Slide">
<div class="container-fluid px-0">
<div class="row content g-0 align-items-center s_col_no_bgcolor s_nb_column_fixed">
<div class="tp-editor-bg-color-n-shadow border order-2 order-lg-1 jumbotron rounded px-4 offset-lg-1 col-lg-4 pt24 pb24 o_cc o_cc1 border" data-name="Box">
<img class="img img-fluid" src="/web/image/theme_prime.s_cover_1_brand_2" style="width: 25%;" alt="Cover Brand Image 01"></img>
<h2 class="mt-2">Fresh Collection</h2>
<h5>Starting at $35.00</h5>
<a href="/shop" class="btn btn-primary mt-2">Shop Now</a>
</div>
<div class="order-1 order-lg-2 offset-lg-1 col-lg-6">
<img class="img img-fluid" src="/web/image/theme_prime.s_cover_1_2" alt="Cover Image 02"></img>
</div>
</div>
</div>
</div>
</div>
<!-- Controls -->
<a class="carousel-control-prev o_not_editable" contenteditable="false" t-attf-href="#myCarousel{{uniq}}" data-bs-slide="prev" role="img" aria-label="Previous" title="Previous">
<span class="fa fa-chevron-left"></span>
<span class="visually-hidden">Previous</span>
</a>
<a class="carousel-control-next o_not_editable" contenteditable="false" t-attf-href="#myCarousel{{uniq}}" data-bs-slide="next" role="img" aria-label="Next" title="Next">
<span class="fa fa-chevron-right"></span>
<span class="visually-hidden">Next</span>
</a>
</div>
</section>
</template>
<template id="s_cover_2" name="Cover - 2">
<section class="s_cover_2">
<t t-set="uniq" t-value="dr_uid or datetime.datetime.now().microsecond"/>
<div t-attf-id="myCarousel{{uniq}}" class="s_carousel tp-custom-carousel s_carousel_rounded carousel slide" data-bs-interval="10000">
<!-- Indicators -->
<ol class="carousel-indicators">
<li t-attf-data-bs-target="#myCarousel{{uniq}}" data-bs-slide-to="0" class="active"/>
<li t-attf-data-bs-target="#myCarousel{{uniq}}" data-bs-slide-to="1"/>
</ol>
<!-- Content -->
<div class="carousel-inner">
<!-- #01 -->
<div class="carousel-item active oe_img_bg o_bg_img_center pt192 pb192" style="background-image: url('/web/image/theme_prime.s_cover_2_1');" data-name="Slide">
<div class="container">
<div class="row content">
<div class="carousel-content col-lg-5">
<h4>JUST NEWLY ARRIVED!</h4>
<h2 class="display-4 fw-bold">High Quality Fabric Collection</h2>
<p class="lead"><font style="font-size: 20px;">In hac habitasse platea dictumst. Praesent cursus congue felis, nec pellentesque nulla ornare sed.</font></p>
<a href="/shop" class="btn btn-primary mt-2">READ MORE</a>
</div>
</div>
</div>
</div>
<!-- #02 -->
<div class="carousel-item oe_img_bg o_bg_img_center pt192 pb192" style="background-image: url('/web/image/theme_prime.s_cover_2_2');" data-name="Slide">
<div class="container">
<div class="row content">
<div class="carousel-content col-lg-5">
<h4 style="text-align: center;">GET FLAT 20% OFF</h4>
<h2 style="text-align: center;" class="display-4 fw-bold">Flexible Styled Collection By Prime</h2>
<p style="text-align: center;" class="lead"><font style="font-size: 20px;">In hac habitasse platea dictumst. Praesent cursus congue felis, nec pellentesque nulla ornare sed.</font></p>
<div style="text-align: center;">
<a href="/shop" class="btn btn-primary mt-2">READ MORE</a>
</div>
</div>
</div>
</div>
</div>
</div>
<!-- Controls -->
<a class="carousel-control-prev o_not_editable" contenteditable="false" t-attf-href="#myCarousel{{uniq}}" data-bs-slide="prev" role="img" aria-label="Previous" title="Previous">
<span class="fa fa-chevron-left tp-icon-center-2 dr-p-icon border-0 shadow rounded-circle"></span>
<span class="visually-hidden">Previous</span>
</a>
<a class="carousel-control-next o_not_editable" contenteditable="false" t-attf-href="#myCarousel{{uniq}}" data-bs-slide="next" role="img" aria-label="Next" title="Next">
<span class="fa fa-chevron-right tp-icon-center-2 dr-p-icon border-0 shadow rounded-circle"></span>
<span class="visually-hidden">Next</span>
</a>
</div>
</section>
</template>
<template id="s_cover_3" name="Cover - 3">
<section class="s_cover_3 parallax s_parallax_is_fixed o_full_screen_height pt168 pb144 s_parallax_no_overflow_hidden oe_img_bg o_bg_img_center" data-scroll-background-ratio="0" style="background-image: url('/web/image/theme_prime.s_cover_3_1'); background-position: 50% 0;">
<div class="container tp-cover-container">
<div class="row s_nb_column_fixed">
<div class="jumbotron rounded pt32 pb32 col-lg-5" data-name="Box">
<h3>New Arrivals</h3>
<h2 class="display-4 fw-bold">Fresh Collection By Prime</h2>
<p class="lead"><font style="font-size: 20px;">In hac habitasse platea dictumst. Praesent cursus congue felis, nec pellentesque nulla ornare sed.</font></p>
<a href="/shop" class="btn btn-primary mt-2 rounded-circle">Discover More</a>
</div>
</div>
</div>
<div class="container s_icon_block_9 tp-cover-icon-container d-none d-lg-block">
<div class="row justify-content-center bg-white shadow-sm s_nb_column_fixed">
<div class="col-12 col-md-3 py-3 mx-auto tp-icon-block">
<div class="d-flex px-md-2 px-lg-5">
<div class="flex-shrink-0">
<span class="fa fa-rocket fa-2x me-3"/>
</div>
<div class="flex-grow-1">
<h6 class="mb-1">Free Shipping</h6>
<p class="mb-0">In 2-3 Days</p>
</div>
</div>
</div>
<div class="col-12 col-md-3 py-3 mx-auto tp-icon-block">
<div class="d-flex px-md-2 px-lg-5">
<div class="flex-shrink-0">
<span class="fa fa-refresh fa-2x me-3"/>
</div>
<div class="flex-grow-1">
<h6 class="mb-1">Free Returns</h6>
<p class="mb-0">No Questions Asked</p>
</div>
</div>
</div>
<div class="col-12 col-md-3 py-3 mx-auto tp-icon-block">
<div class="d-flex px-md-2 px-lg-5">
<div class="flex-shrink-0">
<span class="fa fa-phone fa-2x me-3"/>
</div>
<div class="flex-grow-1">
<h6 class="mb-1">Free Support</h6>
<p class="mb-0">30 Days Support</p>
</div>
</div>
</div>
<div class="col-12 col-md-3 py-3 mx-auto tp-icon-block">
<div class="d-flex px-md-2 px-lg-5">
<div class="flex-shrink-0">
<span class="fa fa-tag fa-2x me-3"/>
</div>
<div class="flex-grow-1">
<h6 class="mb-1">100% Genuine</h6>
<p class="mb-0">High Quality Products</p>
</div>
</div>
</div>
</div>
</div>
</section>
</template>
<template id="s_cover_4" name="Cover - 4">
<section class="s_cover_4 pt40 pb40">
<div class="container">
<div class="row s_nb_column_fixed align-items-center">
<div class="col-lg-6 p-4 order-2 order-lg-1">
<h1>Maximus Note 8i</h1>
<p>Powered by a 10 nm octa-core Qualcomm Snapdragon 712 AIE processor, this phone can seamlessly execute any task. You can game more and multitask without experiencing any lag. Experience a boost in performance and efficiency with this phone.</p>
<div class="row s_col_no_bgcolor s_nb_column_fixed">
<div class="col-12 col-sm-6 py-3">
<div class="d-flex align-items-center">
<img class="flex-shrink-0 img-fluid me-3" src="/web/image/theme_prime.s_cover_4_2" style="width: 25% !important;"/>
<div class="flex-grow-1">
<h6 class="mb-1">Wireless Charging</h6>
<span>Full battery in no time</span>
</div>
</div>
</div>
<div class="col-12 col-sm-6 py-3">
<div class="d-flex align-items-center">
<img class="flex-shrink-0 img-fluid me-3" src="/web/image/theme_prime.s_cover_4_3" style="width: 25% !important;"/>
<div class="flex-grow-1">
<h6 class="mb-1">Super Fast CPU</h6>
<span>Powerful Performance</span>
</div>
</div>
</div>
<div class="col-12 col-sm-6 py-3">
<div class="d-flex align-items-center">
<img class="flex-shrink-0 img-fluid me-3" src="/web/image/theme_prime.s_cover_4_4" style="width: 25% !important;"/>
<div class="flex-grow-1">
<h6 class="mb-1">128 GB Harddisk</h6>
<span>More content</span>
</div>
</div>
</div>
<div class="col-12 col-sm-6 py-3">
<div class="d-flex align-items-center">
<img class="flex-shrink-0 img-fluid me-3" src="/web/image/theme_prime.s_cover_4_5" style="width: 25% !important;"/>
<div class="flex-grow-1">
<h6 class="mb-1">64 MP Camara</h6>
<span>With super Macro Lens</span>
</div>
</div>
</div>
</div>
<a href="#" class="btn btn-primary mt-4">Shop Now</a>
</div>
<div class="col-lg-6 order-1 order-lg-2">
<img src="/web/image/theme_prime.s_cover_4_1" class="img img-fluid" alt="Cover Image 01"/>
</div>
</div>
<t t-call="theme_prime.s_icon_block_10"/>
</div>
</section>
</template>
<template id="s_cover_5" name="Cover - 5">
<section class="s_cover_5 parallax s_parallax_is_fixed o_full_screen_height pt168 pb144 s_parallax_no_overflow_hidden oe_img_bg o_bg_img_center" data-scroll-background-ratio="0" style="background-image: url('/web/image/theme_prime.s_cover_3_1'); background-position: 50% 0;">
<div class="container tp-cover-container">
<div class="row s_nb_column_fixed">
<div class="jumbotron rounded pt32 pb32 col-lg-5" data-name="Box">
<div class="s_alert clearfix w-100 alert-primary border-0 d-flex align-items-center s_alert_md" data-snippet="s_alert" data-name="Alert" style="border-radius: 50rem;padding:.375rem 1rem .375rem .5rem;max-width:450px;">
<span class="s_badge badge text-bg-primary o_default_snippet_text py-1 m-0 px-2" style="border-radius: 50rem;" data-name="Badge">
<i class="fa fa-1x fa-fw fa-star-o o_not-animable m-0"></i> BEST
</span>
<div class="s_alert_content mx-2 d-inline-block">
<p class="o_default_snippet_text text-primary fw-light h6">Quality products by <strong>Prime team</strong></p>
</div>
</div>
<h2 class="display-4 fw-bold">Best Products In Every Categories.</h2>
<p class="lead">
We have everything that you need for your next adventure.
</p>
<t t-call="website.website_search_box_input">
<t t-set="_form_classes" t-valuef="w-100 tp-cover-search-input o_wsale_products_searchbar_form o_not_editable tp-rounded-border p-1 bg-white border"/>
<t t-set="_classes" t-valuef=" "/>
<t t-set="_submit_classes" t-valuef="btn-primary tp-rounded-border"/>
<t t-set="search_type" t-valuef="products"/>
<t t-set="placeholder">Search for products, brands and more ...</t>
<t t-set="action" t-value="'/shop'"/>
</t>
<div class="s_social_media o_not_editable mt-5 tp-followus-icons" data-snippet="s_social_media" data-name="Social Media">
<h5 class="s_social_media_title d-block mb-2">Follow Us On:</h5>
<a href="/website/social/facebook" class="s_social_media_facebook" target="_blank">
<i class="fa fa-facebook rounded-circle shadow-sm o_editable_media"/>
</a>
<a href="/website/social/twitter" class="s_social_media_twitter" target="_blank">
<i class="fa fa-twitter rounded-circle shadow-sm o_editable_media"/>
</a>
<a href="/website/social/linkedin" class="s_social_media_linkedin" target="_blank">
<i class="fa fa-linkedin rounded-circle shadow-sm o_editable_media"/>
</a>
<a href="/website/social/instagram" class="s_social_media_instagram" target="_blank">
<i class="fa fa-instagram rounded-circle shadow-sm o_editable_media"/>
</a>
<a href="/website/social/youtube" class="s_social_media_youtube" target="_blank">
<i class="fa fa-youtube rounded-circle shadow-sm o_editable_media"/>
</a>
<a href="/website/social/github" class="s_social_media_github" target="_blank">
<i class="fa fa-github rounded-circle shadow-sm o_editable_media"/>
</a>
</div>
</div>
</div>
</div>
</section>
</template>
<!-- Assets -->
<record id="theme_prime.s_cover_3_scss" model="ir.asset">
<field name="name">Cover 3 000 SCSS</field>
<field name="bundle">web.assets_frontend</field>
<field name="path">theme_prime/static/src/snippets/s_cover_3/000.scss</field>
</record>
</odoo>
+86
View File
@@ -0,0 +1,86 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<template id="s_call_to_action_1" name="Call To Action - 1">
<section class="s_call_to_action_1 pt56 pb56">
<div class="container">
<div class="row align-items-center s_col_no_bgcolor s_nb_column_fixed">
<div class="col-12 col-lg-9">
<h2>Order now and get <span class="text-o-color-1">15% OFF</span></h2>
<p class="lead mb-0">We are the creative team of theme prime. No one actually read this so let me write any thing here.</p>
</div>
<div class="col-12 col-lg-3 text-lg-end">
<a href="#" class="btn btn-primary mt-3 mt-lg-0">Shop Now</a>
</div>
</div>
</div>
</section>
</template>
<template id="s_call_to_action_2" name="Call To Action - 2">
<section class="s_call_to_action_2 pt56 pb56">
<div class="container">
<div class="row align-items-center s_col_no_bgcolor s_nb_column_fixed">
<div class="col-12 col-lg-9">
<h4>Contact us at <a href="mailto:info@droggol.com">info@droggol.com</a> or give us a call <a href="tel:+91 70466 01320">+91 70466 01320</a></h4>
<p class="lead mb-0">We are the creative team of theme prime. No one actually read this so let me write any thing here until the content is long enough.</p>
</div>
<div class="col-12 col-lg-3 text-lg-end">
<a href="#" class="btn btn-primary mt-3 mt-lg-0">Purchase Now</a>
</div>
</div>
</div>
</section>
</template>
<template id="s_call_to_action_3" name="Call To Action - 3">
<section class="s_call_to_action_3 pt56 pb56">
<div class="container">
<div class="row align-items-center s_col_no_bgcolor s_nb_column_fixed">
<div class="col-12 text-center">
<h2>Hire Us!</h2>
<p class="lead">We are the creative team of theme prime. No one actually read this so let me write any thing here until the content is long enough to break this lines in to multiple lines so this block looks nice and cool. We are creative team but paragraph in not so long so writing again.</p>
</div>
<div class="col-12 text-center">
<a href="#" class="btn btn-primary">Get in touch</a>
</div>
</div>
</div>
</section>
</template>
<template id="s_call_to_action_4" name="Call To Action - 4">
<section class="s_call_to_action_4 pt32 pb32 o_cc o_cc2">
<div class="container">
<div class="row justify-content-center align-items-center text-center text-md-start s_col_no_bgcolor s_nb_column_fixed">
<div class="col-12 col-md-auto">
<p class="lead mb-2 mb-md-0">We offer best in class service for your needs</p>
</div>
<div class="col-12 col-md-auto">
<a href="/shop" class="btn btn-primary">Order Now</a>
</div>
</div>
</div>
</section>
</template>
<template id="s_call_to_action_5" name="Call To Action - 5">
<section class="s_call_to_action_5 pt56 pb56">
<div class="container">
<div class="row align-items-center s_col_no_bgcolor s_nb_column_fixed">
<div class="col-lg-3 mb-3 mb-lg-0">
<img class="img-fluid" src="/web/image/theme_prime.s_call_to_action_5_1" alt="CTA Image 01"/>
</div>
<div class="col-lg-7">
<h2>Need to do calculations?</h2>
<p class="lead">We are the creative team of theme prime. No one actually read this so let me write any thing here until the content is long enough to break this lines in to multiple lines.</p>
</div>
<div class="col-lg-2">
<a class="btn btn-primary" href="/shop">Order Now</a>
</div>
</div>
</div>
</section>
</template>
</odoo>
+98
View File
@@ -0,0 +1,98 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<template id="s_gallery_1" name="Gallery - 1">
<section class="s_gallery tp-image-gallery pt32 pb32">
<div class="container">
<div class="row">
<t t-set="images" t-value="{'01': {'title': 'Branding', 'description': 'Curology Campaign'}, '02': {'title': 'Packaging', 'description': 'Honest Packaging'}, '03': {'title': 'Marketing', 'description': 'Larq Bright Campaign'}, '04': {'title': 'Ideation', 'description': 'Doodle Pads'}, '05': {'title': 'Branding', 'description': 'Larq Earthtones Collection'}, '06': {'title': 'Product design', 'description': 'Goby Brush Prototype'}}"/>
<div t-foreach="images" t-as="img" class="col-12 col-sm-6 col-md-4 py-3">
<div class="gallery-image gallery-zoom-in-effect rounded">
<img class="img-fluid" t-attf-src="/web/image/theme_prime.s_gallery_#{img}" t-attf-title="Gallery Image #{img}" t-attf-alt="Gallery Image #{img}"/>
</div>
<div class="small mt-3"><t t-out="images[img]['title']"/></div>
<h6 class="mt-1"><t t-out="images[img]['description']"/></h6>
</div>
</div>
</div>
</section>
</template>
<template id="s_gallery_2" name="Gallery - 2">
<section class="s_gallery tp-image-gallery pt32 pb32">
<div class="container">
<div class="row s_col_no_bgcolor">
<div t-foreach="list(range(1, 9))" t-as="number" class="col-6 col-md-4 col-lg-3 py-3">
<t t-set="number" t-value="'%02d' % number"/>
<div class="gallery-image gallery-zoom-in-effect rounded">
<img class="img-fluid" t-attf-src="/web/image/theme_prime.s_gallery_#{number}" t-attf-title="Gallery Image #{number}" t-attf-alt="Gallery Image #{number}"/>
</div>
</div>
</div>
</div>
</section>
</template>
<template id="s_gallery_3" name="Gallery - 3">
<section class="s_gallery tp-image-gallery">
<div class="container-fluid px-0">
<div class="row s_col_no_bgcolor g-0">
<div t-foreach="list(range(1, 13))" t-as="number" class="col-6 col-sm-4 col-md-3 col-lg-2">
<t t-set="number" t-value="'%02d' % number"/>
<div class="gallery-image gallery-zoom-in-effect gallery-overlay-effect position-relative">
<img class="img-fluid" t-attf-src="/web/image/theme_prime.s_gallery_#{number}" t-attf-title="Gallery Image #{number}" t-attf-alt="Gallery Image #{number}"/>
</div>
</div>
</div>
</div>
</section>
</template>
<template id="s_gallery_4" name="Gallery - 4">
<section class="s_gallery tp-image-gallery">
<div class="container-fluid px-0">
<div class="row g-0">
<div t-foreach="list(range(1, 7))" t-as="number" class="col-12 col-md-6 col-lg-4">
<t t-set="number" t-value="'%02d' % number"/>
<div class="gallery-image gallery-text-effect">
<img class="img-fluid" t-attf-src="/web/image/theme_prime.s_gallery_#{number}" t-attf-alt="Gallery Image #{number}"/>
<div class="text-center px-2 py-4 gallery-text-block">
<div class="text-alpha">Fashion card <t t-out="number"/></div>
<p class="mt-2 mb-0">Just adding some random string heresit.</p>
</div>
</div>
</div>
</div>
</div>
</section>
</template>
<template id="s_gallery_5" name="Gallery - 5">
<section class="s_gallery tp-image-gallery pt32 pb32">
<div class="container">
<div class="row s_col_no_bgcolor">
<div t-foreach="list(range(1, 13))" t-as="number" class="col-6 col-sm-4 col-md-3 col-lg-2 py-3">
<t t-set="number" t-value="'%02d' % number"/>
<div class="gallery-image gallery-zoom-out-effect">
<img class="img-fluid" t-attf-src="/web/image/theme_prime.s_gallery_#{number}" t-attf-title="Gallery Image #{number}" t-attf-alt="Gallery Image #{number}"/>
</div>
</div>
</div>
</div>
</section>
</template>
<!-- Assets -->
<record id="theme_prime.s_gallery_1_000_js" model="ir.asset">
<field name="name">Gallery 1 000 JS</field>
<field name="bundle">web.assets_frontend</field>
<field name="path">theme_prime/static/src/snippets/s_gallery_1/000.js</field>
</record>
<record id="theme_prime.s_gallery_1_000_scss" model="ir.asset">
<field name="name">Gallery 1 000 SCSS</field>
<field name="bundle">web.assets_frontend</field>
<field name="path">theme_prime/static/src/snippets/s_gallery_1/000.scss</field>
</record>
</odoo>
+155
View File
@@ -0,0 +1,155 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<template id="s_heading_1" name="Heading - 1">
<section class="s_heading_1 pt16 pb16">
<div class="container">
<div class="row s_col_no_bgcolor s_nb_column_fixed">
<div class="col-12 tp-heading-container text-center tp-line-thickness-normal tp-line-width-normal tp-line-bottom">
<h2>Access wide range of products</h2>
<p class="lead mb-0">Quality products from our shop.</p>
</div>
</div>
</div>
</section>
</template>
<template id="s_heading_2" name="Heading - 2">
<section class="s_heading_2 pt16 pb16">
<div class="container">
<div class="row s_col_no_bgcolor s_nb_column_fixed">
<div class="col-12 tp-heading-container text-center tp-line-bottom">
<h6 class="text-uppercase text-o-color-1 fw-bold mb-3">NEW PRODUCTS EVERY DAY</h6>
<h2 class="text-uppercase fw-bold">EXPLORE GREAT RANGE OF PRODUCTS</h2>
</div>
</div>
</div>
</section>
</template>
<template id="s_heading_3" name="Heading - 3">
<section class="s_heading_3 pt16 pb16">
<div class="container">
<div class="row justify-content-center s_col_no_bgcolor s_nb_column_fixed">
<div class="col-12 col-lg-8 text-center">
<span class="badge text-bg-primary rounded-pill">Discover</span>
<h2 class="mt-3">Featured Products</h2>
<p class="lead">
We add new products every day. Explore our great range of products.
</p>
</div>
</div>
</div>
</section>
</template>
<template id="s_heading_4" name="Heading - 4">
<section class="s_heading_4 pt16 pb16">
<div class="container">
<div class="row justify-content-center s_col_no_bgcolor s_nb_column_fixed">
<div class="col-12 col-lg-8 text-center">
<span class="fa fa-users fa-2x bg-o-color-1 rounded-circle"></span>
<h2 class="mt-3">Our Creative <font class="text-o-color-1">Team</font></h2>
<p class="lead">We are the creative team of theme prime. No one actually read this so let me write any thing here.</p>
</div>
</div>
</div>
</section>
</template>
<template id="s_heading_5" name="Heading - 5">
<section class="s_heading_5 pt16 pb16">
<div class="container">
<div class="row justify-content-center s_col_no_bgcolor s_nb_column_fixed">
<div class="col-12 col-lg-8 text-center">
<h2><font class="text-gradient" style="background-image: linear-gradient(135deg, rgb(255, 204, 51) 0%, rgb(226, 51, 255) 100%);">New Arrivals</font></h2>
<p class="lead">We are the creative team of theme prime. No one actually read this so let me write any thing here.</p>
</div>
</div>
</div>
</section>
</template>
<template id="s_heading_6" name="Heading - 6">
<section class="s_heading_6 pt16 pb16">
<div class="container">
<div class="row s_col_no_bgcolor s_nb_column_fixed">
<div class="col-12">
<h3 class="tp-underline-title pb-3">Your title here</h3>
</div>
</div>
</div>
</section>
</template>
<template id="s_heading_options" inherit_id="website.snippet_options">
<xpath expr="." position="inside">
<div data-selector=".s_heading_1" data-target=".tp-heading-container">
<we-button-group string="Line Position" class="ms-auto">
<we-button data-select-class="tp-line-top">
<i class="fa fa-fw fa-arrow-up"/>
</we-button>
<we-button data-select-class="tp-line-bottom">
<i class="fa fa-fw fa-arrow-down"/>
</we-button>
</we-button-group>
<we-button-group string="Alignment" class="ms-auto">
<we-button data-select-class="text-start">
<i class="fa fa-fw fa-align-left"/>
</we-button>
<we-button data-select-class="text-center">
<i class="fa fa-fw fa-align-center"/>
</we-button>
<we-button data-select-class="text-end">
<i class="fa fa-fw fa-align-right"/>
</we-button>
</we-button-group>
<we-select string="Thickness">
<we-button data-select-class="tp-line-thickness-light">Light</we-button>
<we-button data-select-class="tp-line-thickness-normal">Normal</we-button>
<we-button data-select-class="tp-line-thickness-bold">Bold</we-button>
</we-select>
<we-select string="Width">
<we-button data-select-class="tp-line-width-short">Short</we-button>
<we-button data-select-class="tp-line-width-normal">Normal</we-button>
<we-button data-select-class="tp-line-width-long">Long</we-button>
</we-select>
</div>
<div data-selector=".s_heading_2" data-target=".tp-heading-container">
<we-button-group string="Dot Position" class="ms-auto">
<we-button data-select-class="tp-line-top">
<i class="fa fa-fw fa-arrow-up"/>
</we-button>
<we-button data-select-class="tp-line-bottom">
<i class="fa fa-fw fa-arrow-down"/>
</we-button>
</we-button-group>
<we-button-group string="Alignment" class="ms-auto">
<we-button data-select-class="text-start">
<i class="fa fa-fw fa-align-left"/>
</we-button>
<we-button data-select-class="text-center">
<i class="fa fa-fw fa-align-center"/>
</we-button>
<we-button data-select-class="text-end">
<i class="fa fa-fw fa-align-right"/>
</we-button>
</we-button-group>
</div>
</xpath>
</template>
<!-- Assets -->
<record id="theme_prime.s_heading_1_000_scss" model="ir.asset">
<field name="name">Heading 1 000 SCSS</field>
<field name="bundle">web.assets_frontend</field>
<field name="path">theme_prime/static/src/snippets/s_heading_1/000.scss</field>
</record>
<record id="theme_prime.s_heading_2_000_scss" model="ir.asset">
<field name="name">Heading 2 000 SCSS</field>
<field name="bundle">web.assets_frontend</field>
<field name="path">theme_prime/static/src/snippets/s_heading_2/000.scss</field>
</record>
</odoo>
+514
View File
@@ -0,0 +1,514 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<template id="s_icon_block_1" name="Icon Block - 1">
<section class="s_icon_block_1 pt16 pb16">
<div class="container">
<div class="row">
<div class="col-12 col-lg-4 py-3">
<div class="d-flex">
<div class="flex-shrink-0">
<i class="fa fa-rocket text-o-color-1 rounded-circle me-4 bg-200"/>
</div>
<div class="flex-grow-1">
<h5>Creative ideas</h5>
<p>Orci varius natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus.</p>
</div>
</div>
</div>
<div class="col-12 col-lg-4 py-3">
<div class="d-flex">
<div class="flex-shrink-0">
<i class="fa fa-magic text-o-color-1 rounded-circle me-4 bg-200"/>
</div>
<div class="flex-grow-1">
<h5>Excellent features</h5>
<p>Suspendisse potenti. Cras a dui et nisl egestas ornare eu quis odio. Sed bibendum in ante.</p>
</div>
</div>
</div>
<div class="col-12 col-lg-4 py-3">
<div class="d-flex">
<div class="flex-shrink-0">
<i class="fa fa-laptop text-o-color-1 rounded-circle me-4 bg-200"/>
</div>
<div class="flex-grow-1">
<h5>Fully responsive</h5>
<p>In hac habitasse platea dictumst. Praesent cursus congue felis, nec pellentesque nulla ornare.</p>
</div>
</div>
</div>
</div>
</div>
</section>
</template>
<template id="s_icon_block_2" name="Icon Block - 2">
<section class="s_icon_block_2 pt16 pb16">
<div class="container">
<div class="row">
<div class="col-12 col-lg-4 py-3 text-center">
<i class="fa fa-thumbs-up fa-3x text-o-color-1"/>
<h5 class="mt-3">Best Quality</h5>
<p>Orci varius natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus.</p>
</div>
<div class="col-12 col-lg-4 py-3 text-center">
<i class="fa fa-tag fa-3x text-o-color-1"/>
<h5 class="mt-3">100% Genuine</h5>
<p>Suspendisse potenti. Cras a dui et nisl egestas ornare eu quis odio. Sed bibendum in ante.</p>
</div>
<div class="col-12 col-lg-4 py-3 text-center">
<i class="fa fa-rocket fa-3x text-o-color-1"/>
<h5 class="mt-3">Trending Collection</h5>
<p>In hac habitasse platea dictumst. Praesent cursus congue felis, nec pellentesque nulla.</p>
</div>
</div>
</div>
</section>
</template>
<template id="s_icon_block_3" name="Icon Block - 3">
<section class="s_icon_block_3 pt16 pb16">
<div class="container">
<div class="row">
<div class="col-12 col-lg-4 py-3">
<div class="d-flex">
<div class="flex-shrink-0">
<i class="fa fa-rocket fa-2x me-4 text-o-color-1"/>
</div>
<div class="flex-grow-1">
<h5>Creative ideas</h5>
<p>Orci varius natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Aenean pretium ac enim eget dignissim.</p>
<a href="#">Learn More</a>
</div>
</div>
</div>
<div class="col-12 col-lg-4 py-3">
<div class="d-flex">
<div class="flex-shrink-0">
<i class="fa fa-magic fa-2x me-4 text-o-color-1"/>
</div>
<div class="flex-grow-1">
<h5>Excellent features</h5>
<p>Suspendisse potenti. Cras a dui et nisl egestas ornare eu quis odio. Sed bibendum in ante vel accumsan. Praesent scelerisque.</p>
<a href="#">Learn More</a>
</div>
</div>
</div>
<div class="col-12 col-lg-4 py-3">
<div class="d-flex">
<div class="flex-shrink-0">
<i class="fa fa-laptop fa-2x me-4 text-o-color-1"/>
</div>
<div class="flex-grow-1">
<h5>Fully responsive</h5>
<p>In hac habitasse platea dictumst. Praesent cursus congue felis, nec pellentesque nulla ornare sed. Aliquam eget aliquam urna.</p>
<a href="#">Learn More</a>
</div>
</div>
</div>
<div class="col-12 col-lg-4 py-3">
<div class="d-flex">
<div class="flex-shrink-0">
<i class="fa fa-book fa-2x me-4 text-o-color-1"/>
</div>
<div class="flex-grow-1">
<h5>Extensive documentation</h5>
<p>Aenean varius ligula vel augue condimentum scelerisque. In a urna at tortor tincidunt gravida sit amet vel eros. Integer et.</p>
<a href="#">Learn More</a>
</div>
</div>
</div>
<div class="col-12 col-lg-4 py-3">
<div class="d-flex">
<div class="flex-shrink-0">
<i class="fa fa-leaf fa-2x me-4 text-o-color-1"/>
</div>
<div class="flex-grow-1">
<h5>Modern design</h5>
<p>Proin purus dui, feugiat id ipsum eu, varius ornare ex. Mauris elit dolor, consectetur ac accumsan eu, commodo et odio eget.</p>
<a href="#">Learn More</a>
</div>
</div>
</div>
<div class="col-12 col-lg-4 py-3">
<div class="d-flex">
<div class="flex-shrink-0">
<i class="fa fa-code fa-2x me-4 text-o-color-1"/>
</div>
<div class="flex-grow-1">
<h5>Clean code</h5>
<p>Nam blandit arcu vel mi mollis faucibus. Nam justo velit, maximus viverra volutpat eu, hendrerit et velit. Pellentesque tincidunt.</p>
<a href="#">Learn More</a>
</div>
</div>
</div>
</div>
</div>
</section>
</template>
<template id="s_icon_block_4" name="Icon Block - 4">
<section class="s_icon_block_4 pt16 pb16">
<div class="container">
<div class="row">
<div class="col-12 col-lg-4 py-3">
<i class="fa fa-rocket rounded bg-200"/>
<h5 class="mt-4">Creative ideas</h5>
<p>Orci varius natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus.</p>
</div>
<div class="col-12 col-lg-4 py-3">
<i class="fa fa-magic rounded bg-200"/>
<h5 class="mt-4">Excellent features</h5>
<p>Suspendisse potenti. Cras a dui et nisl egestas ornare eu quis odio. Sed bibendum in ante vel accumsan.</p>
</div>
<div class="col-12 col-lg-4 py-3">
<i class="fa fa-laptop rounded bg-200"/>
<h5 class="mt-4">Fully responsive</h5>
<p>In hac habitasse platea dictumst. Praesent cursus congue felis, nec pellentesque nulla ornare sed.</p>
</div>
<div class="col-12 col-lg-4 py-3">
<i class="fa fa-book rounded bg-200"/>
<h5 class="mt-4">Extensive documentation</h5>
<p>Aenean varius ligula vel augue condimentum scelerisque. In a urna at tortor tincidunt gravida sit.</p>
</div>
<div class="col-12 col-lg-4 py-3">
<i class="fa fa-leaf rounded bg-200"/>
<h5 class="mt-4">Modern design</h5>
<p>Proin purus dui, feugiat id ipsum eu, varius ornare ex. Mauris elit dolor, consectetur ac accumsan eu.</p>
</div>
<div class="col-12 col-lg-4 py-3">
<i class="fa fa-code rounded bg-200"/>
<h5 class="mt-4">Clean code</h5>
<p>Nam blandit arcu vel mi mollis faucibus. Nam justo velit, maximus viverra volutpat eu, hendrerit et velit.</p>
</div>
</div>
</div>
</section>
</template>
<template id="s_icon_block_5" name="Icon Block - 5">
<section class="s_icon_block_5 pt16 pb16">
<div class="container">
<div class="row">
<div class="col-12 col-lg-4 py-3 text-center">
<span class="fa fa-phone fa-3x text-o-color-1"/>
<h6 class="mt-3">+91 70466 01320</h6>
</div>
<div class="col-12 col-lg-4 py-3 text-center">
<span class="fa fa-map-marker fa-3x text-o-color-1"/>
<h6 class="mt-3">New York, United States</h6>
</div>
<div class="col-12 col-lg-4 py-3 text-center">
<span class="fa fa-envelope-o fa-3x text-o-color-1"/>
<h6 class="mt-3">info@droggol.com</h6>
</div>
</div>
</div>
</section>
</template>
<template id="s_icon_block_6" name="Icon Block - 6">
<section class="s_icon_block_6 pt16 pb16">
<div class="container">
<div class="row">
<div class="col-12 col-md-4 py-3">
<div class="d-flex">
<div class="flex-shrink-0">
<span class="fa fa-phone rounded-circle text-o-color-1 me-3"/>
</div>
<div class="flex-grow-1">
<h6 class="mb-1">Phone Number</h6>
<p class="mb-0">+91 70466 01320</p>
</div>
</div>
</div>
<div class="col-12 col-md-4 py-3">
<div class="d-flex">
<div class="flex-shrink-0">
<span class="fa fa-map-marker rounded-circle text-o-color-1 me-3"/>
</div>
<div class="flex-grow-1">
<h6 class="mb-1">Address</h6>
<p class="mb-0">New York, United States</p>
</div>
</div>
</div>
<div class="col-12 col-md-4 py-3">
<div class="d-flex">
<div class="flex-shrink-0">
<span class="fa fa-envelope-o rounded-circle text-o-color-1 me-3"/>
</div>
<div class="flex-grow-1">
<h6 class="mb-1">Email</h6>
<p class="mb-0">info@droggol.com</p>
</div>
</div>
</div>
</div>
</div>
</section>
</template>
<template id="s_icon_block_7" name="Icon Block - 7">
<section class="s_icon_block_7 pt16 pb16">
<div class="container">
<div class="row s_col_no_bgcolor s_nb_column_fixed">
<div class="col-12 col-md-6 col-lg-4 py-3">
<div class="card tp-editor-bg-color-n-shadow py-4 h-100">
<div class="p-4 text-center">
<span class="fa fa-rocket fa-2x rounded-circle mb-4 bg-o-color-1"/>
<h5>Creative ideas</h5>
<p>Orci varius natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Orci varius natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus.</p>
<a href="#" class="btn btn-link">Learn More</a>
</div>
</div>
</div>
<div class="col-12 col-md-6 col-lg-4 py-3">
<div class="card tp-editor-bg-color-n-shadow py-4 h-100">
<div class="p-4 text-center">
<span class="fa fa-magic fa-2x rounded-circle mb-4 bg-o-color-1"/>
<h5>Excellent features</h5>
<p>Suspendisse potenti. Cras a dui et nisl egestas ornare eu quis odio. Sed bibendum in ante. Orci varius natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus.</p>
<a href="#" class="btn btn-link">Learn More</a>
</div>
</div>
</div>
<div class="col-12 col-md-6 col-lg-4 py-3">
<div class="card tp-editor-bg-color-n-shadow py-4 h-100">
<div class="p-4 text-center">
<span class="fa fa-laptop fa-2x rounded-circle mb-4 bg-o-color-1"/>
<h5>Fully responsive</h5>
<p>In hac habitasse platea dictumst. Praesent cursus congue felis, nec pellentesque nulla ornare sed. Orci varius natoque penatibus et magnis dis parturient montes, nascetur mus.</p>
<a href="#" class="btn btn-link">Learn More</a>
</div>
</div>
</div>
</div>
</div>
</section>
</template>
<template id="s_icon_block_8" name="Icon Block - 8">
<section class="s_icon_block_8 pt16 pb16">
<div class="container">
<div class="row s_col_no_bgcolor s_nb_column_fixed">
<div class="col-12 col-md-6 col-lg-4 py-3">
<div class="card tp-editor-bg-color-n-shadow p-4 h-100">
<span class="fa fa-rocket fa-3x text-o-color-1 mb-4"/>
<h5>Creative ideas</h5>
<p>Orci varius natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Orci varius natoque penatibus et magnis. nascetur ridiculus mus.</p>
<a href="#">Learn More</a>
</div>
</div>
<div class="col-12 col-md-6 col-lg-4 py-3">
<div class="card tp-editor-bg-color-n-shadow p-4 h-100">
<span class="fa fa-magic fa-3x text-o-color-1 mb-4"/>
<h5>Excellent features</h5>
<p>Suspendisse potenti. Cras a dui et nisl egestas ornare eu quis odio. Sed bibendum in ante. Suspendisse potenti. Cras a dui et nisl. Sed bibendum in ante.</p>
<a href="#">Learn More</a>
</div>
</div>
<div class="col-12 col-md-6 col-lg-4 py-3">
<div class="card tp-editor-bg-color-n-shadow p-4 h-100">
<span class="fa fa-laptop fa-3x text-o-color-1 mb-4"/>
<h5>Fully responsive</h5>
<p>In hac habitasse platea dictumst. Praesent cursus congue felis, nec pellentesque nulla ornare sed. In hac habitasse platea dictumst. pellentesque nulla sed.</p>
<a href="#">Learn More</a>
</div>
</div>
</div>
</div>
</section>
</template>
<template id="s_icon_block_9" name="Icon Block - 9">
<section class="s_icon_block_9 pt32 pb32">
<div class="container">
<div class="row justify-content-center s_nb_column_fixed">
<div class="col-12 col-md-4 py-3 mx-auto tp-icon-block">
<div class="d-flex px-md-2 px-lg-5">
<div class="flex-shrink-0">
<span class="fa fa-rocket fa-2x me-3"/>
</div>
<div class="flex-grow-1">
<h6 class="mb-1">FREE SHIPPING</h6>
<p class="mb-0">In 2-3 Days</p>
</div>
</div>
</div>
<div class="col-12 col-md-4 py-3 mx-auto tp-icon-block">
<div class="d-flex px-md-2 px-lg-5">
<div class="flex-shrink-0">
<span class="fa fa-refresh fa-2x me-3"/>
</div>
<div class="flex-grow-1">
<h6 class="mb-1">FREE RETURNS</h6>
<p class="mb-0">No Questions Asked</p>
</div>
</div>
</div>
<div class="col-12 col-md-4 py-3 mx-auto tp-icon-block">
<div class="d-flex px-md-2 px-lg-5">
<div class="flex-shrink-0">
<span class="fa fa-phone fa-2x me-3"/>
</div>
<div class="flex-grow-1">
<h6 class="mb-1">FREE SUPPORT</h6>
<p class="mb-0">30 Days Support</p>
</div>
</div>
</div>
</div>
</div>
</section>
</template>
<template id="s_icon_block_10" name="Icon Block - 10">
<section class="s_icon_block_10 pt16 pb16">
<div class="container">
<div class="row justify-content-center border s_nb_column_fixed">
<div class="col-12 col-sm-6 col-xl-2 p-3 tp-icon-block o_cc o_cc1">
<div class="d-flex align-items-center tp-icon-block-icon">
<div class="flex-shrink-0">
<span class="fa fa-truck fa-2x text-o-color-1 me-3"/>
</div>
<div class="flex-grow-1">
<h6 class="mb-1">Free Delivery</h6>
<p class="mb-0">All oders over $100</p>
</div>
</div>
</div>
<div class="col-12 col-sm-6 col-xl-2 p-3 tp-icon-block o_cc o_cc1">
<div class="d-flex align-items-center tp-icon-block-icon">
<div class="flex-shrink-0">
<span class="fa fa-credit-card fa-2x text-o-color-1 me-3"/>
</div>
<div class="flex-grow-1">
<h6 class="mb-1">Safe Payment</h6>
<p class="mb-0">100% secure payment</p>
</div>
</div>
</div>
<div class="col-12 col-sm-6 col-xl-2 p-3 tp-icon-block o_cc o_cc1">
<div class="d-flex align-items-center tp-icon-block-icon">
<div class="flex-shrink-0">
<span class="fa fa-phone fa-2x text-o-color-1 me-3"/>
</div>
<div class="flex-grow-1">
<h6 class="mb-1">Help Center</h6>
<p class="mb-0">24 X 7 support</p>
</div>
</div>
</div>
<div class="col-12 col-sm-6 col-xl-2 p-3 tp-icon-block o_cc o_cc1">
<div class="d-flex align-items-center tp-icon-block-icon">
<div class="flex-shrink-0">
<span class="fa fa-undo fa-2x text-o-color-1 me-3"/>
</div>
<div class="flex-grow-1">
<h6 class="mb-1">Free Returns</h6>
<p class="mb-0">No Questions Asked</p>
</div>
</div>
</div>
<div class="col-12 col-sm-6 col-xl-2 p-3 tp-icon-block o_cc o_cc1">
<div class="d-flex align-items-center tp-icon-block-icon">
<div class="flex-shrink-0">
<span class="fa fa-rocket fa-2x text-o-color-1 me-3"/>
</div>
<div class="flex-grow-1">
<h6 class="mb-1">Fast Shipping</h6>
<p class="mb-0">In 2-3 Days</p>
</div>
</div>
</div>
<div class="col-12 col-sm-6 col-xl-2 p-3 tp-icon-block o_cc o_cc1">
<div class="d-flex align-items-center tp-icon-block-icon">
<div class="flex-shrink-0">
<span class="fa fa-smile-o fa-2x text-o-color-1 me-3"/>
</div>
<div class="flex-grow-1">
<h6 class="mb-1">Happy Customers</h6>
<p class="mb-0">12k+ Customers</p>
</div>
</div>
</div>
</div>
</div>
</section>
</template>
<template id="s_icon_block_11" name="Icon Block - 11">
<section class="s_icon_block_11 pt16 pb16">
<div class="container">
<div class="row justify-content-center p-3 s_nb_column_fixed">
<div class="col-12 col-sm-6 col-lg-3 tp-icon-block text-center">
<span class="fa fa-2x fa-rocket rounded-circle bg-o-color-1 m-3"></span>
<h5>Free Delivery</h5>
<p>All oders over $100</p>
</div>
<div class="col-12 col-sm-6 col-lg-3 tp-icon-block text-center">
<span class="fa fa-2x fa-thumbs-up rounded-circle bg-o-color-1 m-3"></span>
<h5>Quality Products</h5>
<p>100% Genuine product</p>
</div>
<div class="col-12 col-sm-6 col-lg-3 tp-icon-block text-center">
<span class="fa fa-2x fa-phone rounded-circle bg-o-color-1 m-3"></span>
<h5>Customer Support</h5>
<p>Friendly 24/7 customer support</p>
</div>
<div class="col-12 col-sm-6 col-lg-3 tp-icon-block text-center">
<span class="fa fa-2x fa-undo rounded-circle bg-o-color-1 m-3"></span>
<h5>Easy Returns</h5>
<p>No Questions Asked</p>
</div>
</div>
</div>
</section>
</template>
<template id="s_icon_block_12" name="Icon Block - 12">
<section class="s_icon_block_12 bg-o-color-1">
<div class="container">
<div class="row s_nb_column_fixed text-lg-center">
<div class="col-12 col-lg-4">
<h6 class="my-2">
<i class="fa fa-exchange me-2"></i> Free returns
</h6>
</div>
<div class="col-12 col-lg-4">
<h6 class="my-2">
<i class="fa fa-truck me-2"></i> Free Shipping for order over $200
</h6>
</div>
<div class="col-12 col-lg-4">
<h6 class="my-2">
<i class="fa fa-life-ring me-2"></i> Free support
</h6>
</div>
</div>
</div>
</section>
</template>
<!-- Assets -->
<record id="theme_prime.s_icon_block_9_000_scss" model="ir.asset">
<field name="name">Icon Block 9 000 SCSS</field>
<field name="bundle">web.assets_frontend</field>
<field name="path">theme_prime/static/src/snippets/s_icon_block_9/000.scss</field>
</record>
<record id="theme_prime.s_icon_block_10_000_scss" model="ir.asset">
<field name="name">Icon Block 10 000 SCSS</field>
<field name="bundle">web.assets_frontend</field>
<field name="path">theme_prime/static/src/snippets/s_icon_block_10/000.scss</field>
</record>
<record id="theme_prime.s_icon_block_11_000_scss" model="ir.asset">
<field name="name">Icon Block 11 000 SCSS</field>
<field name="bundle">web.assets_frontend</field>
<field name="path">theme_prime/static/src/snippets/s_icon_block_11/000.scss</field>
</record>
</odoo>
+306
View File
@@ -0,0 +1,306 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<template id="s_info_block_1" name="Info Block - 1">
<section class="s_info_block_1 tp-editor-snippet-valign">
<div class="container-fluid px-0">
<div class="row g-0 s_nb_column_fixed align-items-center">
<div class="col-lg-4 offset-lg-1 p-4">
<h2>Proin est justo, euismod sit.</h2>
<p>Suspendisse est nunc, laoreet eget odio id, finibus convallis ipsum. Praesent eu nisi egestas, gravida dolor eget, suscipit lectus. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Nulla tincidunt eu.</p>
<a href="#" class="btn btn-primary mt-2">Shop Now</a>
</div>
<div class="col-lg-6 offset-lg-1">
<img src="/web/image/theme_prime.s_info_block_1_1" class="img img-fluid" alt="Info Block Image 01"/>
</div>
</div>
</div>
</section>
</template>
<template id="s_info_block_2" name="Info Block - 2">
<section class="s_info_block_2 tp-editor-snippet-valign">
<div class="container-fluid px-0">
<div class="row g-0 s_nb_column_fixed align-items-center">
<div class="col-lg-6">
<img src="/web/image/theme_prime.s_info_block_2_1" class="img img-fluid" alt="Info Block Image 01"/>
</div>
<div class="col-lg-4 offset-lg-1 p-4">
<h2>Cras in feugiat eros</h2>
<p>Suspendisse est nunc, laoreet eget odio id, finibus convallis ipsum. Praesent eu nisi egestas.</p>
<p>Vestibulum id laoreet sapien. Aliquam porttitor neque ut urna efficitur, eget tincidunt diam convallis. Vestibulum molestie nunc consectetur cursus tincidunt. Aenean interdum justo a tellus condimentum gravida.</p>
<a href="#" class="btn btn-primary mt-2">Shop Now</a>
</div>
</div>
</div>
</section>
</template>
<template id="s_info_block_3" name="Info Block - 3">
<section class="s_info_block_3 tp-editor-snippet-valign pt16 pb16">
<div class="container-fluid">
<div class="row align-items-center s_nb_column_fixed">
<div class="col-6 col-lg-3 mb-4 mb-lg-0">
<div class="tp-animation-scale">
<img src="/web/image/theme_prime.s_info_block_3_1" class="img img-fluid" alt="Info Block Image 01"/>
</div>
</div>
<div class="col-6 col-lg-3 mb-4 mb-lg-0">
<div class="tp-animation-scale">
<img src="/web/image/theme_prime.s_info_block_3_2" class="img img-fluid" alt="Info Block Image 02"/>
</div>
</div>
<div class="col-12 offset-lg-1 col-lg-4">
<h5>New Arrivals</h5>
<h2>Coming Soon</h2>
<p>Vestibulum id laoreet sapien. Aliquam porttitor neque ut urna efficitur, eget tincidunt diam convallis. Vestibulum molestie nunc consectetur cursus tincidunt. Aenean interdum justo a tellus condimentum gravida.</p>
<a href="#" class="btn btn-primary mt-2">Shop Now</a>
</div>
</div>
</div>
</section>
</template>
<template id="s_info_block_4" name="Info Block - 4">
<section class="s_info_block_4 pt32 pb32">
<div class="container">
<div class="row s_col_no_bgcolor s_nb_column_fixed">
<div class="col-12">
<h5 class="text-o-color-1" style="text-align: center;">New Arrivals</h5>
<h2 style="text-align: center;">Spring Collections</h2>
<p style="text-align: center;">
Vestibulum id laoreet sapien. Aliquam porttitor neque ut urna efficitur, eget tincidunt diam convallis.<br/>
interdum justo a tellus condimentum gretur cursus tincidunt. Aenean interdum justo a tellus condimentum gravida.<br/>
cursus id laoreet sapien. Aliquam porttitor neque ut urna efficitur, eget tincidunt diam convallis.<br/>
tellus justo a tellus condimentum gretur cursus tincidunt. Aenean interdum justo a tellus condimentum gravida.
</p>
<div style="text-align: center;">
<a href="#" class="btn btn-primary mt-2">Shop Now</a>
</div>
</div>
</div>
<div class="row justify-content-center s_col_no_bgcolor s_nb_column_fixed mt-4">
<div class="col-12 col-lg-3 mb-2 mb-lg-0">
<img src="/web/image/theme_prime.s_info_block_4_1" class="img img-fluid" alt="Info Block Image 01"/>
</div>
<div class="col-12 col-lg-3 mb-2 mb-lg-0">
<img src="/web/image/theme_prime.s_info_block_4_2" class="img img-fluid" alt="Info Block Image 02"/>
</div>
<div class="col-12 col-lg-3 mb-2 mb-lg-0">
<img src="/web/image/theme_prime.s_info_block_4_3" class="img img-fluid" alt="Info Block Image 03"/>
</div>
</div>
</div>
</section>
</template>
<template id="s_info_block_5" name="Info Block - 5">
<section class="s_info_block_5 pt16 pb16">
<div class="container-fluid">
<div class="row align-items-center s_col_no_bgcolor s_nb_column_fixed">
<div class="col-6 col-lg-3 order-0 order-lg-0 mb-4 mb-lg-0">
<img src="/web/image/theme_prime.s_info_block_5_1" class="img img-fluid" alt="Info Block Image 01"/>
</div>
<div class="col-12 col-sm-12 offset-lg-1 col-lg-4 order-1 order-lg-1">
<h5 class="text-center">New Arrivals</h5>
<h1 class="text-center">Trendy Collection</h1>
<p class="text-center">Vestibulum id laoreet sapien. Aliquam porttitor neque ut urna efficitur, eget tincidunt diam convallis. Vestibulum molestie nunc consectetur cursus tincidunt. Aenean interdum justo a tellus condimentum gravida.</p>
<div class="text-center">
<a href="#" class="btn btn-primary mt-2">Shop Now</a>
</div>
</div>
<div class="col-6 col-lg-3 offset-lg-1 order-0 order-lg-2 mb-4 mb-lg-0">
<img src="/web/image/theme_prime.s_info_block_5_2" class="img img-fluid" alt="Info Block Image 02"/>
</div>
</div>
</div>
</section>
</template>
<template id="s_info_block_6" name="Info Block - 6">
<section class="s_info_block_6 pt16 pb16 tp-editor-snippet-valign">
<div class="container-fluid">
<div class="row align-items-center s_col_no_bgcolor s_nb_column_fixed">
<div class="col-12 offset-lg-1 col-lg-5 order-1">
<h5>On the Ear</h5>
<h1>Bluetooth Headset</h1>
<p>Vestibulum id laoreet sapien. Aliquam porttitor neque ut urna efficitur, eget tincidunt diam convallis. Vestibulum molestie nunc consectetur cursus tincidunt. Aenean interdum justo a tellus condimentum gravida.</p>
<div class="row s_col_no_bgcolor s_nb_column_fixed">
<div class="col-sm-4">
<p class="mb-2 tp-editor-copy-n-move" data-name="Line">
<i class="fa fa-check-circle-o"/> 24x7 customer support
</p>
<p class="mb-2 tp-editor-copy-n-move" data-name="Line">
<i class="fa fa-check-circle-o"/> Cash on delivery
</p>
<p class="mb-2 tp-editor-copy-n-move" data-name="Line">
<i class="fa fa-check-circle-o"/> 30 days replacement
</p>
<p class="mb-2 tp-editor-copy-n-move" data-name="Line">
<i class="fa fa-check-circle-o"/> Fast delivery
</p>
</div>
<div class="col-sm-4">
<p class="mb-2 tp-editor-copy-n-move" data-name="Line">
<i class="fa fa-check-circle-o"/> 12k+ happy customers
</p>
<p class="mb-2 tp-editor-copy-n-move" data-name="Line">
<i class="fa fa-check-circle-o"/> 100% secure payment
</p>
<p class="mb-2 tp-editor-copy-n-move" data-name="Line">
<i class="fa fa-check-circle-o"/> Quality products
</p>
<p class="mb-2 tp-editor-copy-n-move" data-name="Line">
<i class="fa fa-check-circle-o"/> Easy returns
</p>
</div>
</div>
<a href="#" class="btn btn-primary mt-2">Shop Now</a>
</div>
<div class="col-12 col-lg-6 mb-4 mb-lg-0 order-0 order-lg-2">
<img src="/web/image/theme_prime.s_info_block_6_1" class="img img-fluid mx-auto" alt="Info Block Image 01"/>
</div>
</div>
</div>
</section>
</template>
<template id="s_info_block_7" name="Info Block - 7">
<section class="s_info_block_7 parallax s_parallax_is_fixed pt96 pb96 bg-black-50 s_parallax_no_overflow_hidden oe_img_bg o_bg_img_center" data-scroll-background-ratio="1" style="background-image: url('/web/image/theme_prime.s_info_block_7_1'); background-position: 50% 0;">
<div class="container">
<div class="row s_col_no_bgcolor s_nb_column_fixed">
<div class="col-lg-7 align-self-center order-lg-1 order-2 p-4">
<h2 class="h1 mb-4">Premium Collection</h2>
<p class="lead">
We are the creative team of theme prime. No one actually read this so let me write any thing here until it paragraph breaks into to multiple lines. Thanks for reading this.
</p>
<div class="row s_col_no_bgcolor s_nb_column_fixed">
<div class="col-6 col-md-4">
<p class="mb-2 tp-editor-copy-n-move" data-name="Line">
<i class="fa fa-check-circle-o"/> 24x7 customer support
</p>
<p class="mb-2 tp-editor-copy-n-move" data-name="Line">
<i class="fa fa-check-circle-o"/> Cash on delivery
</p>
<p class="mb-2 tp-editor-copy-n-move" data-name="Line">
<i class="fa fa-check-circle-o"/> 30 days replacement
</p>
<p class="mb-2 tp-editor-copy-n-move" data-name="Line">
<i class="fa fa-check-circle-o"/> Fast delivery
</p>
</div>
<div class="col-6 col-md-4">
<p class="mb-2 tp-editor-copy-n-move" data-name="Line">
<i class="fa fa-check-circle-o"/> 12k+ happy customers
</p>
<p class="mb-2 tp-editor-copy-n-move" data-name="Line">
<i class="fa fa-check-circle-o"/> 100% secure payment
</p>
<p class="mb-2 tp-editor-copy-n-move" data-name="Line">
<i class="fa fa-check-circle-o"/> Quality products
</p>
<p class="mb-2 tp-editor-copy-n-move" data-name="Line">
<i class="fa fa-check-circle-o"/> Easy returns
</p>
</div>
</div>
<a href="#" class="btn btn-primary mt-2">Shop Now</a>
</div>
<div class="col-lg-5 position-relative my-4 order-1 order-lg-2">
<div class="d-flex tp-offer-block h-100 align-items-center justify-content-center">
<div class="tp-offer-label-lg">50</div>
<div class="mt-4">
<span class="tp-offer-label-md">%</span>
<span class="d-block text-uppercase tp-offer-label-sm">off</span>
</div>
</div>
<div class="rounded-circle o_colored_level o_cc o_cc4 tp-badge-container tp-editor-bg-color-n-shadow">
<div class="tp-badge text-center">
<div class="fw-bold">NEW</div>
<div>Products</div>
</div>
</div>
</div>
</div>
</div>
</section>
</template>
<template id="s_info_block_8" name="Info Block - 8">
<section class="s_info_block_8 pt16 pb16">
<div class="container">
<div class="row align-items-center s_col_no_bgcolor s_nb_column_fixed">
<div class="col-12 col-md-4">
<div class="d-flex align-items-center my-4 tp-editor-copy-n-move">
<div class="flex-grow-1">
<h5 style="text-align: right;">Free Delivery</h5>
<p style="text-align: right;">All the lorem ipsum generators on the Internet<br/> tend to repeat predefined chunks as necessary.</p>
</div>
<div class="flex-shrink-0">
<span class="fa fa-truck fa-3x text-o-color-1 ms-3"/>
</div>
</div>
<div class="d-flex align-items-center my-4 tp-editor-copy-n-move">
<div class="flex-grow-1">
<h5 style="text-align: right;">30 Days Return</h5>
<p style="text-align: right;">Consectetur, from a Lorem Ipsum passage, and<br/> going through the cites of the word in classical.</p>
</div>
<div class="flex-shrink-0">
<span class="fa fa-refresh fa-3x text-o-color-1 ms-3"/>
</div>
</div>
<div class="d-flex align-items-center my-4 tp-editor-copy-n-move">
<div class="flex-grow-1">
<h5 style="text-align: right;">Genuine Product</h5>
<p style="text-align: right;">Many desktop publishing packages and web<br/> page editors now use lorem ipsum as their.</p>
</div>
<div class="flex-shrink-0">
<span class="fa fa-magic fa-3x text-o-color-1 ms-3"/>
</div>
</div>
</div>
<div class="col-12 col-md-4">
<img src="/web/image/theme_prime.s_info_block_8_1" class="img img-fluid mx-auto" alt="Info Block Image 01"/>
</div>
<div class="col-12 col-md-4">
<div class="d-flex align-items-center my-4 tp-editor-copy-n-move">
<div class="flex-shrink-0">
<span class="fa fa-phone fa-3x text-o-color-1 me-3"/>
</div>
<div class="flex-grow-1">
<h5>24X7 Support</h5>
<p>All the lorem ipsum generators on the Internet<br/> tend to repeat predefined chunks as necessary.</p>
</div>
</div>
<div class="d-flex align-items-center my-4 tp-editor-copy-n-move">
<div class="flex-shrink-0">
<span class="fa fa-rocket fa-3x text-o-color-1 me-3"/>
</div>
<div class="flex-grow-1">
<h5>Fast Service</h5>
<p>Consectetur, from a Lorem Ipsum passage, and<br/> going through the cites of the word in classical.</p>
</div>
</div>
<div class="d-flex align-items-center my-4 tp-editor-copy-n-move">
<div class="flex-shrink-0">
<span class="fa fa-thumbs-o-up fa-3x text-o-color-1 me-3"/>
</div>
<div class="flex-grow-1">
<h5>Customer Satisfaction</h5>
<p>Many desktop publishing packages and web<br/> page editors now use lorem ipsum as their.</p>
</div>
</div>
</div>
</div>
</div>
</section>
</template>
<!-- Assets -->
<record id="theme_prime.s_info_block_7_000_scss" model="ir.asset">
<field name="name">Info Block 7 000 SCSS</field>
<field name="bundle">web.assets_frontend</field>
<field name="path">theme_prime/static/src/snippets/s_info_block_7/000.scss</field>
</record>
</odoo>
+560
View File
@@ -0,0 +1,560 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<template id="s_pricing_1" name="Pricing - 1">
<section class="s_pricing_1 pb16 pt16">
<div class="container">
<div class="row s_col_no_bgcolor">
<div class="col-md-6 col-lg-3 py-3">
<div class="card tp-editor-bg-color-n-shadow h-100">
<img src="/web/image/theme_prime.s_pricing_01" class="card-img-top" alt="Pricing Image 01"/>
<div class="p-4">
<h5 class="mt-4 text-center">Beginner</h5>
<p class="mt-4 text-center">Morbi tincidunt ultrices.</p>
<h2 class="my-4 text-center">$9.99</h2>
<ul class="list-group list-group-flush mt-4">
<li class="list-group-item tp-editor-copy-n-move p-1 border-0 bg-transparent" data-name="Line">
<span class="p-1 fa fa-check"/> Cras justo odio
</li>
<li class="list-group-item tp-editor-copy-n-move p-1 border-0 bg-transparent" data-name="Line">
<span class="p-1 fa fa-check"/> Dapibus ac facilisis
</li>
<li class="list-group-item tp-editor-copy-n-move p-1 border-0 bg-transparent" data-name="Line">
<span class="p-1 fa fa-check"/> Vestibulum at eros
</li>
<li class="list-group-item tp-editor-copy-n-move p-1 border-0 bg-transparent" data-name="Line">
<span class="p-1 fa fa-check"/> Cras justo odio
</li>
<li class="list-group-item tp-editor-copy-n-move p-1 border-0 bg-transparent" data-name="Line">
<span class="p-1 fa fa-times"/> Dapibus ac facilisis
</li>
<li class="list-group-item tp-editor-copy-n-move p-1 border-0 bg-transparent" data-name="Line">
<span class="p-1 fa fa-times"/> Vestibulum at eros
</li>
<li class="list-group-item tp-editor-copy-n-move p-1 border-0 bg-transparent" data-name="Line">
<span class="p-1 fa fa-times"/> Cras justo odio
</li>
</ul>
<a href="#" class="btn btn-primary w-100 mt-3">Order Now</a>
</div>
</div>
</div>
<div class="col-md-6 col-lg-3 py-3">
<div class="card tp-editor-bg-color-n-shadow h-100">
<img src="/web/image/theme_prime.s_pricing_02" class="card-img-top" alt="Pricing Image 02"/>
<div class="p-4">
<h5 class="mt-4 text-center">Professional</h5>
<p class="mt-4 text-center">Suspendisse egestas ipsum eu.</p>
<h2 class="my-4 text-center">$20.50</h2>
<ul class="list-group list-group-flush mt-4">
<li class="list-group-item tp-editor-copy-n-move p-1 border-0 bg-transparent" data-name="Line">
<span class="p-1 fa fa-check"/> Cras justo odio
</li>
<li class="list-group-item tp-editor-copy-n-move p-1 border-0 bg-transparent" data-name="Line">
<span class="p-1 fa fa-check"/> Dapibus ac facilisis
</li>
<li class="list-group-item tp-editor-copy-n-move p-1 border-0 bg-transparent" data-name="Line">
<span class="p-1 fa fa-check"/> Vestibulum at eros
</li>
<li class="list-group-item tp-editor-copy-n-move p-1 border-0 bg-transparent" data-name="Line">
<span class="p-1 fa fa-check"/> Cras justo odio
</li>
<li class="list-group-item tp-editor-copy-n-move p-1 border-0 bg-transparent" data-name="Line">
<span class="p-1 fa fa-check"/> Dapibus ac facilisis
</li>
<li class="list-group-item tp-editor-copy-n-move p-1 border-0 bg-transparent" data-name="Line">
<span class="p-1 fa fa-times"/> Vestibulum at eros
</li>
<li class="list-group-item tp-editor-copy-n-move p-1 border-0 bg-transparent" data-name="Line">
<span class="p-1 fa fa-times"/> Cras justo odio
</li>
</ul>
<a href="#" class="btn btn-primary w-100 mt-3">Order Now</a>
</div>
</div>
</div>
<div class="col-md-6 col-lg-3 py-3">
<div class="card tp-editor-bg-color-n-shadow h-100">
<img src="/web/image/theme_prime.s_pricing_03" class="card-img-top" alt="Pricing Image 03"/>
<div class="p-4">
<h5 class="mt-4 text-center">Expert</h5>
<p class="mt-4 text-center">Ut efficitur sem sed.</p>
<h2 class="my-4 text-center">$35.00</h2>
<ul class="list-group list-group-flush mt-4">
<li class="list-group-item tp-editor-copy-n-move p-1 border-0 bg-transparent" data-name="Line">
<span class="p-1 fa fa-check"/> Cras justo odio
</li>
<li class="list-group-item tp-editor-copy-n-move p-1 border-0 bg-transparent" data-name="Line">
<span class="p-1 fa fa-check"/> Dapibus ac facilisis
</li>
<li class="list-group-item tp-editor-copy-n-move p-1 border-0 bg-transparent" data-name="Line">
<span class="p-1 fa fa-check"/> Vestibulum at eros
</li>
<li class="list-group-item tp-editor-copy-n-move p-1 border-0 bg-transparent" data-name="Line">
<span class="p-1 fa fa-check"/> Cras justo odio
</li>
<li class="list-group-item tp-editor-copy-n-move p-1 border-0 bg-transparent" data-name="Line">
<span class="p-1 fa fa-check"/> Dapibus ac facilisis
</li>
<li class="list-group-item tp-editor-copy-n-move p-1 border-0 bg-transparent" data-name="Line">
<span class="p-1 fa fa-check"/> Vestibulum at eros
</li>
<li class="list-group-item tp-editor-copy-n-move p-1 border-0 bg-transparent" data-name="Line">
<span class="p-1 fa fa-times"/> Cras justo odio
</li>
</ul>
<a href="#" class="btn btn-primary w-100 mt-3">Order Now</a>
</div>
</div>
</div>
<div class="col-md-6 col-lg-3 py-3">
<div class="card tp-editor-bg-color-n-shadow h-100">
<img src="/web/image/theme_prime.s_pricing_04" class="card-img-top" alt="Pricing Image 04"/>
<div class="p-4">
<h5 class="mt-4 text-center">Advanced</h5>
<p class="mt-4 text-center">Dapibus ac facilisis.</p>
<h2 class="my-4 text-center">$42.00</h2>
<ul class="list-group list-group-flush mt-4">
<li class="list-group-item tp-editor-copy-n-move p-1 border-0 bg-transparent" data-name="Line">
<span class="p-1 fa fa-check"/> Cras justo odio
</li>
<li class="list-group-item tp-editor-copy-n-move p-1 border-0 bg-transparent" data-name="Line">
<span class="p-1 fa fa-check"/> Dapibus ac facilisis
</li>
<li class="list-group-item tp-editor-copy-n-move p-1 border-0 bg-transparent" data-name="Line">
<span class="p-1 fa fa-check"/> Vestibulum at eros
</li>
<li class="list-group-item tp-editor-copy-n-move p-1 border-0 bg-transparent" data-name="Line">
<span class="p-1 fa fa-check"/> Cras justo odio
</li>
<li class="list-group-item tp-editor-copy-n-move p-1 border-0 bg-transparent" data-name="Line">
<span class="p-1 fa fa-check"/> Dapibus ac facilisis
</li>
<li class="list-group-item tp-editor-copy-n-move p-1 border-0 bg-transparent" data-name="Line">
<span class="p-1 fa fa-check"/> Vestibulum at eros
</li>
<li class="list-group-item tp-editor-copy-n-move p-1 border-0 bg-transparent" data-name="Line">
<span class="p-1 fa fa-check"/> Cras justo odio
</li>
</ul>
<a href="#" class="btn btn-primary w-100 mt-3">Order Now</a>
</div>
</div>
</div>
</div>
</div>
</section>
</template>
<template id="s_pricing_2" name="Pricing - 2">
<section class="s_pricing_2 pb16 pt16">
<div class="container">
<div class="row s_col_no_bgcolor">
<div class="col-md-6 col-lg-4 py-3">
<div class="card tp-editor-bg-color-n-shadow h-100 tp-animation-lift">
<header class="tp-editor-bg-color-n-shadow p-4 text-center bg-o-color-1">
<h5>Beginner</h5>
<div>Morbi tincidunt ultrices</div>
</header>
<img src="/web/image/theme_prime.s_pricing_01" class="w-100" alt="Pricing Image 01"/>
<div class="py-4 px-4 py-lg-5 px-lg-5 text-center">
<p>From</p>
<h2 class="mt-3 text-o-color-1">$330.00</h2>
<p class="mt-3">Morbi tincidunt ultrices fermentum. Suspendisse egestas ipsum eu.</p>
<a href="#" class="btn btn-outline-primary w-100 text-center mt-4">Order Now</a>
</div>
</div>
</div>
<div class="col-md-6 col-lg-4 py-3">
<div class="card tp-editor-bg-color-n-shadow h-100 tp-animation-lift">
<header class="tp-editor-bg-color-n-shadow p-4 text-center bg-o-color-1">
<h5>Professional</h5>
<div>Morbi tincidunt ultrices</div>
</header>
<img src="/web/image/theme_prime.s_pricing_02" class="w-100" alt="Pricing Image 02"/>
<div class="py-4 px-4 py-lg-5 px-lg-5 text-center">
<p>From</p>
<h2 class="mt-3 text-o-color-1">$430.00</h2>
<p class="mt-3">Morbi tincidunt ultrices fermentum. Suspendisse egestas ipsum eu.</p>
<a href="#" class="btn btn-outline-primary w-100 text-center mt-4">Order Now</a>
</div>
</div>
</div>
<div class="col-md-6 col-lg-4 py-3">
<div class="card tp-editor-bg-color-n-shadow h-100 tp-animation-lift">
<header class="tp-editor-bg-color-n-shadow p-4 text-center bg-o-color-1">
<h5>Expert</h5>
<div>Morbi tincidunt ultrices</div>
</header>
<img src="/web/image/theme_prime.s_pricing_03" class="w-100" alt="Pricing Image 03"/>
<div class="py-4 px-4 py-lg-5 px-lg-5 text-center">
<p>From</p>
<h2 class="mt-3 text-o-color-1">$530.00</h2>
<p class="mt-3">Morbi tincidunt ultrices fermentum. Suspendisse egestas ipsum eu.</p>
<a href="#" class="btn btn-outline-primary w-100 text-center mt-4">Order Now</a>
</div>
</div>
</div>
</div>
</div>
</section>
</template>
<template id="s_pricing_3" name="Pricing - 3">
<section class="s_pricing_3 pb16 pt16">
<div class="container">
<div class="row s_col_no_bgcolor">
<div class="col-md-6 col-lg-4 py-3">
<div class="card tp-editor-bg-color-n-shadow p-4 p-lg-5 h-100">
<header>
<h5>Beginner</h5>
<div class="pb16 pt16 s_hr" data-snippet="s_hr" data-name="Separator">
<hr class="w-100 mx-auto" style="border-top-width: 1px; border-top-style: solid;"/>
</div>
<h2>$ 8.80</h2>
</header>
<p class="mt-4 mb-0">Morbi tincidunt ultrices fermentum. Suspendisse egestas ipsum eu.</p>
<div class="pb16 pt16 s_hr" data-snippet="s_hr" data-name="Separator">
<hr class="w-100 mx-auto" style="border-top-width: 1px; border-top-style: solid;"/>
</div>
<ul class="list-group list-group-flush border-0">
<li class="list-group-item tp-editor-copy-n-move p-1 border-0 bg-transparent" data-name="Line">
<span class="p-1 fa fa-check text-o-color-1"/> Cras justo odio
</li>
<li class="list-group-item tp-editor-copy-n-move p-1 border-0 bg-transparent" data-name="Line">
<span class="p-1 fa fa-check text-o-color-1"/> Dapibus ac facilisis
</li>
<li class="list-group-item tp-editor-copy-n-move p-1 border-0 bg-transparent" data-name="Line">
<span class="p-1 fa fa-check text-o-color-1"/> Vestibulum at eros
</li>
<li class="list-group-item tp-editor-copy-n-move p-1 border-0 bg-transparent" data-name="Line">
<span class="p-1 fa fa-check text-o-color-1"/> Cras justo odio
</li>
<li class="list-group-item tp-editor-copy-n-move p-1 border-0 bg-transparent" data-name="Line">
<span class="p-1 fa fa-times text-o-color-1"/> Dapibus ac facilisis
</li>
<li class="list-group-item tp-editor-copy-n-move p-1 border-0 bg-transparent" data-name="Line">
<span class="p-1 fa fa-times text-o-color-1"/> Vestibulum at eros
</li>
<li class="list-group-item tp-editor-copy-n-move p-1 border-0 bg-transparent" data-name="Line">
<span class="p-1 fa fa-times text-o-color-1"/> Cras justo odio
</li>
</ul>
<a href="#" class="btn btn-primary w-100 mt-4">Order Now</a>
</div>
</div>
<div class="col-md-6 col-lg-4 py-3">
<div class="card tp-editor-bg-color-n-shadow p-4 p-lg-5 h-100">
<header>
<h5>Professional</h5>
<div class="pb16 pt16 s_hr" data-snippet="s_hr" data-name="Separator">
<hr class="w-100 mx-auto" style="border-top-width: 1px; border-top-style: solid;"/>
</div>
<h2>$ 15.80</h2>
</header>
<p class="mt-4 mb-0">Morbi tincidunt ultrices fermentum. Suspendisse egestas ipsum eu.</p>
<div class="pb16 pt16 s_hr" data-snippet="s_hr" data-name="Separator">
<hr class="w-100 mx-auto" style="border-top-width: 1px; border-top-style: solid;"/>
</div>
<ul class="list-group list-group-flush border-0">
<li class="list-group-item tp-editor-copy-n-move p-1 border-0 bg-transparent" data-name="Line">
<span class="p-1 fa fa-check text-o-color-1"/> Cras justo odio
</li>
<li class="list-group-item tp-editor-copy-n-move p-1 border-0 bg-transparent" data-name="Line">
<span class="p-1 fa fa-check text-o-color-1"/> Dapibus ac facilisis
</li>
<li class="list-group-item tp-editor-copy-n-move p-1 border-0 bg-transparent" data-name="Line">
<span class="p-1 fa fa-check text-o-color-1"/> Vestibulum at eros
</li>
<li class="list-group-item tp-editor-copy-n-move p-1 border-0 bg-transparent" data-name="Line">
<span class="p-1 fa fa-check text-o-color-1"/> Cras justo odio
</li>
<li class="list-group-item tp-editor-copy-n-move p-1 border-0 bg-transparent" data-name="Line">
<span class="p-1 fa fa-check text-o-color-1"/> Dapibus ac facilisis
</li>
<li class="list-group-item tp-editor-copy-n-move p-1 border-0 bg-transparent" data-name="Line">
<span class="p-1 fa fa-times text-o-color-1"/> Vestibulum at eros
</li>
<li class="list-group-item tp-editor-copy-n-move p-1 border-0 bg-transparent" data-name="Line">
<span class="p-1 fa fa-times text-o-color-1"/> Cras justo odio
</li>
</ul>
<a href="#" class="btn btn-primary w-100 mt-4">Order Now</a>
</div>
</div>
<div class="col-md-6 col-lg-4 py-3">
<div class="card tp-editor-bg-color-n-shadow p-4 p-lg-5 h-100">
<header>
<h5>Business</h5>
<div class="pb16 pt16 s_hr" data-snippet="s_hr" data-name="Separator">
<hr class="w-100 mx-auto" style="border-top-width: 1px; border-top-style: solid;"/>
</div>
<h2>$ 21.00</h2>
</header>
<p class="mt-4 mb-0">Morbi tincidunt ultrices fermentum. Suspendisse egestas ipsum eu.</p>
<div class="pb16 pt16 s_hr" data-snippet="s_hr" data-name="Separator">
<hr class="w-100 mx-auto" style="border-top-width: 1px; border-top-style: solid;"/>
</div>
<ul class="list-group list-group-flush border-0">
<li class="list-group-item tp-editor-copy-n-move p-1 border-0 bg-transparent" data-name="Line">
<span class="p-1 fa fa-check text-o-color-1"/> Cras justo odio
</li>
<li class="list-group-item tp-editor-copy-n-move p-1 border-0 bg-transparent" data-name="Line">
<span class="p-1 fa fa-check text-o-color-1"/> Dapibus ac facilisis
</li>
<li class="list-group-item tp-editor-copy-n-move p-1 border-0 bg-transparent" data-name="Line">
<span class="p-1 fa fa-check text-o-color-1"/> Vestibulum at eros
</li>
<li class="list-group-item tp-editor-copy-n-move p-1 border-0 bg-transparent" data-name="Line">
<span class="p-1 fa fa-check text-o-color-1"/> Cras justo odio
</li>
<li class="list-group-item tp-editor-copy-n-move p-1 border-0 bg-transparent" data-name="Line">
<span class="p-1 fa fa-check text-o-color-1"/> Dapibus ac facilisis
</li>
<li class="list-group-item tp-editor-copy-n-move p-1 border-0 bg-transparent" data-name="Line">
<span class="p-1 fa fa-check text-o-color-1"/> Vestibulum at eros
</li>
<li class="list-group-item tp-editor-copy-n-move p-1 border-0 bg-transparent" data-name="Line">
<span class="p-1 fa fa-check text-o-color-1"/> Cras justo odio
</li>
</ul>
<a href="#" class="btn btn-primary w-100 mt-4">Order Now</a>
</div>
</div>
</div>
</div>
</section>
</template>
<template id="s_pricing_4" name="Pricing - 4">
<section class="s_pricing_4 pb16 pt16">
<div class="container">
<div class="row s_col_no_bgcolor">
<div class="col-md-4 py-3">
<div class="card tp-editor-bg-color-n-shadow h-100">
<div class="pt-3 px-3 text-center">
<div class="s_rating pt16 pb16" data-vcss="001" data-icon="fa-star">
<h2 class="s_rating_title">Basic</h2>
<div class="s_rating_icons o_not_editable text-o-color-1">
<span class="s_rating_active_icons">
<i class="fa fa-star"/>
<i class="fa fa-star"/>
<i class="fa fa-star"/>
</span>
<span class="s_rating_inactive_icons">
<i class="fa fa-star-o"/>
<i class="fa fa-star-o"/>
</span>
</div>
</div>
</div>
<div class="pb4 pt4 s_hr" data-snippet="s_hr" data-name="Separator">
<hr class="w-100 mx-auto" style="border-top-width: 1px; border-top-style: solid;"/>
</div>
<div class="p-3">
<ul class="list-group list-group-flush">
<li class="list-group-item tp-editor-copy-n-move p-1 border-0 bg-transparent" data-name="Line">
<span class="p-1 fa fa-check"/> <strong>Unlimited</strong> Email Addresses
</li>
<li class="list-group-item tp-editor-copy-n-move p-1 border-0 bg-transparent" data-name="Line">
<span class="p-1 fa fa-check"/> <strong>50 GB</strong> Disk Space
</li>
<li class="list-group-item tp-editor-copy-n-move p-1 border-0 bg-transparent" data-name="Line">
<span class="p-1 fa fa-check"/> <strong>Unlimited</strong> SQL Database
</li>
<li class="list-group-item tp-editor-copy-n-move p-1 border-0 bg-transparent" data-name="Line">
<span class="p-1 fa fa-check"/> <strong>Unlimited</strong> Email Addresses
</li>
<li class="list-group-item tp-editor-copy-n-move p-1 border-0 bg-transparent" data-name="Line">
<span class="p-1 fa fa-check"/> <strong>50 GB</strong> Disk Space
</li>
<li class="list-group-item tp-editor-copy-n-move p-1 border-0 bg-transparent" data-name="Line">
<span class="p-1 fa fa-check"/> <strong>Unlimited</strong> SQL Database
</li>
<li class="list-group-item tp-editor-copy-n-move p-1 border-0 bg-transparent" data-name="Line">
<span class="p-1 fa fa-times"/> <strong>24 x Support</strong>
</li>
<li class="list-group-item tp-editor-copy-n-move p-1 border-0 bg-transparent" data-name="Line">
<span class="p-1 fa fa-times"/> <strong>Email Support</strong>
</li>
</ul>
</div>
<div class="pb4 pt4 s_hr" data-snippet="s_hr" data-name="Separator">
<hr class="w-100 mx-auto" style="border-top-width: 1px; border-top-style: solid;"/>
</div>
<div class="px-3 pt-2 text-center">
<h1><font style="font-size: 48px;">$3</font></h1>
<p class="mb-0">Per Month</p>
</div>
<div class="px-3 py-3 text-center">
<a href="#" class="btn btn-primary w-100">View More</a>
</div>
</div>
</div>
<div class="col-md-4 py-3">
<div class="card tp-editor-bg-color-n-shadow h-100">
<div class="pt-3 px-3 text-center">
<div class="s_rating pt16 pb16" data-vcss="001" data-icon="fa-star">
<h2 class="s_rating_title">Premium</h2>
<div class="s_rating_icons o_not_editable text-o-color-1">
<span class="s_rating_active_icons">
<i class="fa fa-star"/>
<i class="fa fa-star"/>
<i class="fa fa-star"/>
<i class="fa fa-star"/>
</span>
<span class="s_rating_inactive_icons">
<i class="fa fa-star-o"/>
</span>
</div>
</div>
</div>
<div class="pb4 pt4 s_hr" data-snippet="s_hr" data-name="Separator">
<hr class="w-100 mx-auto" style="border-top-width: 1px; border-top-style: solid;"/>
</div>
<div class="p-3">
<ul class="list-group list-group-flush">
<li class="list-group-item tp-editor-copy-n-move p-1 border-0 bg-transparent" data-name="Line">
<span class="p-1 fa fa-check"/> <strong>Unlimited</strong> Email Addresses
</li>
<li class="list-group-item tp-editor-copy-n-move p-1 border-0 bg-transparent" data-name="Line">
<span class="p-1 fa fa-check"/> <strong>50 GB</strong> Disk Space
</li>
<li class="list-group-item tp-editor-copy-n-move p-1 border-0 bg-transparent" data-name="Line">
<span class="p-1 fa fa-check"/> <strong>Unlimited</strong> SQL Database
</li>
<li class="list-group-item tp-editor-copy-n-move p-1 border-0 bg-transparent" data-name="Line">
<span class="p-1 fa fa-check"/> <strong>Unlimited</strong> Email Addresses
</li>
<li class="list-group-item tp-editor-copy-n-move p-1 border-0 bg-transparent" data-name="Line">
<span class="p-1 fa fa-check"/> <strong>50 GB</strong> Disk Space
</li>
<li class="list-group-item tp-editor-copy-n-move p-1 border-0 bg-transparent" data-name="Line">
<span class="p-1 fa fa-check"/> <strong>Unlimited</strong> SQL Database
</li>
<li class="list-group-item tp-editor-copy-n-move p-1 border-0 bg-transparent" data-name="Line">
<span class="p-1 fa fa-check"/> <strong>24 x Support</strong>
</li>
<li class="list-group-item tp-editor-copy-n-move p-1 border-0 bg-transparent" data-name="Line">
<span class="p-1 fa fa-times"/> <strong>Email Support</strong>
</li>
</ul>
</div>
<div class="pb4 pt4 s_hr" data-snippet="s_hr" data-name="Separator">
<hr class="w-100 mx-auto" style="border-top-width: 1px; border-top-style: solid;"/>
</div>
<div class="px-3 pt-2 text-center">
<h1><font style="font-size: 48px;">$8</font></h1>
<p class="mb-0">Per Month</p>
</div>
<div class="px-3 py-3 text-center">
<a href="#" class="btn btn-primary w-100">View More</a>
</div>
</div>
</div>
<div class="col-md-4 py-3">
<div class="card tp-editor-bg-color-n-shadow h-100">
<div class="pt-3 px-3 text-center">
<div class="s_rating pt16 pb16" data-vcss="001" data-icon="fa-star">
<h2 class="s_rating_title">Business</h2>
<div class="s_rating_icons o_not_editable text-o-color-1">
<span class="s_rating_active_icons">
<i class="fa fa-star"/>
<i class="fa fa-star"/>
<i class="fa fa-star"/>
<i class="fa fa-star"/>
<i class="fa fa-star"/>
</span>
<span class="s_rating_inactive_icons">
</span>
</div>
</div>
</div>
<div class="pb4 pt4 s_hr" data-snippet="s_hr" data-name="Separator">
<hr class="w-100 mx-auto" style="border-top-width: 1px; border-top-style: solid;"/>
</div>
<div class="p-3">
<ul class="list-group list-group-flush">
<li class="list-group-item tp-editor-copy-n-move p-1 border-0 bg-transparent" data-name="Line">
<span class="p-1 fa fa-check"/> <strong>Unlimited</strong> Email Addresses
</li>
<li class="list-group-item tp-editor-copy-n-move p-1 border-0 bg-transparent" data-name="Line">
<span class="p-1 fa fa-check"/> <strong>50 GB</strong> Disk Space
</li>
<li class="list-group-item tp-editor-copy-n-move p-1 border-0 bg-transparent" data-name="Line">
<span class="p-1 fa fa-check"/> <strong>Unlimited</strong> SQL Database
</li>
<li class="list-group-item tp-editor-copy-n-move p-1 border-0 bg-transparent" data-name="Line">
<span class="p-1 fa fa-check"/> <strong>Unlimited</strong> Email Addresses
</li>
<li class="list-group-item tp-editor-copy-n-move p-1 border-0 bg-transparent" data-name="Line">
<span class="p-1 fa fa-check"/> <strong>50 GB</strong> Disk Space
</li>
<li class="list-group-item tp-editor-copy-n-move p-1 border-0 bg-transparent" data-name="Line">
<span class="p-1 fa fa-check"/> <strong>Unlimited</strong> SQL Database
</li>
<li class="list-group-item tp-editor-copy-n-move p-1 border-0 bg-transparent" data-name="Line">
<span class="p-1 fa fa-check"/> <strong>24 x Support</strong>
</li>
<li class="list-group-item tp-editor-copy-n-move p-1 border-0 bg-transparent" data-name="Line">
<span class="p-1 fa fa-check"/> <strong>Email Support</strong>
</li>
</ul>
</div>
<div class="pb4 pt4 s_hr" data-snippet="s_hr" data-name="Separator">
<hr class="w-100 mx-auto" style="border-top-width: 1px; border-top-style: solid;"/>
</div>
<div class="px-3 pt-2 text-center">
<h1><font style="font-size: 48px;">$12</font></h1>
<p class="mb-0">Per Month</p>
</div>
<div class="px-3 py-3 text-center">
<a href="#" class="btn btn-primary w-100">View More</a>
</div>
</div>
</div>
</div>
</div>
</section>
</template>
<template id="s_pricing_5" name="Pricing - 5">
<section class="s_pricing_5 pb16 pt16">
<div class="container">
<div class="row s_nb_column_fixed s_col_no_bgcolor">
<div class="col-lg-6 py-3">
<div class="d-flex tp-editor-bg-color-n-shadow align-items-center border">
<div class="p-4 me-3">
<h2 class="text-o-color-1 mb-0"><b>$19.00</b></h2>
<p>per month</p>
<a href="#" class="btn btn-primary mt-2">Purchase</a>
</div>
<div class="p-4">
<h5>Basic Pass</h5>
<p class="mb-0">
Ut ac pellentesque tortor. Sed fringilla nibh vel urna porttitor feugiat sit amet ac ex. Duis ut mattis est, eget venenatis leo. Sed et facilisis leo. Class aptent taciti sociosqu.
</p>
</div>
</div>
</div>
<div class="col-lg-6 py-3">
<div class="d-flex tp-editor-bg-color-n-shadow align-items-center border">
<div class="p-4 me-3">
<h2 class="text-o-color-1 mb-0"><b>$48.99</b></h2>
<p>per month</p>
<a href="#" class="btn btn-primary mt-2">Purchase</a>
</div>
<div class="p-4">
<h5>Advanced Pass</h5>
<p class="mb-0">
Vivamus at tempor arcu. Vestibulum fermentum facilisis dui, vitae iaculis purus accumsan quis. Quisque sit amet dignissim justo. Nullam ac sodales lorem, id volutpat arcu. Sed justo neque.
</p>
</div>
</div>
</div>
</div>
</div>
</section>
</template>
</odoo>
+115
View File
@@ -0,0 +1,115 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<template id="s_shop_offer_1" name="Shop Offer - 1">
<section class="s_shop_offer_1 parallax s_parallax_is_fixed pt120 pb120 s_parallax_no_overflow_hidden oe_img_bg o_bg_img_center" data-scroll-background-ratio="0" data-snippet="s_shop_offer_1" data-name="Shop Offer - 1" style="background-image: url('/web/image/theme_prime.s_shop_offer_1_1'); background-position: 50% 0;">
<div class="container">
<div class="row s_nb_column_fixed">
<div class="col-12 text-center">
<h5>Up to <span class="text-o-color-1">20%</span> off</h5>
<h3>Winter Collection</h3>
<a href="#" class="btn btn-primary mt-4">Shop Now</a>
</div>
</div>
</div>
</section>
</template>
<template id="s_shop_offer_2" name="Shop Offer - 2">
<section class="s_shop_offer_2 pt16 pb16">
<div class="container">
<div class="row s_nb_column_fixed">
<div class="col-12 py-2">
<div class="d-flex">
<div class="flex-shrink-0">
<span class="fa fa-rocket fa-2x text-o-color-1 me-3"/>
</div>
<div class="flex-grow-1">
<h6 class="mb-1">Free Delivery</h6>
<p class="mb-0">Within 48 hours get free delivery</p>
</div>
</div>
</div>
<div class="col-12 py-2">
<div class="d-flex">
<div class="flex-shrink-0">
<span class="fa fa-refresh fa-2x text-o-color-1 me-3"/>
</div>
<div class="flex-grow-1">
<h6 class="mb-1">30 Days Return</h6>
<p class="mb-0">Get 30-day money-back guarantee</p>
</div>
</div>
</div>
<div class="col-12 py-2">
<div class="d-flex">
<div class="flex-shrink-0">
<span class="fa fa-thumbs-up fa-2x text-o-color-1 me-3"/>
</div>
<div class="flex-grow-1">
<h6 class="mb-1">Quality Product</h6>
<p class="mb-0">Receive 100% genuine products</p>
</div>
</div>
</div>
</div>
</div>
</section>
</template>
<template id="s_shop_offer_3" name="Shop Offer - 3">
<section class="s_shop_offer_3">
<div class="container">
<div class="row g-0 s_nb_column_fixed">
<div class="col-12">
<img class="img img-fluid" src="/web/image/theme_prime.s_shop_offer_3_1" alt="Shop Offer Image 01"/>
<a href="/shop" class="btn btn-primary w-100">Get it Now</a>
</div>
</div>
</div>
</section>
</template>
<template id="s_shop_offer_4" name="Shop Offer - 4">
<section class="s_shop_offer_4">
<div class="container">
<div class="row g-0 s_nb_column_fixed">
<div class="col-12">
<div class="position-relative">
<img src="/web/image/theme_prime.s_shop_offer_4_1" class="img img-fluid" alt="Shop Offer Image 01"/>
<div class="tp-banner-text text-center w-100">
<h2>Newly Launched</h2>
<h5>Limited Collection</h5>
<div class="s_btn pt16" data-name="Buttons">
<a href="/shop" class="btn btn-primary">Shop Now</a>
</div>
</div>
</div>
</div>
</div>
</div>
</section>
</template>
<template id="s_shop_offer_5" name="Shop Offer - 5">
<section class="s_shop_offer_5">
<div class="container">
<div class="row s_col_no_bgcolor s_nb_column_fixed">
<div class="col-12 pt32 pb32">
<i class="fa fa-thumbs-up bg-o-color-1 rounded-circle shadow mx-auto d-block fa-2x"/>
<h5 class="mt-4" style="text-align: center;">Best Quality</h5>
<p class="mb-0" style="text-align: center;">Orci varius natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus.</p>
</div>
</div>
</div>
</section>
</template>
<!-- Assets -->
<record id="theme_prime.s_shop_offer_4_000_scss" model="ir.asset">
<field name="name">Shop Offer 4 000 SCSS</field>
<field name="bundle">web.assets_frontend</field>
<field name="path">theme_prime/static/src/snippets/s_shop_offer_4/000.scss</field>
</record>
</odoo>
+197
View File
@@ -0,0 +1,197 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<template id="s_stats_1" name="Stats - 1">
<section class="s_stats_1 pt16 pb16">
<div class="container">
<div class="row">
<div class="col-12 col-sm-6 col-lg-3 py-4 text-center">
<h2 class="text-o-color-1">200+</h2>
<h6 class="mt-3">Customers</h6>
</div>
<div class="col-12 col-sm-6 col-lg-3 py-4 text-center">
<h2 class="text-o-color-1">156</h2>
<h6 class="mt-3">New Ideas</h6>
</div>
<div class="col-12 col-sm-6 col-lg-3 py-4 text-center">
<h2 class="text-o-color-1">97 %</h2>
<h6 class="mt-3">Happy Clients</h6>
</div>
<div class="col-12 col-sm-6 col-lg-3 py-4 text-center">
<h2 class="text-o-color-1">365 x 7</h2>
<h6 class="mt-3">Customer Support</h6>
</div>
</div>
</div>
</section>
</template>
<template id="s_stats_2" name="Stats - 2">
<section class="s_stats_2 pt16 pb16">
<div class="container">
<div class="row">
<div class="col-12 col-sm-6 col-lg-3 py-3 text-center">
<h6><span class="fa fa-user fa-3x"/></h6>
<h4 class="mt-4"><font style="font-size: 36px;">1200</font></h4>
<h6 class="text-uppercase small">Customers</h6>
<p class="mt-4">
Just some random string to reach eighty charater limit to break.
</p>
</div>
<div class="col-12 col-sm-6 col-lg-3 py-3 text-center">
<h6><span class="fa fa-magic fa-3x"/></h6>
<h4 class="mt-4"><font style="font-size: 36px;">237</font></h4>
<h6 class="text-uppercase small">New Ideas</h6>
<p class="mt-4">
To break the lines we are writing some random string here.
</p>
</div>
<div class="col-12 col-sm-6 col-lg-3 py-3 text-center">
<h6><span class="fa fa-smile-o fa-3x"/></h6>
<h4 class="mt-4"><font style="font-size: 36px;">1340</font></h4>
<h6 class="text-uppercase small">Happy Clients</h6>
<p class="mt-4">
Diffrent content looks good so not repeating the content here.
</p>
</div>
<div class="col-12 col-sm-6 col-lg-3 py-3 text-center">
<h6><span class="fa fa-cube fa-3x"/></h6>
<h4 class="mt-4"><font style="font-size: 36px;">8000</font></h4>
<h6 class="text-uppercase small">Products</h6>
<p class="mt-4">
This is the last paragraph, and i am out of idea what to write.
</p>
</div>
</div>
</div>
</section>
</template>
<template id="s_stats_3" name="Stats - 3">
<section class="s_stats_3 pt16 pb16">
<div class="container">
<div class="row">
<div class="col-12 col-sm-6 col-lg-3 py-3 text-center">
<h6><span class="text-o-color-1 fa fa-user fa-3x"/></h6>
<h4 class="mt-4"><font style="font-size: 36px;">1200</font></h4>
<h6>Customers</h6>
</div>
<div class="col-12 col-sm-6 col-lg-3 py-3 text-center">
<h6><span class="text-o-color-1 fa fa-magic fa-3x"/></h6>
<h4 class="mt-4"><font style="font-size: 36px;">237</font></h4>
<h6>New Ideas</h6>
</div>
<div class="col-12 col-sm-6 col-lg-3 py-3 text-center">
<h6><span class="text-o-color-1 fa fa-smile-o fa-3x"/></h6>
<h4 class="mt-4"><font style="font-size: 36px;">1340</font></h4>
<h6>Happy Clients</h6>
</div>
<div class="col-12 col-sm-6 col-lg-3 py-3 text-center">
<h6><span class="text-o-color-1 fa fa-cube fa-3x"/></h6>
<h4 class="mt-4"><font style="font-size: 36px;">8000</font></h4>
<h6>Products</h6>
</div>
</div>
</div>
</section>
</template>
<template id="s_stats_4" name="Stats - 4">
<section class="s_stats_4 pt16 pb16">
<div class="container">
<div class="row">
<div class="col-12 col-sm-6 col-lg-3 py-4">
<i class="fa fa-user fa-2x rounded-circle bg-o-color-1"/>
<div class="pb32 pt32 s_hr text-300" data-snippet="s_hr" data-name="Separator">
<hr class="w-75 me-auto"/>
</div>
<h4>200+</h4>
<p class="mt-4">
Just some random string to reach eighty charater limit to break. Just some random string to reach eighty charater limit to break.
</p>
</div>
<div class="col-12 col-sm-6 col-lg-3 py-4">
<i class="fa fa-magic fa-2x rounded-circle bg-o-color-1"/>
<div class="s_hr pt32 pb32" data-snippet="s_hr" data-name="Separator">
<hr class="w-75 me-auto" style="border-top-width: 1px; border-top-style: solid;"/>
</div>
<h4>156</h4>
<p class="mt-4">
To break the lines we are writing some random string here. To break the lines we are writing some random string here.
</p>
</div>
<div class="col-12 col-sm-6 col-lg-3 py-4">
<i class="fa fa-smile-o fa-2x rounded-circle bg-o-color-1"/>
<div class="s_hr pt32 pb32" data-snippet="s_hr" data-name="Separator">
<hr class="w-75 me-auto" style="border-top-width: 1px; border-top-style: solid;"/>
</div>
<h4>97 %</h4>
<p class="mt-4">
Diffrent content looks good so not repeating the content here. Diffrent content looks good so not repeating the content here.
</p>
</div>
<div class="col-12 col-sm-6 col-lg-3 py-4">
<i class="fa fa-cube fa-2x rounded-circle bg-o-color-1"/>
<div class="s_hr pt32 pb32" data-snippet="s_hr" data-name="Separator">
<hr class="w-75 me-auto" style="border-top-width: 1px; border-top-style: solid;"/>
</div>
<h4>365 x 7</h4>
<p class="mt-4">
This is the last paragraph, and i am out of idea what to write. This is the last paragraph, and i am out of idea what to write.
</p>
</div>
</div>
</div>
</section>
</template>
<template id="s_stats_5" name="Stats - 5">
<section class="s_stats_5 pt16 pb16">
<div class="container">
<div class="row">
<div class="col-12 col-sm-6 col-lg-3 py-4">
<h2><font style="font-size: 36px;">200+</font></h2>
<div class="s_hr pt16 pb32" data-snippet="s_hr" data-name="Separator">
<hr class="w-75 me-auto" style="border-top-width: 1px; border-top-style: solid;"/>
</div>
<h6>Customers</h6>
<p class="mt-4">
Just some random string to reach eighty charater limit to break. Just some random string to reach eighty charater limit to break.
</p>
</div>
<div class="col-12 col-sm-6 col-lg-3 py-4">
<h2><font style="font-size: 36px;">156</font></h2>
<div class="s_hr pt16 pb32" data-snippet="s_hr" data-name="Separator">
<hr class="w-75 me-auto" style="border-top-width: 1px; border-top-style: solid;"/>
</div>
<h6>New Ideas</h6>
<p class="mt-4">
To break the lines we are writing some random string here. To break the lines we are writing some random string here.
</p>
</div>
<div class="col-12 col-sm-6 col-lg-3 py-4">
<h2><font style="font-size: 36px;">97%</font></h2>
<div class="s_hr pt16 pb32" data-snippet="s_hr" data-name="Separator">
<hr class="w-75 me-auto" style="border-top-width: 1px; border-top-style: solid;"/>
</div>
<h6>Happy Clients</h6>
<p class="mt-4">
Diffrent content looks good so not repeating the content here. Diffrent content looks good so not repeating the content here.
</p>
</div>
<div class="col-12 col-sm-6 col-lg-3 py-4">
<h2><font style="font-size: 36px;">365 x 7</font></h2>
<div class="s_hr pt16 pb32" data-snippet="s_hr" data-name="Separator">
<hr class="w-75 me-auto" style="border-top-width: 1px; border-top-style: solid;"/>
</div>
<h6>Customer Support</h6>
<p class="mt-4">
This is the last paragraph, and i am out of idea what to write. This is the last paragraph, and i am out of idea what to write.
</p>
</div>
</div>
</div>
</section>
</template>
</odoo>
+158
View File
@@ -0,0 +1,158 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<template id="s_subscribe_1" name="Subscribe - 1">
<section class="s_subscribe_1 pt32 pb32">
<div class="container">
<div class="row s_col_no_bgcolor justify-content-center s_nb_column_fixed">
<div class="col-12 text-center">
<h3>Subscribe</h3>
</div>
<div class="col-lg-5 mt-4">
<div class="s_newsletter_list js_subscribe" data-vxml="001" data-list-id="0" data-name="Newsletter Form">
<div class="input-group input-group-lg shadow-lg">
<input type="email" name="email" class="js_subscribe_value form-control" placeholder="your email..."/>
<a role="button" href="#" class="btn btn-primary js_subscribe_btn o_submit"><i class="fa fa-send-o"/></a>
<a role="button" href="#" class="btn btn-success js_subscribed_btn d-none o_submit" disabled="disabled">Thanks</a>
</div>
</div>
</div>
<div class="col-12 mt48">
<div class="s_social_media o_not_editable text-center" data-snippet="s_social_media" data-name="Social Media">
<small class="s_social_media_title text-muted d-none"><b>Follow us</b></small>
<a href="/website/social/facebook" class="s_social_media_facebook" target="_blank">
<i class="fa fa-facebook m-1 rounded-circle shadow-sm o_editable_media"/>
</a>
<a href="/website/social/twitter" class="s_social_media_twitter" target="_blank">
<i class="fa fa-twitter m-1 rounded-circle shadow-sm o_editable_media"/>
</a>
<a href="/website/social/linkedin" class="s_social_media_linkedin" target="_blank">
<i class="fa fa-linkedin m-1 rounded-circle shadow-sm o_editable_media"/>
</a>
<a href="/website/social/github" class="s_social_media_github" target="_blank">
<i class="fa fa-github m-1 rounded-circle shadow-sm o_editable_media"/>
</a>
<a href="/website/social/youtube" class="s_social_media_youtube" target="_blank">
<i class="fa fa-youtube m-1 rounded-circle shadow-sm o_editable_media"/>
</a>
<a href="/website/social/instagram" class="s_social_media_instagram" target="_blank">
<i class="fa fa-instagram m-1 rounded-circle shadow-sm o_editable_media"/>
</a>
</div>
</div>
</div>
</div>
</section>
</template>
<template id="s_subscribe_2" name="Subscribe - 2">
<section class="s_subscribe_2 pt32 pb32">
<div class="container">
<div class="row s_col_no_bgcolor s_nb_column_fixed">
<div class="col-md-8 align-self-center">
<h3 class="mb-0">Subscribe to our weekly newsletter</h3>
</div>
<div class="col-md-4 align-self-center">
<div class="s_newsletter_list js_subscribe" data-vxml="001" data-list-id="0" data-name="Newsletter Form">
<div class="input-group">
<input type="email" name="email" class="js_subscribe_value form-control" placeholder="your email..."/>
<a role="button" href="#" class="btn btn-primary js_subscribe_btn o_submit">Subscribe</a>
<a role="button" href="#" class="btn btn-success js_subscribed_btn d-none o_submit" disabled="disabled">Thanks</a>
</div>
</div>
</div>
</div>
</div>
</section>
</template>
<template id="s_subscribe_3" name="Subscribe - 3">
<section class="s_subscribe_3 pt32 pb32">
<div class="container">
<div class="row s_col_no_bgcolor text-center s_nb_column_fixed">
<div class="col-12">
<h3>Join Our Newsletter Now</h3>
<p>Sign up for all the news about our latest arrivals and get an exclusive early access shopping.</p>
<div class="s_newsletter_list js_subscribe my-3 mx-auto" style="max-width:400px;" data-vxml="001" data-list-id="0" data-name="Newsletter Form">
<div class="input-group">
<input type="email" name="email" class="js_subscribe_value form-control" placeholder="your email..."/>
<a role="button" href="#" class="btn btn-primary js_subscribe_btn o_submit"><i class="fa fa-send-o"/></a>
<a role="button" href="#" class="btn btn-success js_subscribed_btn d-none o_submit" disabled="disabled">Thanks</a>
</div>
</div>
<div class="my-3">OR</div>
<div class="s_social_media o_not_editable text-center" data-snippet="s_social_media" data-name="Social Media">
<div class="s_social_media_title d-block">
<h3>Follow Us</h3>
<p>Be the first to find out all the latest news, products and trends.</p>
</div>
<a href="/website/social/facebook" class="s_social_media_facebook" target="_blank">
<i class="fa fa-facebook m-1 rounded-circle shadow-sm o_editable_media"/>
</a>
<a href="/website/social/twitter" class="s_social_media_twitter" target="_blank">
<i class="fa fa-twitter m-1 rounded-circle shadow-sm o_editable_media"/>
</a>
<a href="/website/social/linkedin" class="s_social_media_linkedin" target="_blank">
<i class="fa fa-linkedin m-1 rounded-circle shadow-sm o_editable_media"/>
</a>
<a href="/website/social/github" class="s_social_media_github" target="_blank">
<i class="fa fa-github m-1 rounded-circle shadow-sm o_editable_media"/>
</a>
<a href="/website/social/youtube" class="s_social_media_youtube" target="_blank">
<i class="fa fa-youtube m-1 rounded-circle shadow-sm o_editable_media"/>
</a>
<a href="/website/social/instagram" class="s_social_media_instagram" target="_blank">
<i class="fa fa-instagram m-1 rounded-circle shadow-sm o_editable_media"/>
</a>
</div>
</div>
</div>
</div>
</section>
</template>
<template id="s_subscribe_4" name="Subscribe - 4">
<section class="s_subscribe_4">
<div class="container-fluid px-0">
<div class="row g-0 s_nb_column_fixed align-items-center text-center">
<div class="col-lg-6">
<img src="/web/image/theme_prime.s_subscribe_4_1" class="img img-fluid" alt="Subscribe Image 01"/>
</div>
<div class="col-lg-4 offset-lg-1 p-4">
<h4>Join Our Mailing List</h4>
<p>Don't miss out. Stay Informed! Monthly Tips, Tracks, and Discounts.</p>
<div class="s_newsletter_list js_subscribe" data-vxml="001" data-list-id="0" data-name="Newsletter Form">
<div class="input-group">
<input type="email" name="email" class="js_subscribe_value form-control" placeholder="your email..."/>
<a role="button" href="#" class="btn btn-primary js_subscribe_btn o_submit">Subscribe</a>
<a role="button" href="#" class="btn btn-success js_subscribed_btn d-none o_submit" disabled="disabled">Thanks</a>
</div>
</div>
<div class="s_social_media o_not_editable text-center mt-4" data-snippet="s_social_media" data-name="Social Media">
<small class="s_social_media_title text-muted d-none"><b>Follow us</b></small>
<a href="/website/social/facebook" class="s_social_media_facebook" target="_blank">
<i class="fa fa-facebook m-1 rounded-circle shadow-sm o_editable_media"/>
</a>
<a href="/website/social/twitter" class="s_social_media_twitter" target="_blank">
<i class="fa fa-twitter m-1 rounded-circle shadow-sm o_editable_media"/>
</a>
<a href="/website/social/linkedin" class="s_social_media_linkedin" target="_blank">
<i class="fa fa-linkedin m-1 rounded-circle shadow-sm o_editable_media"/>
</a>
<a href="/website/social/github" class="s_social_media_github" target="_blank">
<i class="fa fa-github m-1 rounded-circle shadow-sm o_editable_media"/>
</a>
<a href="/website/social/youtube" class="s_social_media_youtube" target="_blank">
<i class="fa fa-youtube m-1 rounded-circle shadow-sm o_editable_media"/>
</a>
<a href="/website/social/instagram" class="s_social_media_instagram" target="_blank">
<i class="fa fa-instagram m-1 rounded-circle shadow-sm o_editable_media"/>
</a>
</div>
</div>
</div>
</div>
</section>
</template>
</odoo>
+158
View File
@@ -0,0 +1,158 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<template id="s_team_1" name="Team - 1">
<section class="s_team_1 pb16 pt16">
<div class="container">
<div class="row">
<t t-set="teams" t-value="{
'01': {'name': 'Ralph Edwards', 'position': 'Chief Executive Officer', 'description': 'Pellentesque habitant morbi tristique senectus et netus et malesuada fames.'},
'02': {'name': 'Robert Fox', 'position': 'Chief Technical Officer', 'description': 'Suspendisse eget pellentesque nisl. Sed in pretium nulla. Mauris sit amet sem.'},
'03': {'name': 'Danny Bailey', 'position': 'Business Executive', 'description': 'Praesent ornare mi quis velit gravida auctor bibendum in neque. Nunc rutrum.'},
'04': {'name': 'John Cooper', 'position': 'Developer', 'description': 'Pellentesque sollicitudin auctor dui, quis consectetur turpis pellentesque eget.'},
}"/>
<div t-foreach="teams" t-as="team" class="col-12 col-sm-6 col-lg-3 py-2">
<div class="card border-0 h-100 bg-transparent">
<img t-attf-src="/web/image/theme_prime.s_team_0#{team_index + 1}" class="card-img-top" t-attf-alt="Team Image #{team}"/>
<div class="py-4">
<h5 class="card-title mb-0"><t t-out="teams[team]['name']"/></h5>
<div class="text-o-color-1 text-uppercase mt-1">
<font style="font-size: 12px;"><t t-out="teams[team]['position']"/></font>
</div>
<p class="mt-3"><t t-out="teams[team]['description']"/></p>
</div>
</div>
</div>
</div>
</div>
</section>
</template>
<template id="s_team_2" name="Team - 2">
<section class="s_team_2 pb16 pt16">
<div class="container">
<div class="row">
<t t-set="teams" t-value="{
'01': {'name': 'Ralph Edwards', 'position': 'Founder'},
'02': {'name': 'Robert Fox', 'position': 'Office manager'},
'03': {'name': 'Danny Bailey', 'position': 'Partner'},
'04': {'name': 'John Cooper', 'position': 'Receptionist'},
}"/>
<div t-foreach="teams" t-as="team" class="col-12 col-sm-6 col-lg-3 py-2">
<div class="card border-0 h-100 bg-transparent">
<img t-attf-src="/web/image/theme_prime.s_team_0#{team_index + 1}" class="card-img-top" t-attf-alt="Team Image #{team}"/>
<div class="py-4">
<div class="text-o-color-1 text-uppercase small">
<t t-out="teams[team]['position']"/>
</div>
<h5 class="card-title mt-1 mb-0"><t t-out="teams[team]['name']"/></h5>
<p class="mt-1">Praesent ornare mi quis</p>
<div class="s_hr pt4 pb4" data-snippet="s_hr" data-name="Separator">
<hr class="w-100 mx-auto" style="border-top-width: 1px; border-top-style: solid;"/>
</div>
<ul class="list-unstyled mb-0 mt-3">
<li class="list-item"><span class="fa fa-envelope p-1"/> information@mail.com</li>
<li class="list-item"><span class="fa fa-phone p-1"/> +12 345 6789 101</li>
</ul>
</div>
</div>
</div>
</div>
</div>
</section>
</template>
<template id="s_team_3" name="Team - 3">
<section class="s_team_3 pb16 pt16">
<div class="container">
<div class="row s_col_no_bgcolor s_nb_column_fixed">
<t t-set="teams" t-value="{
'01': {'name': 'Ralph Edwards', 'position': 'Founder'},
'02': {'name': 'Robert Fox', 'position': 'Office manager'},
'03': {'name': 'Danny Bailey', 'position': 'Partner'},
}"/>
<div t-foreach="teams" t-as="team" class="col-lg-4 py-2">
<div class="card h-100 tp-editor-bg-color-n-shadow">
<div class="d-flex p-2">
<img t-attf-src="/web/image/theme_prime.s_team_square_0#{team_index + 1}" class="flex-shrink-0 img img-fluid tp-image-100-max me-3" t-attf-alt="Team Image #{team}"/>
<div class="flex-grow-1">
<h5 class="card-title mb-0"><t t-out="teams[team]['name']"/></h5>
<div class="text-o-color-1">
<t t-out="teams[team]['position']"/>
</div>
<ul class="list-unstyled mt-2 mb-0">
<li class="list-item"><i class="fa fa-envelope me-1"></i> information@mail.com</li>
<li class="list-item"><i class="fa fa-phone me-1"></i> +12 345 6789 101</li>
</ul>
</div>
</div>
</div>
</div>
</div>
</div>
</section>
</template>
<template id="s_team_4" name="Team 4">
<section class="s_team_4 pb16 pt16">
<div class="container">
<div class="row s_col_no_bgcolor">
<t t-set="teams" t-value="{
'01': {'name': 'Ralph Edwards', 'position': 'Founder', 'description': 'Pellentesque habitant morbi tristique senectus et netus et.'},
'02': {'name': 'Robert Fox', 'position': 'Office manager', 'description': 'Suspendisse eget pellentesque nisl. Sed in pretium nulla.'},
'03': {'name': 'Danny Bailey', 'position': 'Partner', 'description': 'Praesent ornare mi quis velit gravida auctor bibendum in.'},
'04': {'name': 'John Cooper', 'position': 'Receptionist', 'description': 'Pellentesque sollicitudin auctor dui, quis consectetur turp.'},
}"/>
<div t-foreach="teams" t-as="team" class="col-12 col-sm-6 col-lg-3 py-3">
<div class="card h-100 border-0 pt-3">
<img t-attf-src="/web/image/theme_prime.s_team_square_#{team}" class="card-img-top tp-image-150-max rounded-circle img-thumbnail mx-auto" t-attf-alt="Team Image #{team}"/>
<div class="card-body text-center">
<h4 class="card-title mb-0"><t t-out="teams[team]['name']"/></h4>
<div class="text-o-color-1 text-uppercase small mt-1">
<t t-out="teams[team]['position']"/>
</div>
<p class="mt-3"><t t-out="teams[team]['description']"/></p>
<div class="s_social_media o_not_editable text-center no_icon_color" data-snippet="s_social_media" data-name="Social Media">
<h5 class="s_social_media_title o_default_snippet_text d-none">Follow us</h5>
<a target="_blank" href="/website/social/facebook" class="s_social_media_facebook">
<i class="fa rounded-circle shadow-sm fa-facebook o_editable_media"/>
</a>
<a target="_blank" href="/website/social/twitter" class="s_social_media_twitter">
<i class="fa rounded-circle shadow-sm fa-twitter o_editable_media"/>
</a>
<a target="_blank" href="/website/social/linkedin" class="s_social_media_linkedin">
<i class="fa rounded-circle shadow-sm fa-linkedin o_editable_media"/>
</a>
</div>
</div>
</div>
</div>
</div>
</div>
</section>
</template>
<template id="s_team_5" name="Team 5">
<section class="s_team_5 pb16 pt16">
<div class="container">
<div class="row s_col_no_bgcolor">
<t t-set="teams" t-value="{
'01': {'name': 'Ralph Edwards', 'position': 'Founder'},
'02': {'name': 'Robert Fox', 'position': 'Office manager'},
'03': {'name': 'Danny Bailey', 'position': 'Receptionist'},
}"/>
<div t-foreach="teams" t-as="team" class="col-12 col-sm-6 col-lg-4 py-2">
<div class="card h-100 tp-editor-bg-color-n-shadow bg-o-color-1" style="border-width: 0px !important;">
<img t-attf-src="/web/image/theme_prime.s_team_square_#{team}" class="card-img-top mx-auto" t-attf-alt="Team Image #{team}"/>
<div class="py-3 px-2 text-center">
<h5 class="card-title"><t t-out="teams[team]['name']"/></h5>
<p class="card-text"><t t-out="teams[team]['position']"/></p>
</div>
</div>
</div>
</div>
</div>
</section>
</template>
</odoo>
@@ -0,0 +1,254 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<template id="s_testimonial_1" name="Testimonial - 1">
<section class="s_testimonial_1 pb16 pt16">
<div class="container">
<div class="row s_col_no_bgcolor s_nb_column_fixed">
<div class="col-md-6 col-lg-4 py-3">
<div class="tp-editor-bg-color-n-shadow h-100 p-4 text-center">
<blockquote class="lead fw-light font-italic mb-5 tp-editor-bg-color-n-shadow">
"Proin a nisi id turpis pharetra fermentum ac eu sem. Morbi ullamcorper mi quis porttitor interdum. Maecenas luctus varius interdum. Duis commodo tincidunt velit non bibendum. Phasellus placerat sodales nunc."
</blockquote>
<img src="/web/image/theme_prime.s_testimonial_author_01" class="img-thumbnail rounded-circle o_image_64_contain" alt="Author Image 01"/>
<h5 class="mt-4 mb-1">John Doe</h5>
<span>Droggol</span>
</div>
</div>
<div class="col-md-6 col-lg-4 py-3">
<div class="tp-editor-bg-color-n-shadow h-100 p-4 text-center">
<blockquote class="lead fw-light font-italic mb-5 tp-editor-bg-color-n-shadow">
"Fusce sagittis ac orci sed tristique. Suspendisse a lobortis augue. Maecenas scelerisque varius mattis. Sed auctor fermentum libero, sed ullamcorper elit laoreet venenatis. Cras ac ex enim. Suspendisse sodales."
</blockquote>
<img src="/web/image/theme_prime.s_testimonial_author_02" class="img-thumbnail rounded-circle o_image_64_contain" alt="Author Image 02"/>
<h5 class="mt-4 mb-1">Vivamus Tem</h5>
<span>Google Inc.</span>
</div>
</div>
<div class="col-md-6 col-lg-4 py-3">
<div class="tp-editor-bg-color-n-shadow h-100 p-4 text-center">
<blockquote class="lead fw-light font-italic mb-5 tp-editor-bg-color-n-shadow">
"Etiam semper molestie sapien a egestas. In consequat venenatis ex, sit amet ultrices ante pretium et. Suspendisse nec hendrerit nulla, vitae convallis risus. Morbi quis tincidunt magna. Sed nec libero."
</blockquote>
<img src="/web/image/theme_prime.s_testimonial_author_03" class="img-thumbnail rounded-circle o_image_64_contain" alt="Author Image 03"/>
<h5 class="mt-4 mb-1">Donec Int</h5>
<span>Apple Ltd.</span>
</div>
</div>
</div>
</div>
</section>
</template>
<template id="s_testimonial_2" name="Testimonial - 2">
<section class="s_testimonial_2 pb32 pt32">
<div class="container">
<div class="row justify-content-center">
<div class="col-lg-8 text-center">
<img src="/web/image/theme_prime.s_testimonial_author_01" class="img-thumbnail rounded-circle tp-image-128-max" alt="Author Image 01"/>
<h5 class="mt-4 mb-1">John Doe</h5>
<em class="text-primary">Designer</em>
<blockquote class="lead fw-light font-italic mt-4 border-white tp-editor-bg-color-n-shadow">
"Proin a nisi id turpis pharetra fermentum ac eu sem. Morbi ullamcorper mi quis porttitor interdum. Maecenas luctus varius interdum. Duis commodo tincidunt velit non bibendum. Phasellus placerat sodales nunc. Proin a nisi id turpis pharetra fermentum ac eu sem. Morbi ullamcorper mi quis porttitor interdum."
</blockquote>
</div>
</div>
</div>
</section>
</template>
<template id="s_testimonial_3" name="Testimonial - 3">
<section class="s_testimonial_3">
<t t-set="uniq" t-value="datetime.datetime.now().microsecond"/>
<div t-attf-id="myCarousel{{uniq}}" class="s_carousel tp-custom-carousel s_carousel_rounded carousel slide" data-bs-interval="10000">
<!-- Indicators -->
<ol class="carousel-indicators">
<li t-attf-data-bs-target="#myCarousel{{uniq}}" data-bs-slide-to="0" class="active"/>
<li t-attf-data-bs-target="#myCarousel{{uniq}}" data-bs-slide-to="1"/>
<li t-attf-data-bs-target="#myCarousel{{uniq}}" data-bs-slide-to="2"/>
</ol>
<!-- Content -->
<div class="carousel-inner">
<!-- #01 -->
<div class="carousel-item pt48 pb48 active" data-name="Slide">
<div class="container">
<div class="row content justify-content-center text-center s_col_no_bgcolor s_nb_column_fixed">
<div class="carousel-content col-12 col-md-10">
<img class="img img-fluid tp-image-128-max rounded-circle shadow" src="/web/image/theme_prime.s_testimonial_author_01" alt="Author Image 01"></img>
<blockquote class="lead fw-light font-italic mt-3 border-white">
"Proin a nisi id turpis pharetra fermentum ac eu sem. Morbi ullamcorper mi quis porttitor interdum. Maecenas luctus varius interdum. Duis commodo tincidunt velit non bibendum. Phasellus placerat sodales nunc."
</blockquote>
<h5>John Doe</h5>
<span>Droggol</span>
</div>
</div>
</div>
</div>
<!-- #02 -->
<div class="carousel-item pt48 pb48" data-name="Slide">
<div class="container">
<div class="row content justify-content-center text-center s_col_no_bgcolor s_nb_column_fixed">
<div class="carousel-content col-12 col-md-10">
<img class="img img-fluid tp-image-128-max rounded-circle shadow" src="/web/image/theme_prime.s_testimonial_author_02" alt="Author Image 02"></img>
<blockquote class="lead fw-light font-italic mt-3 border-white">
"Fusce sagittis ac orci sed tristique. Suspendisse a lobortis augue. Maecenas scelerisque varius mattis. Sed auctor fermentum libero, sed ullamcorper elit laoreet venenatis. Cras ac ex enim. Suspendisse sodales volutpat."
</blockquote>
<h5>Vivamus Tem</h5>
<span>Google Inc.</span>
</div>
</div>
</div>
</div>
<!-- #03 -->
<div class="carousel-item pt48 pb48" data-name="Slide">
<div class="container">
<div class="row content justify-content-center text-center s_col_no_bgcolor s_nb_column_fixed">
<div class="carousel-content col-12 col-md-10">
<img class="img img-fluid tp-image-128-max rounded-circle shadow" src="/web/image/theme_prime.s_testimonial_author_03" alt="Author Image 03"></img>
<blockquote class="lead fw-light font-italic mt-3 border-white">
"Etiam semper molestie sapien a egestas. In consequat venenatis ex, sit amet ultrices ante pretium et. Suspendisse nec hendrerit nulla, vitae convallis risus. Morbi quis tincidunt magna. Sed nec libero."
</blockquote>
<h5>Donec Int</h5>
<span>Apple Ltd.</span>
</div>
</div>
</div>
</div>
</div>
<!-- Controls -->
<a class="carousel-control-prev o_not_editable" contenteditable="false" t-attf-href="#myCarousel{{uniq}}" data-bs-slide="prev" role="img" aria-label="Previous" title="Previous">
<span class="fa fa-chevron-left"></span>
<span class="visually-hidden">Previous</span>
</a>
<a class="carousel-control-next o_not_editable" contenteditable="false" t-attf-href="#myCarousel{{uniq}}" data-bs-slide="next" role="img" aria-label="Next" title="Next">
<span class="fa fa-chevron-right"></span>
<span class="visually-hidden">Next</span>
</a>
</div>
</section>
</template>
<template id="s_testimonial_4" name="Testimonial - 4">
<section class="s_testimonial_4">
<t t-set="uniq" t-value="datetime.datetime.now().microsecond"/>
<div t-attf-id="myCarousel{{uniq}}" class="s_carousel tp-custom-carousel s_carousel_bordered carousel slide" data-bs-interval="10000">
<!-- Indicators -->
<ol class="carousel-indicators">
<li t-attf-data-bs-target="#myCarousel{{uniq}}" data-bs-slide-to="0" class="active"/>
<li t-attf-data-bs-target="#myCarousel{{uniq}}" data-bs-slide-to="1"/>
<li t-attf-data-bs-target="#myCarousel{{uniq}}" data-bs-slide-to="2"/>
</ol>
<!-- Content -->
<div class="carousel-inner">
<!-- #01 -->
<div class="carousel-item pt80 pb80 active" data-name="Slide">
<div class="container">
<div class="row content justify-content-center s_col_no_bgcolor s_nb_column_fixed">
<div class="carousel-content col-12 col-lg-7">
<blockquote class="lead font-italic border-white">
"Proin a nisi id turpis pharetra fermentum ac eu sem. Morbi ullamcorper mi quis porttitor interdum. Maecenas luctus varius interdum. Duis commodo tincidunt velit non bibendum. Phasellus placerat sodales nunc."
</blockquote>
<div class="d-flex align-items-center">
<img class="flex-shrink-0 img img-fluid img-thumbnail o_image_64_contain me-3 rounded-circle" src="/web/image/theme_prime.s_testimonial_author_01" alt="Author Image 01"></img>
<div class="flex-grow-1">
<h5 class="mb-1">John Doe</h5>
<span>Designer</span>
</div>
</div>
</div>
</div>
</div>
</div>
<!-- #02 -->
<div class="carousel-item pt80 pb80" data-name="Slide">
<div class="container">
<div class="row content justify-content-center s_col_no_bgcolor s_nb_column_fixed">
<div class="carousel-content col-12 col-lg-7">
<blockquote class="lead font-italic border-white">
"Fusce sagittis ac orci sed tristique. Suspendisse a lobortis augue. Maecenas scelerisque varius mattis. Sed auctor fermentum libero, sed ullamcorper elit laoreet venenatis. Cras ac ex enim. Suspendisse sodales volutpat."
</blockquote>
<div class="d-flex align-items-center">
<img class="flex-shrink-0 img img-fluid img-thumbnail o_image_64_contain me-3 rounded-circle" src="/web/image/theme_prime.s_testimonial_author_02" alt="Author Image 02"></img>
<div class="flex-grow-1">
<h5 class="mb-1">Vivamus Tem</h5>
<span>Developer</span>
</div>
</div>
</div>
</div>
</div>
</div>
<!-- #03 -->
<div class="carousel-item pt80 pb80" data-name="Slide">
<div class="container">
<div class="row content justify-content-center s_col_no_bgcolor s_nb_column_fixed">
<div class="carousel-content col-12 col-lg-7">
<blockquote class="lead font-italic">
"Etiam semper molestie sapien a egestas. In consequat venenatis ex, sit amet ultrices ante pretium et. Suspendisse nec hendrerit nulla, vitae convallis risus. Morbi quis tincidunt magna. Sed nec libero."
</blockquote>
<div class="d-flex align-items-center">
<img class="flex-shrink-0 img img-fluid img-thumbnail o_image_64_contain me-3 rounded-circle" src="/web/image/theme_prime.s_testimonial_author_03" alt="Author Image 03"></img>
<div class="flex-grow-1">
<h5 class="mb-1">Donec Int</h5>
<span>Tester</span>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<!-- Controls -->
<a class="carousel-control-prev o_not_editable" contenteditable="false" t-attf-href="#myCarousel{{uniq}}" data-bs-slide="prev" role="img" aria-label="Previous" title="Previous">
<span class="fa fa-chevron-left"></span>
<span class="visually-hidden">Previous</span>
</a>
<a class="carousel-control-next o_not_editable" contenteditable="false" t-attf-href="#myCarousel{{uniq}}" data-bs-slide="next" role="img" aria-label="Next" title="Next">
<span class="fa fa-chevron-right"></span>
<span class="visually-hidden">Next</span>
</a>
</div>
</section>
</template>
<template id="s_testimonial_5" name="Testimonial - 5">
<section class="s_testimonial_5 pb16 pt16">
<div class="container">
<div class="row s_col_no_bgcolor">
<div class="col-lg-6 py-3">
<blockquote class="lead fw-light p-4 position-relative shadow border-primary">
"Proin a nisi id turpis pharetra fermentum ac eu sem. Morbi ullamcorper mi quis porttitor interdum. Maecenas luctus varius interdum. Duis commodo tincidunt velit non bibendum. Phasellus placerat sodales nunc."
</blockquote>
<div class="d-flex align-items-center mt-5">
<img class="flex-shrink-0 img img-fluid tp-author-image me-3 rounded-circle img-thumbnail" src="/web/image/theme_prime.s_testimonial_author_01" alt="Author Image 01"></img>
<div class="flex-grow-1">
<h5 class="mb-1">John Doe</h5>
<span>Designer</span>
</div>
</div>
</div>
<div class="col-lg-6 py-3">
<blockquote class="lead fw-light p-4 position-relative shadow border-primary">
"Fusce sagittis ac orci sed tristique. Suspendisse a lobortis augue. Maecenas scelerisque varius mattis. Sed auctor fermentum libero, sed ullamcorper elit laoreet venenatis. Cras ac ex enim. Suspendisse sodales volutpat."
</blockquote>
<div class="d-flex align-items-center mt-5">
<img class="flex-shrink-0 img img-fluid tp-author-image me-3 rounded-circle img-thumbnail" src="/web/image/theme_prime.s_testimonial_author_02" alt="Author Image 02"></img>
<div class="flex-grow-1">
<h5 class="mb-1">Vivamus Tem</h5>
<span>Developer</span>
</div>
</div>
</div>
</div>
</div>
</section>
</template>
<!-- Assets -->
<record id="theme_prime.s_testimonial_5_000_scss" model="ir.asset">
<field name="name">Testimonial 5 000 SCSS</field>
<field name="bundle">web.assets_frontend</field>
<field name="path">theme_prime/static/src/snippets/s_testimonial_5/000.scss</field>
</record>
</odoo>
File diff suppressed because one or more lines are too long
+350
View File
@@ -0,0 +1,350 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<!--
============================================================================
Dynamic Snippet Preview
============================================================================
-->
<template id="tp_preview_body" name="Preview: Body">
<t t-call="web.frontend_layout">
<t t-set="no_header" t-value="True"/>
<t t-set="no_footer" t-value="True"/>
<t t-set="no_livechat" t-value="True"/>
<t t-if="mobile">
<div class="d-flex text-center justify-content-between p-2 w-100 px-3">
<div class="small fw-bold" t-esc="datetime.datetime.now().strftime('%H:%M')"/>
<div class="small">
<i style="font-size:14px;" class="fa fa-wifi ms-1"></i>
<i style="font-size:14px;" class="fa fa-signal ms-1"></i>
<i style="font-size:14px;" class="fa fa-battery-full ms-1"/>
</div>
</div>
<div class="row g-0 mb-4 pb-2 border-bottom">
<div class="p-2 col-2 justify-content-center text-center align-items-center"><i style="font-size:18px;" class="fa text-muted fa-home"/></div>
<div class="p-2 col-7 text-truncate" style="background-color: #f7f8fb;border-radius: 40px;"><i class="fa text-muted fa-lock px-2 text-success"></i> <t t-esc="request.httprequest.url_root"/></div>
<div class="p-2 col-3 justify-content-between d-flex align-items-center"><i style="font-size:18px;" class="fa text-muted fa-plus-square-o ps-2"></i> <i style="font-size:18px;" class="fa fa-ellipsis-v pe-3"></i></div>
</div>
</t>
<div id="tp_wrap"></div>
</t>
</template>
<!--
============================================================================
Quick View
============================================================================
-->
<template id="tp_product_quick_view" name="Product">
<t t-cache="pricelist,product">
<t t-set="combination" t-value="product._get_first_possible_combination()"/>
<t t-set="combination_info" t-value="product._get_combination_info(combination, add_qty=add_qty or 1)"/>
<t t-set="product_variant" t-value="product.env['product.product'].browse(combination_info['product_id'])"/>
<t t-set="rtl_class" t-value="request.env['res.lang']._lang_get_direction(request.env.lang) == 'rtl' and 'o_rtl' or ''"/>
<section id="product_detail" t-attf-class="container o_not_editable oe_website_sale tp-product-quick-view-layout tp-noupdate-variant-change-url #{rtl_class}">
<a href="#" class="tp-close" title="Close">
<i class="dri dri-cross-l"></i>
</a>
<div class="row">
<div class="col-12 col-lg-6 col-xl-7 py-2 d-flex flex-column justify-content-center">
<div id="product_detail_main" t-att-data-image_width="website.product_page_image_width" t-att-data-image_layout="website.product_page_image_layout">
<t t-call="website_sale.shop_product_images"/>
</div>
<a t-att-href="product.website_url" class="btn btn-link btn-block mt-3 shadow-none">
<i class="fa fa-info-circle me-1"></i> Full Product Information
</a>
</div>
<div class="col-12 col-lg-6 col-xl-5 py-2" id="product_details">
<!-- Label -->
<t t-call="theme_prime.product_label">
<t t-set="label" t-value="product.dr_label_id"/>
<t t-set="style" t-valuef="1"/>
<t t-set="_classes" t-valuef="mb-2 d-inline-block position-relative top-0 start-0"/>
</t>
<h3 itemprop="name" t-field="product.name">Product Name</h3>
<t t-if="is_view_active('website_sale.product_comment')">
<t t-call="portal_rating.rating_widget_stars_static">
<t t-set="rating_avg" t-value="product.rating_avg"/>
<t t-set="trans_text_plural">%s reviews</t>
<t t-set="trans_text_singular">%s review</t>
<t t-set="rating_count" t-value="(trans_text_plural if product.rating_count > 1 else trans_text_singular) % product.rating_count"/>
</t>
</t>
<p t-field="product.description_sale" class="text-muted my-2" placeholder="A short description that will also appear on documents." />
<input id="wsale_user_email" type="hidden" t-att-value="user_email"/>
<form t-if="product._is_add_to_cart_possible()" action="/shop/cart/update" method="POST">
<input type="hidden" name="csrf_token" t-att-value="request.csrf_token()" t-nocache="The csrf token must always be up to date." />
<div class="js_product js_main_product mb-3">
<div>
<t t-call="website_sale.product_price"/>
<small t-if="combination_info['base_unit_price']"
class="ms-1 text-muted o_base_unit_price_wrapper d-none" groups="website_sale.group_show_uom_price">
<t t-call='website_sale.base_unit_price'/>
</small>
</div>
<hr/>
<t t-placeholder="select">
<input type="hidden" class="product_id" name="product_id" t-att-value="product_variant.id" />
<input type="hidden" class="product_template_id" name="product_template_id" t-att-value="product.id" />
<input t-if="product.public_categ_ids.ids" type="hidden" class="product_category_id" name="product_category_id" t-att-value="product.public_categ_ids.ids[0]" />
<input t-if="product.product_tag_ids.ids" type="hidden" class="product_tag_id" name="product_tag_id" t-att-value="product.product_tag_ids.ids[0]" />
<t t-if="combination" t-call="website_sale.variants">
<t t-set="ul_class" t-valuef="flex-column" />
<t t-set="parent_combination" t-value="None" />
</t>
<t t-else="">
<ul class="d-none js_add_cart_variants mb-0" t-att-data-attribute_exclusions="{'exclusions: []'}"/>
</t>
</t>
<p t-if="True" class="css_not_available_msg alert alert-warning mt-2">This combination does not exist.</p>
<div id="o_wsale_cta_wrapper" class="d-flex flex-wrap align-items-center mt-3">
<div t-if="is_view_active('website_sale.product_quantity')" t-attf-class="css_quantity input-group {{'d-none' if combination_info['prevent_zero_price_sale'] else 'd-inline-flex'}} me-2 mb-2 align-middle #{'input-group-lg' if ctaSizeBig else ''}" contenteditable="false">
<a t-attf-href="#" class="btn btn-link js_add_cart_json" aria-label="Remove one" title="Remove one">
<i class="fa fa-minus"></i>
</a>
<input type="text" class="form-control quantity text-center" data-min="1" name="add_qty" t-att-value="add_qty or 1"/>
<a t-attf-href="#" class="btn btn-link float_left js_add_cart_json" aria-label="Add one" title="Add one">
<i class="fa fa-plus"></i>
</a>
</div>
<div id="add_to_cart_wrap" t-attf-class="{{'d-none' if combination_info['prevent_zero_price_sale'] else 'd-inline-flex'}} align-items-center mb-2 me-auto">
<a role="button" id="add_to_cart" data-animation-selector=".product_detail_img" class="btn btn-primary btn-lg js_check_product a-submit flex-grow-1" href="#">
<i class="dri dri-cart me-1"/> Add to Cart
</a>
</div>
</div>
<div class="availability_messages o_not_editable mt-2"/>
<div id="contact_us_wrapper"
t-attf-class="{{'d-flex' if combination_info['prevent_zero_price_sale'] else 'd-none'}} oe_structure oe_structure_solo #{_div_classes}">
<section class="s_text_block" data-snippet="s_text_block" data-name="Text">
<div class="container">
<a t-att-href="website.contact_us_button_url"
class="btn btn-primary btn_cta">Contact Us
</a>
</div>
</section>
</div>
</div>
</form>
<p t-elif="not product.active" class="alert alert-warning">This product is no longer available.</p>
<p t-else="" class="alert alert-warning">This product has no valid combination.</p>
<hr/>
<!-- Brand -->
<t t-if="product.dr_brand_value_id">
<div class="row align-items-center">
<div class="col-6 col-md-3" t-if="product.dr_brand_value_id.dr_image" t-field="product.with_context(show_attribute=False).dr_brand_value_id.dr_image" t-options="{'widget': 'image'}"/>
<div class="col-12 col-md-9 mt-2 mt-md-0">
<h6>
<a class="tp-link-dark" t-attf-href="/shop?attrib=#{product.dr_brand_value_id.attribute_id.id}-#{product.dr_brand_value_id.id}">
<span t-field="product.dr_brand_value_id.name"/>
</a>
</h6>
<p class="mb-0" t-field="product.dr_brand_value_id.dr_brand_description"/>
</div>
</div>
<hr/>
</t>
<!-- Extra fields -->
<t t-call="theme_prime.product_extra_fields" />
<!-- Share -->
<div t-if="is_view_active('website_sale.product_share_buttons')" class="row g-0 align-items-center">
<div class="col-auto">
<h6 class="me-1 mb-0">Share :</h6>
</div>
<div class="col-auto">
<ul class="tp-share list-inline d-inline-block mb-0">
<a t-attf-href="https://www.facebook.com/sharer/sharer.php?u=#{d_url_root}#{product.website_url}" class="s_share_facebook" target="_blank">
<i class="fa fa-facebook mx-2"/>
</a>
<a t-attf-href="https://twitter.com/intent/tweet?text=#{product.name}&amp;url=#{d_url_root}#{product.website_url}" class="s_share_twitter" target="_blank">
<i class="fa fa-twitter mx-2"/>
</a>
<a t-attf-href="mailto:?body=#{d_url_root}#{product.website_url}&amp;subject=#{product.name}" class="s_share_email">
<i class="fa fa-envelope mx-2"/>
</a>
</ul>
</div>
</div>
</div>
</div>
</section>
</t>
</template>
<!--
============================================================================
Right Panel only (TO-DO) use existing quick view template
============================================================================
-->
<template id="tp_product_right_panel">
<t t-set="combination" t-value="product._get_first_possible_combination()"/>
<t t-set="combination_info" t-value="product._get_combination_info(combination, add_qty=add_qty or 1)"/>
<t t-set="product_variant" t-value="product.env['product.product'].browse(combination_info['product_id'])"/>
<t t-set="rtl_class" t-value="request.env['res.lang']._lang_get_direction(request.env.lang) == 'rtl' and 'o_rtl' or ''"/>
<section t-attf-class="#{'auto-add-product' if auto_add_product else '' } container px-0 o_not_editable oe_website_sale tp-product-variant-selector-layout tp-noupdate-variant-change-url #{rtl_class}">
<div id="product_detail_main" class="d-none" t-att-data-image_width="website.product_page_image_width" t-att-data-image_layout="website.product_page_image_layout">
<t t-call="website_sale.shop_product_images"/>
</div>
<div id="product_details">
<h2 class="tp-hover-color-primary m-0 mb-2 mt-2 text-truncate">
<a t-att-href="product.website_url">
<span t-field="product.name"/>
</a>
</h2>
<t t-if="is_view_active('website_sale.product_comment')">
<t t-call="portal_rating.rating_widget_stars_static">
<t t-set="rating_avg" t-value="product.rating_avg"/>
<t t-set="trans_text_plural">%s reviews</t>
<t t-set="trans_text_singular">%s review</t>
<t t-set="rating_count" t-value="(trans_text_plural if product.rating_count > 1 else trans_text_singular) % product.rating_count"/>
</t>
</t>
<p t-field="product.description_sale" class="mt-3" placeholder="A short description that will also appear on documents." />
<input id="wsale_user_email" type="hidden" t-att-value="user_email"/>
<form t-if="product._is_add_to_cart_possible()" class="d_cart_update_form" action="/shop/cart/update" method="POST">
<input type="hidden" name="csrf_token" t-att-value="request.csrf_token()" />
<div class="js_product js_main_product">
<div>
<t t-call="website_sale.product_price"/>
<small t-if="combination_info['base_unit_price']" class="o_base_unit_price_wrapper d-none" groups="website_sale.group_show_uom_price">
<t t-call='website_sale.base_unit_price'/>
</small>
</div>
<hr class="my-3"/>
<t t-placeholder="select">
<input type="hidden" class="product_id" name="product_id" t-att-value="product_variant.id" />
<input type="hidden" class="product_template_id" name="product_template_id" t-att-value="product.id" />
<input t-if="product.public_categ_ids.ids" type="hidden" class="product_category_id" name="product_category_id" t-att-value="product.public_categ_ids.ids[0]" />
<input t-if="product.product_tag_ids.ids" type="hidden" class="product_tag_id" name="product_tag_id" t-att-value="product.product_tag_ids.ids[0]" />
<t t-if="combination" t-call="website_sale.variants">
<t t-set="ul_class" t-valuef="flex-column" />
<t t-set="parent_combination" t-value="None" />
</t>
<t t-else="">
<ul class="d-none js_add_cart_variants mb-0" t-att-data-attribute_exclusions="{'exclusions: []'}"/>
</t>
</t>
<p t-if="True" class="css_not_available_msg alert alert-warning mt-2">This combination does not exist.</p>
<div class="availability_messages o_not_editable my-3"/>
<div id="o_wsale_cta_wrapper" class="d-flex flex-column align-items-center mt-3">
<div t-if="is_view_active('website_sale.product_quantity')" t-attf-class="css_quantity input-group {{'d-none' if combination_info['prevent_zero_price_sale'] else 'd-inline-flex'}} me-2 mb-2 align-middle #{'input-group-lg' if ctaSizeBig else ''}" contenteditable="false">
<a t-attf-href="#" class="btn btn-link js_add_cart_json" aria-label="Remove one" title="Remove one">
<i class="fa fa-minus"></i>
</a>
<input type="text" class="form-control quantity text-center" data-min="1" name="add_qty" t-att-value="add_qty or 1"/>
<a t-attf-href="#" class="btn btn-link float_left js_add_cart_json" aria-label="Add one" title="Add one">
<i class="fa fa-plus"></i>
</a>
</div>
<div id="contact_us_wrapper" t-if="combination_info['prevent_zero_price_sale']">
<a t-att-href="website.contact_us_button_url" class="btn btn-primary btn-lg btn_cta mt-2">Contact Us</a>
</div>
<div id="add_to_cart_wrap" t-else="">
<a role="button" id="add_to_cart" class="btn btn-primary btn-lg js_check_product a-submit mt-2" href="#">
<i class="dri dri-cart me-1"/> Add to Cart
</a>
</div>
</div>
</div>
</form>
<p t-elif="not product.active" class="alert alert-warning">This product is no longer available.</p>
<p t-else="" class="alert alert-warning">This product has no valid combination.</p>
</div>
</section>
</template>
<!--
============================================================================
Product Variant Selector Dialog
============================================================================
-->
<template id="product_variant_selector_dialog" name="Product Variant Selector Dialog">
<t t-cache="pricelist,product">
<t t-set="combination" t-value="product._get_first_possible_combination()"/>
<t t-set="combination_info" t-value="product._get_combination_info(combination, add_qty=add_qty or 1)"/>
<t t-set="product_variant" t-value="product.env['product.product'].browse(combination_info['product_id'])"/>
<t t-set="rtl_class" t-value="request.env['res.lang']._lang_get_direction(request.env.lang) == 'rtl' and 'o_rtl' or ''"/>
<section id="product_detail" t-attf-class="#{'auto-add-product' if auto_add_product else '' } container o_not_editable oe_website_sale tp-product-variant-selector-layout tp-noupdate-variant-change-url #{rtl_class}">
<!-- <div> -->
<a href="#" class="tp-close tp-icon-center-1 dr-d-icon shadow rounded-circle text-muted position-absolute top-0 end-0 m-2" title="Close">
<i class="fa fa-times"></i>
</a>
<!-- </div> -->
<div>
<div id="product_detail_main" t-att-data-image_width="website.product_page_image_width" t-att-data-image_layout="website.product_page_image_layout">
<t t-call="website_sale.shop_product_images"/>
</div>
</div>
<hr/>
<div id="product_details">
<h4 class="text-truncate" t-field="product.name">Product Name</h4>
<input id="wsale_user_email" type="hidden" t-att-value="user_email"/>
<form t-if="product._is_add_to_cart_possible()" action="/shop/cart/update" method="POST">
<input type="hidden" name="csrf_token" t-att-value="request.csrf_token()" t-nocache="The csrf token must always be up to date."/>
<div class="js_product js_main_product">
<div>
<t t-call="website_sale.product_price"/>
<small t-if="combination_info['base_unit_price']"
class="ms-1 text-muted o_base_unit_price_wrapper d-none" groups="website_sale.group_show_uom_price">
<t t-call='website_sale.base_unit_price'/>
</small>
</div>
<hr/>
<t t-placeholder="select">
<input type="hidden" class="product_id" name="product_id" t-att-value="product_variant.id" />
<input type="hidden" class="product_template_id" name="product_template_id" t-att-value="product.id" />
<input t-if="product.public_categ_ids.ids" type="hidden" class="product_category_id" name="product_category_id" t-att-value="product.public_categ_ids.ids[0]" />
<input t-if="product.product_tag_ids.ids" type="hidden" class="product_tag_id" name="product_tag_id" t-att-value="product.product_tag_ids.ids[0]" />
<t t-if="combination" t-call="website_sale.variants">
<t t-set="ul_class" t-valuef="flex-column" />
<t t-set="parent_combination" t-value="None" />
</t>
<t t-else="">
<ul class="d-none js_add_cart_variants mb-0" t-att-data-attribute_exclusions="{'exclusions: []'}"/>
</t>
</t>
<p t-if="True" class="css_not_available_msg alert alert-warning mt-2">This combination does not exist.</p>
<div class="availability_messages o_not_editable my-3"/>
<div id="o_wsale_cta_wrapper" class="d-flex flex-column align-items-center mt-3">
<div t-if="is_view_active('website_sale.product_quantity')" t-attf-class="css_quantity input-group {{'d-none' if combination_info['prevent_zero_price_sale'] else 'd-inline-flex'}} me-2 mb-2 align-middle #{'input-group-lg' if ctaSizeBig else ''}" contenteditable="false">
<a t-attf-href="#" class="btn btn-link js_add_cart_json" aria-label="Remove one" title="Remove one">
<i class="fa fa-minus"></i>
</a>
<input type="text" class="form-control quantity text-center" data-min="1" name="add_qty" t-att-value="add_qty or 1"/>
<a t-attf-href="#" class="btn btn-link float_left js_add_cart_json" aria-label="Add one" title="Add one">
<i class="fa fa-plus"></i>
</a>
</div>
<div id="add_to_cart_wrap" t-attf-class="{{'d-none' if combination_info['prevent_zero_price_sale'] else 'd-inline-flex'}} align-items-center w-100">
<a role="button" id="add_to_cart" class="btn btn-primary btn-lg js_check_product py-3 a-submit flex-grow-1" href="#">
<i class="dri dri-cart me-1"/> Add to Cart
</a>
<a t-if="is_view_active('website_sale.product_buy_now')" role="button" class="btn btn-primary-soft py-3 btn-lg o_we_buy_now" href="#">
<i class="dri dri-bolt me-1"/> Buy Now
</a>
</div>
</div>
<div id="contact_us_wrapper"
t-attf-class="{{'my-3 justify-content-center' if combination_info['prevent_zero_price_sale'] else 'd-none'}} oe_structure oe_structure_solo #{_div_classes}">
<section class="s_text_block" data-snippet="s_text_block" data-name="Text">
<div class="container">
<a t-att-href="website.contact_us_button_url"
class="btn btn-primary btn_cta w-100">Contact Us
</a>
</div>
</section>
</div>
</div>
</form>
<p t-elif="not product.active" class="alert alert-warning">This product is no longer available.</p>
<p t-else="" class="alert alert-warning">This product has no valid combination.</p>
</div>
</section>
</t>
</template>
</odoo>