@ -1,7 +1,7 @@ | 
				
			|||||
## Module <website_hide_button> | 
					## Module <website_hide_button> | 
				
			||||
 | 
					
 | 
				
			||||
####  01.04.2023 | 
					####  13.10.2023 | 
				
			||||
#### Version 16.0.1.0.0 | 
					#### Version 16.0.1.0.0 | 
				
			||||
#### ADD | 
					#### ADD | 
				
			||||
 | 
					
 | 
				
			||||
- Initial commit for Website Hide Button | 
					- Initial commit for Hide Price, Add To Cart And Quantity Button In Website | 
				
			||||
 | 
				
			|||||
| 
		 Before Width: | Height: | Size: 18 KiB After Width: | Height: | Size: 105 KiB  | 
| 
		 Before Width: | Height: | Size: 82 KiB After Width: | Height: | Size: 88 KiB  | 
| 
		 Before Width: | Height: | Size: 82 KiB After Width: | Height: | Size: 140 KiB  | 
| 
		 Before Width: | Height: | Size: 72 KiB After Width: | Height: | Size: 137 KiB  | 
| 
		 Before Width: | Height: | Size: 80 KiB After Width: | Height: | Size: 132 KiB  | 
| 
		 Before Width: | Height: | Size: 89 KiB After Width: | Height: | Size: 117 KiB  | 
@ -1,291 +0,0 @@ | 
				
			|||||
<?xml version = "1.0" encoding = "UTF-8" ?> | 
					 | 
				
			||||
<odoo> | 
					 | 
				
			||||
    <template id="product_view" inherit_id="website_sale.product"> | 
					 | 
				
			||||
        <xpath expr="//div[@id='wrap']" position="replace"> | 
					 | 
				
			||||
            <t t-if="login_user== False"> | 
					 | 
				
			||||
