339 lines
21 KiB
XML
339 lines
21 KiB
XML
<?xml version="1.0" encoding="utf-8"?>
|
|
<odoo>
|
|
|
|
<template id="component_navbar_mobile_account_info" name="Component: Navbar Mobile Account Info">
|
|
<t t-set="website_sale_order" t-value="website.sale_get_order()" />
|
|
<div class="tp-account-info">
|
|
<a class="o_wsale_my_cart tp-cart-sidebar-action d-lg-none" href="/shop/cart">
|
|
<i class="dri dri-cart o_not_editable"/>
|
|
<sup class="my_cart_quantity badge badge-primary mb-0 font-weight-bold" t-esc="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>
|
|
</template>
|
|
|
|
<template id="component_navbar_toggler" name="Component: Navbar Toggler">
|
|
<button class="navbar-toggler tp-navbar-toggler collapsed" type="button" data-toggle="collapse" aria-label="Menu" data-target="#top_menu_collapse">
|
|
<span class="icon-bar top-bar o_not_editable"></span>
|
|
<span class="icon-bar middle-bar o_not_editable"></span>
|
|
<span class="icon-bar bottom-bar o_not_editable"></span>
|
|
</button>
|
|
</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 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-btn-in-bottom-bar' if component == 'tp_wishlist' else ''} #{'o_wsale_my_cart tp-cart-sidebar-action' 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-esc="wishcount" class="my_wish_quantity o_animate_blink badge badge-primary"/>
|
|
<sup t-if="component == 'tp_cart'" class="my_cart_quantity badge badge-primary mb-0 font-weight-bold" t-esc="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-esc="button.get('name')"></t></div>
|
|
</li>
|
|
<li t-else="" t-attf-class="list-inline-item 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">
|
|
<t t-set="only_symbols" t-value="True"/>
|
|
<t t-set="_dropdown_classes" t-value="'flex-column'"/>
|
|
</t>
|
|
</ul>
|
|
</li>
|
|
</template>
|
|
|
|
<template id="tp_login_dropdown_component">
|
|
<li t-if="request.website.viewref('portal.user_sign_in').active" t-attf-class="list-inline-item o_not_editable #{_btn_classes}">
|
|
<div class="dropdown" t-ignore="true" t-if="not user_id._is_public()">
|
|
<a href="#" class="dropdown-toggle" data-toggle="dropdown" aria-label="Account Info"><i t-attf-class="dri dri-user #{_icon_classes}"/></a>
|
|
<div t-if="action_label" class="tp-action-btn-label">Account</div>
|
|
<div class="dropdown-menu dropdown-menu-right" role="menu">
|
|
<div class="dropdown-header"><t t-esc="user_id.name"/></div>
|
|
<a href="/my" role="menuitem" class="dropdown-item">My Account</a>
|
|
<a href="/my/orders" role="menuitem" class="dropdown-item">Orders</a>
|
|
<a href="/shop/wishlist" role="menuitem" class="dropdown-item">Wishlist (<span class="tp-wishlist-counter"><t t-esc="wishcount"/></span>)</a>
|
|
<div class="dropdown-divider"></div>
|
|
<a href="/web/session/logout?redirect=/" role="menuitem" class="dropdown-item">Logout</a>
|
|
</div>
|
|
</div>
|
|
<div class="dropdown" t-else="">
|
|
<a href="#" class="dropdown-toggle" data-toggle="dropdown" aria-label="Account Info"><i t-attf-class="dri dri-user #{_icon_classes}"/></a>
|
|
<div t-if="action_label" class="tp-action-btn-label">Account</div>
|
|
<div class="dropdown-menu dropdown-menu-right" role="menu">
|
|
<div class="dropdown-header">Guest</div>
|
|
<a href="/web/login" role="menuitem" class="dropdown-item">Login</a>
|
|
<div class="dropdown-divider"></div>
|
|
<a href="/shop/cart" role="menuitem" class="dropdown-item">My Cart</a>
|
|
<a href="/shop/wishlist" role="menuitem" class="dropdown-item">Wishlist (<span class="tp-wishlist-counter"><t t-esc="wishcount"/></span>)</a>
|
|
</div>
|
|
</div>
|
|
<div t-if="show_title" class="mt-1 small text-body">Account</div>
|
|
</li>
|
|
</template>
|
|
|
|
<template id="tp_donation_login_dropdown_component">
|
|
<li t-if="request.website.viewref('portal.user_sign_in').active" t-attf-class="list-inline-item o_not_editable #{_btn_classes}">
|
|
<div class="dropdown" t-ignore="true" t-if="not user_id._is_public()">
|
|
<a href="#" class="dropdown-toggle" data-toggle="dropdown" aria-label="Account Info"><i t-attf-class="dri dri-user #{_icon_classes}"/></a>
|
|
<div t-if="action_label" class="tp-action-btn-label">Account</div>
|
|
<div class="dropdown-menu dropdown-menu-right" role="menu">
|
|
<div class="dropdown-header"><t t-esc="user_id.name"/></div>
|
|
<a href="/my/campaigns" role="menuitem" class="dropdown-item">My Account</a>
|
|
<a href="/my/campaigns" role="menuitem" class="dropdown-item">My Campaigns</a>
|
|
<a href="/my/orders" role="menuitem" class="dropdown-item">Donations</a>
|
|
<div class="dropdown-divider"></div>
|
|
<a href="/web/session/logout?redirect=/" role="menuitem" class="dropdown-item">Logout</a>
|
|
</div>
|
|
</div>
|
|
<div class="dropdown" t-else="">
|
|
<a href="#" class="dropdown-toggle" data-toggle="dropdown" aria-label="Account Info"><i t-attf-class="dri dri-user #{_icon_classes}"/></a>
|
|
<div t-if="action_label" class="tp-action-btn-label">Account</div>
|
|
<div class="dropdown-menu dropdown-menu-right" role="menu">
|
|
<div class="dropdown-header">Guest</div>
|
|
<a href="/account/login" role="menuitem" class="dropdown-item">Login</a>
|
|
<div class="dropdown-divider"></div>
|
|
<a href="/shop/cart" role="menuitem" class="dropdown-item">My Donations</a>
|
|
</div>
|
|
</div>
|
|
<div t-if="show_title" class="mt-1 small text-body">Account</div>
|
|
</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_config')"></t>
|
|
<t t-set="show_on_scroll" t-value="request.website._get_dr_theme_config('bool_show_bottom_bar_onscroll')"></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 > 4"></t>
|
|
<t t-set="need_mobile_filters" t-value="request.website._get_dr_theme_config('bool_mobile_filters')"></t>
|
|
<div t-attf-class="tp-bottombar-component 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="bins != None and need_mobile_filters" class="d-flex justify-content-around border-bottom">
|
|
<div class="py-2 w-50 text-center d-flex justify-content-center align-items-center">
|
|
<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 class="">
|
|
<h6 class="d-inline mr-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')" class="py-2 w-50 border-left text-center d-flex justify-content-center align-items-center">
|
|
<div class="dropdown dropdown_sorty_by">
|
|
<h6 class="d-inline mr-1"><i class="fa fa-sort-amount-desc text-primary"></i></h6>
|
|
<a role="button" href="#" class="dropdown-toggle text-body py-2 h6" data-toggle="dropdown">
|
|
<t t-if="len(website_sale_sortable_current)">
|
|
<t t-raw="website_sale_sortable_current[0][0]"/>
|
|
</t>
|
|
<t t-else="">
|
|
Default
|
|
</t>
|
|
</a>
|
|
<div class="dropdown-menu p-0" role="menu">
|
|
<t t-foreach="website_sale_sortable" t-as="sortby">
|
|
<a role="menuitem" rel="noindex,nofollow" t-att-href="keep('/shop', order=sortby[1])" t-attf-class="dropdown-item d-block #{sortby_index != 0 and 'border-top'} p-3">
|
|
<span t-raw="sortby[0]"/>
|
|
</a>
|
|
</t>
|
|
</div>
|
|
</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 <= 2 and need_two_drower) or total_component == 4">
|
|
<t t-call="theme_prime.tp_bottom_action_btn_component"></t>
|
|
</t>
|
|
</t>
|
|
<t t-call="theme_prime.tp_login_dropdown_component">
|
|
<t t-set="_btn_classes" t-value="'tp-bottom-action-btn'"></t>
|
|
<t t-set="_icon_classes" t-value="'tp-action-btn-icon'"></t>
|
|
<t t-set="_classes" t-value="'tp-bottom-action-btn'"></t>
|
|
<t t-set="action_label" t-value="'Account'"></t>
|
|
</t>
|
|
</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 >= 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">
|
|
<li t-if="not no_search" class="list-inline-item">
|
|
<a href="#" class="tp-search-sidebar-action" t-att-data-search="search" data-placement="bottom" aria-label="Search">
|
|
<i class="dri dri-search o_not_editable"/>
|
|
</a>
|
|
<div t-if="show_title" class="mt-1 small text-body o_not_editable">Search</div>
|
|
</li>
|
|
|
|
<t t-set="website_sale_order" t-value="website.sale_get_order()" />
|
|
<li class="list-inline-item">
|
|
<a class="o_wsale_my_cart tp-cart-sidebar-action" href="/shop/cart">
|
|
<i class="dri dri-cart o_not_editable"/>
|
|
<sup class="my_cart_quantity badge badge-primary mb-0 font-weight-bold" t-esc="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 t-if="show_title" class="mt-1 small text-body o_not_editable">My Cart</div>
|
|
</li>
|
|
|
|
<t t-set="wishcount" t-value="len(request.env['product.wishlist'].current())"/>
|
|
<li class="list-inline-item">
|
|
<a class="o_wsale_my_wish" href="/shop/wishlist">
|
|
<i class="dri dri-wishlist o_not_editable"/>
|
|
<sup t-esc="wishcount" t-attf-class="my_wish_quantity o_animate_blink badge badge-primary"/>
|
|
</a>
|
|
<div t-if="show_title" class="mt-1 small text-body o_not_editable">Wishlist</div>
|
|
</li>
|
|
|
|
<t t-call="theme_prime.tp_login_dropdown_component"></t>
|
|
</template>
|
|
|
|
<template id="donation_component_account_info" name="Component Account Info">
|
|
<li t-if="not no_search" class="list-inline-item">
|
|
<a href="#" class="tp-search-sidebar-action" t-att-data-search="search" data-placement="bottom" aria-label="Search">
|
|
<i class="dri dri-search o_not_editable"/>
|
|
</a>
|
|
<div t-if="show_title" class="mt-1 small text-body o_not_editable">Search</div>
|
|
</li>
|
|
|
|
<t t-set="website_sale_order" t-value="website.sale_get_order()" />
|
|
<li class="list-inline-item">
|
|
<a class="o_wsale_my_cart tp-cart-sidebar-action" href="/shop/cart">
|
|
<i class="dri dri-cart o_not_editable"/>
|
|
<sup class="my_cart_quantity badge badge-primary mb-0 font-weight-bold" t-esc="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 t-if="show_title" class="mt-1 small text-body o_not_editable">My Donations</div>
|
|
</li>
|
|
|
|
<t t-call="theme_prime.tp_donation_login_dropdown_component"></t>
|
|
</template>
|
|
|
|
<template id="component_language_pricelist" name="Component Language + Pricelist">
|
|
<t t-set="website_sale_pricelists" t-value="website.get_pricelist_available(show_visible=True)" />
|
|
<t t-set="language_selector_visible" t-value="len(languages) > 1 or (website and (editable or translatable))"/>
|
|
<t t-set="pricelist_selector_visible" t-value="website_sale_pricelists and len(website_sale_pricelists)>1"/>
|
|
<t t-set="curr_pl" t-value="website.get_current_pricelist()" />
|
|
<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}">
|
|
<a t-attf-class="dropdown-toggle d-flex align-items-center #{_dropdown_classes}" href="#" data-toggle="dropdown" aria-haspopup="true" aria-expanded="true">
|
|
<t t-if="not only_symbols">
|
|
<t t-if="language_selector_visible and active_lang">
|
|
<t t-if="hide_country_flag">
|
|
<t t-esc="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="ml-1" t-esc="curr_pl.name"/>
|
|
</t>
|
|
</t>
|
|
<t t-else="">
|
|
<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-esc="curr_pl.name"></t>
|
|
</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-esc="pl.currency_id.symbol"/> <t t-esc="pl.name"/>
|
|
</option>
|
|
</t>
|
|
</select>
|
|
</li>
|
|
<li t-if="language_selector_visible" class="dropdown-divider"/>
|
|
</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 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-esc="lg[2].split('/').pop()"/>
|
|
</a>
|
|
<li class="dropdown-divider"/>
|
|
</t>
|
|
</t>
|
|
<t t-call="website.language_selector_add_language">
|
|
<t t-set="dropdown" t-value="True"/>
|
|
</t>
|
|
</div>
|
|
</div>
|
|
</template>
|
|
|
|
<template id="component_product_search_category_dropdown" name="Component Product Search Category Dropdown">
|
|
<t t-set="dr_categories" t-value="website._get_website_category()"/>
|
|
<div class="dropdown show tp-disable-open-on-hover tp-category-dropdown-container o_not_editable" t-if="dr_categories and website._get_dr_theme_config('bool_general_show_category_search')">
|
|
<a t-attf-class="btn dropdown-toggle d-flex align-items-center tp-category-dropdown h-100 #{_classes}" href="#" role="button" id="categoryDropdown" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
|
|
<i class="dri dri-category mr-2"/>
|
|
<span class="tp-active-text">All</span>
|
|
</a>
|
|
<div class="dropdown-menu" aria-labelledby="categoryDropdown">
|
|
<a class="dropdown-item" href="#">All</a>
|
|
<a t-foreach="dr_categories" t-as="categ" class="dropdown-item" href="#" t-att-data-id="categ.id">
|
|
<t t-esc="categ.name"/>
|
|
</a>
|
|
</div>
|
|
</div>
|
|
</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="ml-1 text-body" t-if="rating_count">
|
|
<t t-esc="rating_avg"/>
|
|
<span class="ml-1">(<t t-esc="rating_count"/> Reviews)</span>
|
|
</span>
|
|
</div>
|
|
</template>
|
|
|
|
</odoo>
|