<!--            Product View of login user--> | 
					 | 
				
			||||
               <div itemscope="itemscope" itemtype="http://schema.org/Product" id="wrap" class="js_sale o_wsale_product_page"> | 
					 | 
				
			||||
                <div class="oe_structure oe_empty oe_structure_not_nearest" id="oe_structure_website_sale_product_1" data-editor-message="DROP BUILDING BLOCKS HERE TO MAKE THEM AVAILABLE ACROSS ALL PRODUCTS"/> | 
					 | 
				
			||||
                <section t-attf-class="container py-4 oe_website_sale #{'discount' if combination_info['has_discounted_price'] else ''}" id="product_detail" | 
					 | 
				
			||||
                    t-att-data-view-track="view_track and '1' or '0'" | 
					 | 
				
			||||
                    t-att-data-product-tracking-info="json.dumps(request.env['product.template'].get_google_analytics_data(combination_info))"> | 
					 | 
				
			||||
                    <div class="row align-items-center"> | 
					 | 
				
			||||
                        <div class="col-lg-6 d-flex align-items-center"> | 
					 | 
				
			||||
                            <div class="d-flex justify-content-between w-100"> | 
					 | 
				
			||||
                                <t t-call="website_sale.search"> | 
					 | 
				
			||||
                                    <t t-set="search" t-value="False"/> | 
					 | 
				
			||||
                                    <t t-set="_form_classes" t-valuef="mb-2 mb-lg-0"/> | 
					 | 
				
			||||
                                    <t t-set="_classes" t-value="'me-sm-2'"/> | 
					 | 
				
			||||
                                </t> | 
					 | 
				
			||||
                                <t t-set="website_sale_pricelists" t-value="website.get_pricelist_available(show_visible=True)" /> | 
					 | 
				
			||||
                                <t t-set="hasPricelistDropdown" t-value="website_sale_pricelists and len(website_sale_pricelists)>1"/> | 
					 | 
				
			||||
                                <t t-call="website_sale.pricelist_list"> | 
					 | 
				
			||||
                                    <t t-set="_classes" t-valuef="d-lg-inline ms-2"/> | 
					 | 
				
			||||
                                </t> | 
					 | 
				
			||||
                            </div> | 
					 | 
				
			||||
                        </div> | 
					 | 
				
			||||
                        <div class="col-lg-6 d-flex align-items-center"> | 
					 | 
				
			||||
                            <ol class="breadcrumb p-0 mb-2 m-lg-0"> | 
					 | 
				
			||||
                                <li class="breadcrumb-item o_not_editable"> | 
					 | 
				
			||||
                                    <a t-att-href="keep(category=0)">All Products</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> | 
					 | 
				
			||||
                    </div> | 
					 | 
				
			||||
                    <div class="row" id="product_detail_main" data-name="Product Page" | 
					 | 
				
			||||
                        t-att-data-image_width="website.product_page_image_width" | 
					 | 
				
			||||
                        t-att-data-image_layout="website.product_page_image_layout"> | 
					 | 
				
			||||
                        <t t-set="image_cols" t-value="website._get_product_page_proportions()"/> | 
					 | 
				
			||||
                        <div t-attf-class="col-lg-#{image_cols[0]} mt-lg-4 o_wsale_product_images position-relative" t-if="website.product_page_image_width != 'none'"> | 
					 | 
				
			||||
                            <t t-call="website_sale.shop_product_images"/> | 
					 | 
				
			||||
                        </div> | 
					 | 
				
			||||
                        <div t-attf-class="col-lg-#{image_cols[1]} mt-md-4" id="product_details"> | 
					 | 
				
			||||
                            <t t-set="base_url" t-value="product.get_base_url()"/> | 
					 | 
				
			||||
                            <h1 itemprop="name" t-field="product.name">Product Name</h1> | 
					 | 
				
			||||
                            <span itemprop="url" style="display:none;" t-esc="base_url + product.website_url"/> | 
					 | 
				
			||||
                            <span itemprop="image" style="display:none;" t-esc="base_url + website.image_url(product, 'image_1920')" /> | 
					 | 
				
			||||
                            <t t-if="is_view_active('website_sale.product_comment')"> | 
					 | 
				
			||||
                                <a href="#o_product_page_reviews" class="o_product_page_reviews_link text-decoration-none"> | 
					 | 
				
			||||
                                    <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> | 
					 | 
				
			||||
                                </a> | 
					 | 
				
			||||
                            </t> | 
					 | 
				
			||||
                            <p t-field="product.description_sale" class="text-muted my-2" placeholder="A short description that will also appear on documents." /> | 
					 | 
				
			||||
                            <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()" /> | 
					 | 
				
			||||
                                <div class="js_product js_main_product mb-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="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">This combination does not exist.</p> | 
					 | 
				
			||||
                                    <div id="o_wsale_cta_wrapper" class="d-flex flex-wrap align-items-center"> | 
					 | 
				
			||||
                                        <t t-set="hasQuantities" t-value="false"/> | 
					 | 
				
			||||
                                        <t t-set="hasBuyNow" t-value="false"/> | 
					 | 
				
			||||
                                        <t t-set="ctaSizeBig" t-value="not hasQuantities or not hasBuyNow"/> | 
					 | 
				
			||||
 | 
					 | 
				
			||||
 | 
					 | 
				
			||||
                                        <div id="product_option_block" class="d-flex flex-wrap w-100"/> | 
					 | 
				
			||||
                                    </div> | 
					 | 
				
			||||
                                    <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> | 
					 | 
				
			||||
                            <div id="product_attributes_simple"> | 
					 | 
				
			||||
                                <t t-set="single_value_attributes" t-value="product.valid_product_template_attribute_line_ids._prepare_single_value_for_display()"/> | 
					 | 
				
			||||
                                <table t-attf-class="table table-sm text-muted {{'' if single_value_attributes else 'd-none'}}"> | 
					 | 
				
			||||
                                    <t t-foreach="single_value_attributes" t-as="attribute"> | 
					 | 
				
			||||
                                        <tr> | 
					 | 
				
			||||
                                            <td> | 
					 | 
				
			||||
                                                <span t-field="attribute.name"/>: | 
					 | 
				
			||||
                                                <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 id="o_product_terms_and_share" class="d-flex justify-content-between flex-column flex-md-row align-items-md-end mb-3"> | 
					 | 
				
			||||
                            </div> | 
					 | 
				
			||||
                        </div> | 
					 | 
				
			||||
                    </div> | 
					 | 
				
			||||
                </section> | 
					 | 
				
			||||
                <div itemprop="description" t-field="product.website_description" class="oe_structure oe_empty mt16" id="product_full_description"/> | 
					 | 
				
			||||
                <div class="oe_structure oe_empty oe_structure_not_nearest mt16" id="oe_structure_website_sale_product_2" data-editor-message="DROP BUILDING BLOCKS HERE TO MAKE THEM AVAILABLE ACROSS ALL PRODUCTS"/> | 
					 | 
				
			||||
            </div> | 
					 | 
				
			||||
            </t> | 
					 | 
				
			||||
            <t t-else=""> | 
					 | 
				
			||||
<!--                Product View of Guest user--> | 
					 | 
				
			||||
              <div itemscope="itemscope" itemtype="http://schema.org/Product" id="wrap" class="js_sale o_wsale_product_page"> | 
					 | 
				
			||||
                <div class="oe_structure oe_empty oe_structure_not_nearest" id="oe_structure_website_sale_product_1" data-editor-message="DROP BUILDING BLOCKS HERE TO MAKE THEM AVAILABLE ACROSS ALL PRODUCTS"/> | 
					 | 
				
			||||
                <section t-attf-class="container py-4 oe_website_sale #{'discount' if combination_info['has_discounted_price'] else ''}" id="product_detail" | 
					 | 
				
			||||
                    t-att-data-view-track="view_track and '1' or '0'" | 
					 | 
				
			||||
                    t-att-data-product-tracking-info="json.dumps(request.env['product.template'].get_google_analytics_data(combination_info))"> | 
					 | 
				
			||||
                    <div class="row align-items-center"> | 
					 | 
				
			||||
                        <div class="col-lg-6 d-flex align-items-center"> | 
					 | 
				
			||||
                            <div class="d-flex justify-content-between w-100"> | 
					 | 
				
			||||
                                <t t-call="website_sale.search"> | 
					 | 
				
			||||
                                    <t t-set="search" t-value="False"/> | 
					 | 
				
			||||
                                    <t t-set="_form_classes" t-valuef="mb-2 mb-lg-0"/> | 
					 | 
				
			||||
                                    <t t-set="_classes" t-value="'me-sm-2'"/> | 
					 | 
				
			||||
                                </t> | 
					 | 
				
			||||
                                <t t-set="website_sale_pricelists" t-value="website.get_pricelist_available(show_visible=True)" /> | 
					 | 
				
			||||
                                <t t-set="hasPricelistDropdown" t-value="website_sale_pricelists and len(website_sale_pricelists)>1"/> | 
					 | 
				
			||||
                                <t t-call="website_sale.pricelist_list"> | 
					 | 
				
			||||
                                    <t t-set="_classes" t-valuef="d-lg-inline ms-2"/> | 
					 | 
				
			||||
                                </t> | 
					 | 
				
			||||
                            </div> | 
					 | 
				
			||||
                        </div> | 
					 | 
				
			||||
                        <div class="col-lg-6 d-flex align-items-center"> | 
					 | 
				
			||||
                            <ol class="breadcrumb p-0 mb-2 m-lg-0"> | 
					 | 
				
			||||
                                <li class="breadcrumb-item o_not_editable"> | 
					 | 
				
			||||
                                    <a t-att-href="keep(category=0)">All Products</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> | 
					 | 
				
			||||
                    </div> | 
					 | 
				
			||||
                    <div class="row" id="product_detail_main" data-name="Product Page" | 
					 | 
				
			||||
                        t-att-data-image_width="website.product_page_image_width" | 
					 | 
				
			||||
                        t-att-data-image_layout="website.product_page_image_layout"> | 
					 | 
				
			||||
                        <t t-set="image_cols" t-value="website._get_product_page_proportions()"/> | 
					 | 
				
			||||
                        <div t-attf-class="col-lg-#{image_cols[0]} mt-lg-4 o_wsale_product_images position-relative" t-if="website.product_page_image_width != 'none'"> | 
					 | 
				
			||||
                            <t t-call="website_sale.shop_product_images"/> | 
					 | 
				
			||||
                        </div> | 
					 | 
				
			||||
                        <div t-attf-class="col-lg-#{image_cols[1]} mt-md-4" id="product_details"> | 
					 | 
				
			||||
                            <t t-set="base_url" t-value="product.get_base_url()"/> | 
					 | 
				
			||||
                            <h1 itemprop="name" t-field="product.name">Product Name</h1> | 
					 | 
				
			||||
                            <span itemprop="url" style="display:none;" t-esc="base_url + product.website_url"/> | 
					 | 
				
			||||
                            <span itemprop="image" style="display:none;" t-esc="base_url + website.image_url(product, 'image_1920')" /> | 
					 | 
				
			||||
                            <t t-if="is_view_active('website_sale.product_comment')"> | 
					 | 
				
			||||
                                <a href="#o_product_page_reviews" class="o_product_page_reviews_link text-decoration-none"> | 
					 | 
				
			||||
                                    <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> | 
					 | 
				
			||||
                                </a> | 
					 | 
				
			||||
                            </t> | 
					 | 
				
			||||
                            <p t-field="product.description_sale" class="text-muted my-2" placeholder="A short description that will also appear on documents." /> | 
					 | 
				
			||||
                            <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()" /> | 
					 | 
				
			||||
                                <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> | 
					 | 
				
			||||
                                    <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="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">This combination does not exist.</p> | 
					 | 
				
			||||
                                       <div id="o_wsale_cta_wrapper" class="d-flex flex-wrap align-items-center"> | 
					 | 
				
			||||
                                        <t t-set="hasQuantities" t-value="false"/> | 
					 | 
				
			||||
                                        <t t-set="hasBuyNow" t-value="false"/> | 
					 | 
				
			||||
                                        <t t-set="ctaSizeBig" t-value="not hasQuantities or not hasBuyNow"/> | 
					 | 
				
			||||
 | 
					 | 
				
			||||
                                        <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" t-attf-class="btn btn-primary js_check_product a-submit flex-grow-1 #{'btn-lg' if ctaSizeBig else ''}" href="#"> | 
					 | 
				
			||||
                                                <i class="fa fa-shopping-cart me-2"/> | 
					 | 
				
			||||
                                                <span style="font-weight: bold">ADD TO CART</span> | 
					 | 
				
			||||
                                            </a> | 
					 | 
				
			||||
                                        </div> | 
					 | 
				
			||||
                                        <div id="product_option_block" class="d-flex flex-wrap w-100"/> | 
					 | 
				
			||||
                                    </div> | 
					 | 
				
			||||
                                    <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> | 
					 | 
				
			||||
                            <div id="product_attributes_simple"> | 
					 | 
				
			||||
                                <t t-set="single_value_attributes" t-value="product.valid_product_template_attribute_line_ids._prepare_single_value_for_display()"/> | 
					 | 
				
			||||
                                <table t-attf-class="table table-sm text-muted {{'' if single_value_attributes else 'd-none'}}"> | 
					 | 
				
			||||
                                    <t t-foreach="single_value_attributes" t-as="attribute"> | 
					 | 
				
			||||
                                        <tr> | 
					 | 
				
			||||
                                            <td> | 
					 | 
				
			||||
                                                <span t-field="attribute.name"/>: | 
					 | 
				
			||||
                                                <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 id="o_product_terms_and_share" class="d-flex justify-content-between flex-column flex-md-row align-items-md-end mb-3"> | 
					 | 
				
			||||
                            </div> | 
					 | 
				
			||||
                        </div> | 
					 | 
				
			||||
                    </div> | 
					 | 
				
			||||
                </section> | 
					 | 
				
			||||
                <div itemprop="description" t-field="product.website_description" class="oe_structure oe_empty mt16" id="product_full_description"/> | 
					 | 
				
			||||
                <div class="oe_structure oe_empty oe_structure_not_nearest mt16" id="oe_structure_website_sale_product_2" data-editor-message="DROP BUILDING BLOCKS HERE TO MAKE THEM AVAILABLE ACROSS ALL PRODUCTS"/> | 
					 | 
				
			||||
            </div> | 
					 | 
				
			||||
            </t> | 
					 | 
				
			||||
        </xpath> | 
					 | 
				
			||||
    </template> | 
					 | 
				
			||||
 | 
					 | 
				
			||||
    <template id="product_quantity" inherit_id="website_sale.product" name="Select Quantity"> | 
					 | 
				
			||||
        <xpath expr="//t[@t-set='hasQuantities']" position="attributes"> | 
					 | 
				
			||||
<!--            Product quantity view of Login user--> | 
					 | 
				
			||||
            <t t-if="login_user!= False"> | 
					 | 
				
			||||
                <attribute name="t-value" remove="false" add="true" separator=" "/> | 
					 | 
				
			||||
            </t> | 
					 | 
				
			||||
        </xpath> | 
					 | 
				
			||||
 | 
					 | 
				
			||||
        <xpath expr="//div[@id='add_to_cart_wrap']" position="before"> | 
					 | 
				
			||||
            <div 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"> | 
					 | 
				
			||||
<!--                Add to cart button of Login user--> | 
					 | 
				
			||||
                <t t-if="login_user!= 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"/> | 
					 | 
				
			||||
                    </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"/> | 
					 | 
				
			||||
                    </a> | 
					 | 
				
			||||
                </t> | 
					 | 
				
			||||
            </div> | 
					 | 
				
			||||
        </xpath> | 
					 | 
				
			||||
    </template> | 
					 | 
				
			||||
</odoo> | 
					 | 
				
			||||
@ -0,0 +1,15 @@ | 
				
			|||||
 | 
					<?xml version = "1.0" encoding = "UTF-8" ?> | 
				
			||||
 | 
					<odoo> | 
				
			||||
 | 
					    <!--  Hide Add To Cart button for guest users  --> | 
				
			||||
 | 
					    <template id="product" inherit_id="website_sale.product"> | 
				
			||||
 | 
					        <xpath expr="//div[@id='o_wsale_cta_wrapper']" position="attributes"> | 
				
			||||
 | 
					            <attribute name="t-if">login_user == True</attribute> | 
				
			||||
 | 
					        </xpath> | 
				
			||||
 | 
					    </template> | 
				
			||||
 | 
					    <!--  Hide Product price for guest users  --> | 
				
			||||
 | 
					    <template id="product_price" inherit_id="website_sale.product_price"> | 
				
			||||
 | 
					        <xpath expr="//div[@itemprop='offers']" position="attributes"> | 
				
			||||
 | 
					            <attribute name="t-if">login_user == True</attribute> | 
				
			||||
 | 
					        </xpath> | 
				
			||||
 | 
					    </template> | 
				
			||||
 | 
					</odoo> | 
				
			||||
@ -1,36 +0,0 @@ | 
				
			|||||
<?xml version = "1.0" encoding = "UTF-8" ?> | 
					 | 
				
			||||
<odoo> | 
					 | 
				
			||||
    <template id="product_item_view" inherit_id="website_sale.products_item"> | 
					 | 
				
			||||
        <xpath expr="//div[hasclass('product_price')]" position="replace"> | 
					 | 
				
			||||
<!--            Shop View of Login User--> | 
					 | 
				
			||||
            <t t-if="login_user== True"> | 
					 | 
				
			||||
                <div class="product_price" itemprop="offers" | 
					 | 
				
			||||
                     itemscope="itemscope" itemtype="http://schema.org/Offer"> | 
					 | 
				
			||||
                    <t t-if="'base_price' in template_price_vals"> | 
					 | 
				
			||||
                        <del t-attf-class="text-muted me-1 h6 mb-0" | 
					 | 
				
			||||
                             style="white-space: nowrap;"> | 
					 | 
				
			||||
                            <em class="small" | 
					 | 
				
			||||
                                t-esc="template_price_vals['base_price']" | 
					 | 
				
			||||
                                t-options="{'widget': 'monetary', 'display_currency': website.currency_id}"/> | 
					 | 
				
			||||
                        </del> | 
					 | 
				
			||||
                    </t> | 
					 | 
				
			||||
                    <span class="h6 mb-0" | 
					 | 
				
			||||
                          t-if="template_price_vals['price_reduce'] or not website.prevent_zero_price_sale" | 
					 | 
				
			||||
                          t-esc="template_price_vals['price_reduce']" | 
					 | 
				
			||||
                          t-options="{'widget': 'monetary', 'display_currency': website.currency_id}"/> | 
					 | 
				
			||||
                    <span class="h6 mb-0" t-else="" | 
					 | 
				
			||||
                          t-field="website.prevent_zero_price_sale_text"/> | 
					 | 
				
			||||
                    <span itemprop="price" style="display:none;" | 
					 | 
				
			||||
                          t-esc="template_price_vals['price_reduce']"/> | 
					 | 
				
			||||
                    <span itemprop="priceCurrency" style="display:none;" | 
					 | 
				
			||||
                          t-esc="website.currency_id.name"/> | 
					 | 
				
			||||
                </div> | 
					 | 
				
			||||
            </t> | 
					 | 
				
			||||
            <t t-else=""> | 
					 | 
				
			||||
<!--                Product View of Guest User--> | 
					 | 
				
			||||
                <div class="product_price" itemprop="offers" | 
					 | 
				
			||||
                     itemscope="itemscope" itemtype="http://schema.org/Offer"/> | 
					 | 
				
			||||
            </t> | 
					 | 
				
			||||
        </xpath> | 
					 | 
				
			||||
    </template> | 
					 | 
				
			||||
</odoo> | 
					 | 
				
			||||
@ -0,0 +1,9 @@ | 
				
			|||||
 | 
					<?xml version = "1.0" encoding = "UTF-8" ?> | 
				
			||||
 | 
					<odoo> | 
				
			||||
 | 
					    <!-- Hide product price for Guest users  --> | 
				
			||||
 | 
					    <template id="products_item" inherit_id="website_sale.products_item"> | 
				
			||||
 | 
					        <xpath expr="//div[hasclass('product_price')]" position="attributes"> | 
				
			||||
 | 
					            <attribute name="t-if">login_user == True</attribute> | 
				
			||||
 | 
					        </xpath> | 
				
			||||
 | 
					    </template> | 
				
			||||
 | 
					</odoo> | 
				
			||||