{"en_US": "<t name=\"Products\" t-name=\"website_sale.products\">\n        <t t-call=\"website.layout\">\n            <t t-set=\"additional_title\" t-value=\"category.name\"/>\n            <t t-set=\"grid_block_name\">Grid</t>\n            <t t-set=\"product_block_name\">Product</t>\n\n            <!-- Qweb variable defining the class suffix for navbar items.\n                 Change accordingly to the derired visual result (eg. `primary`, `dark`...)-->\n            <t t-set=\"navClass\" t-valuef=\"light\"/>\n\n            <!-- Check for active options: the stored value may be used in sub-templates too  -->\n            <t t-set=\"opt_wsale_fullwidth\" t-value=\"is_view_active('website_sale.shop_fullwidth')\"/>\n            <t t-set=\"opt_wsale_categories\" t-value=\"is_view_active('website_sale.products_categories')\"/>\n            <t t-set=\"opt_wsale_attributes\" t-value=\"is_view_active('website_sale.products_attributes')\"/>\n            <t t-set=\"opt_wsale_filter_price\" t-value=\"is_view_active('website_sale.filter_products_price')\"/>\n            <t t-set=\"opt_wsale_filter_tags\" t-value=\"is_view_active('website_sale.filter_products_tags')\"/>\n            <t t-set=\"opt_wsale_design_grid\" t-value=\"is_view_active('website_sale.products_design_grid')\"/>\n\n            <t t-set=\"opt_wsale_categories_top\" t-value=\"is_view_active('website_sale.products_categories_top')\"/>\n            <t t-set=\"opt_wsale_attributes_top\" t-value=\"is_view_active('website_sale.products_attributes_top')\"/>\n            <t t-set=\"opt_wsale_floating_bar\" t-value=\"is_view_active('website_sale.floating_bar')\"/>\n\n            <t t-set=\"website_sale_pricelists\" t-value=\"website.get_pricelist_available(show_visible=True)\"/>\n            <t t-set=\"website_sale_sortable\" t-value=\"website._get_product_sort_mapping()\"/>\n\n            <t t-set=\"hasLeftColumn\" t-value=\"opt_wsale_categories or opt_wsale_attributes\"/>\n\n            <t t-set=\"isFilteringByPrice\" t-if=\"opt_wsale_filter_price\" t-value=\"float_round(available_min_price, 2) != float_round(min_price, 2) or float_round(available_max_price, 2) != float_round(max_price, 2)\"/>\n            <t t-set=\"hasPricelistDropdown\" t-value=\"website_sale_pricelists and len(website_sale_pricelists)&gt;1\"/>\n            <t t-set=\"isSortingBy\" t-value=\"[sort for sort in website_sale_sortable if sort[0]==request.params.get('order', '')]\"/>\n\n            <t t-set=\"wsale_has_filters_btn\" t-value=\"opt_wsale_categories or opt_wsale_attributes or opt_wsale_attributes_top\"/>\n            <t t-set=\"wsale_has_filters_btn_lg\" t-value=\"opt_wsale_attributes_top\"/>\n\n            <div id=\"wrap\" class=\"js_sale o_wsale_products_page\">\n                <div class=\"oe_structure oe_empty oe_structure_not_nearest\" id=\"oe_structure_website_sale_products_1\"/>\n                <div id=\"o_wsale_container\" t-attf-class=\"oe_website_sale                         {{opt_wsale_fullwidth and 'container-fluid o_wsale_page_fluid' or 'o_wsale_page_contained container'}}                         {{layout_mode == 'list' and 'o_wsale_layout_list' or 'o_wsale_layout_catalog'}}                         {{opt_wsale_categories_top and 'o_wsale_has_filmstrip'}}                         {{opt_wsale_floating_bar and 'o_wsale_has_floating_bar'}}                         {{hasLeftColumn and 'o_wsale_has_sidebar'}}                         {{editionPreviews and 'o_wsale_edit_preview_enabled'}}\" t-attf-style=\"--o-wsale-products-grid-gap: {{gap}};\" t-att-data-ppg=\"ppg\" t-att-data-ppr=\"ppr\" t-att-data-default-sort=\"website.shop_default_sort\">\n                    <div class=\"row o_wsale_products_main_row flex-nowrap\">\n                        <aside t-if=\"hasLeftColumn\" id=\"products_grid_before\" class=\"d-none d-lg-block position-sticky align-self-start col clearfix\">\n                            <div class=\"o_wsale_products_grid_before_rail vh-100 ms-n2 pt-2 px-lg-2 pb-lg-5 ps-2 overflow-y-scroll\">\n                                <t t-set=\"is_sidebar_collapsible\" t-value=\"is_view_active('website_sale.products_categories_list_collapsible')\"/>\n                                <div t-if=\"opt_wsale_categories\" t-att-class=\"'products_categories'                                                 + (' accordion accordion-flush' if is_sidebar_collapsible else ' mb-3')\">\n                                    <t t-call=\"website_sale.products_categories_list\"/>\n                                </div>\n                                <t t-set=\"show_price_filter\" t-value=\"opt_wsale_filter_price and opt_wsale_attributes\"/>\n                                <div t-if=\"attrib_values or tags or (                                         show_price_filter and isFilteringByPrice                                     )\" class=\"py-3 border-bottom\">\n                                    <a t-att-href=\"keep(attribute_values=0, tags=0, min_price=0, max_price=0)\" t-attf-class=\"btn btn-{{navClass}} d-flex align-items-center py-1\" title=\"Clear Filters\">\n                                        <small class=\"mx-auto\"><b>Clear Filters</b></small>\n                                        <i class=\"oi oi-close\" role=\"presentation\"/>\n                                    </a>\n                                </div>\n                                <div t-attf-class=\"products_attributes_filters d-empty-none {{opt_wsale_categories and 'border-top'}}\"/>\n                                <t t-if=\"show_price_filter\" t-call=\"website_sale.filter_products_price\">\n                                    <t t-set=\"_classes\" t-valuef=\"{{is_sidebar_collapsible and 'accordion accordion-flush'}} {{is_sidebar_collapsible and (opt_wsale_categories or len(attributes) &gt; 0) and 'border-top'}}\"/>\n                                </t>\n                            </div>\n                        </aside>\n                        <div id=\"products_grid\" t-attf-class=\"col\">\n                            <t t-set=\"_header_has_content\" t-value=\"category or opt_wsale_categories_top or (not opt_wsale_floating_bar and (opt_wsale_attributes_top or is_view_active('website_sale.search') or is_view_active('website_sale.sort') or hasPricelistDropdown))\"/>\n\n                            <header id=\"o_wsale_products_header\" t-attf-class=\"d-flex flex-column gap-2 {{_header_has_content and 'py-3' or (not _header_has_content and not opt_wsale_design_grid and 'py-3')}}\">\n                                <t t-if=\"category and not search\" t-call=\"website_sale.products_breadcrumb\">\n                                    <t t-set=\"_classes\" t-valuef=\"d-none d-lg-flex w-100 p-0 mb-0 small\"/>\n                                </t>\n                                <h1 t-if=\"category or search\" t-attf-class=\"d-flex gap-1 align-items-center mb-0 lh-lg {{search and 'base-fs font-sans-serif' or 'fs-3'}} {{search and bool(category) and 'mb-2'}}\">\n                                    <a t-if=\"(search and not category) or (not search and category)\" t-attf-class=\"btn ps-0 pe-2 {{not search and 'd-lg-none'}}\" t-att-href=\"keep('%s/category/%s' % (shop_path, slug(category.parent_id))) if category.parent_id else keep(shop_path, search=0)\" role=\"button\" t-attf-title=\"Back to {{category.parent_id and category.parent_id.name or 'Shop'}}\">\n                                        <i class=\"oi oi-arrow-left\" role=\"img\"/>\n                                    </a>\n                                    <t t-if=\"search and category\">\n                                        <span class=\"text-muted\">Searching</span>\n                                        <span class=\"badge text-bg-info fw-normal base-fs\">\n                                            <t t-esc=\"search\"/>\n                                            <a title=\"Clear search for this category\" t-att-href=\"keep(search=0)\" class=\"link-info\">\n                                                <i class=\"oi oi-close\" role=\"img\"/>\n                                            </a>\n                                        </span>\n                                        <span class=\"text-muted\">in</span>\n                                        <span class=\"badge text-bg-primary fw-normal base-fs\">\n                                            <t t-esc=\"category.name\"/>\n                                            <a title=\"Search globally\" t-att-href=\"keep(shop_path, search=search)\">\n                                                <i class=\"oi oi-close\" role=\"img\"/>\n                                            </a>\n                                        </span>\n                                    </t>\n                                    <span t-elif=\"search\">\n                                        <span class=\"text-muted\">Search results for </span>'<strong t-esc=\"search\"/>' <small t-if=\"search_count\" class=\"text-muted\"> (<t t-esc=\"search_count\"/>)</small>\n                                    </span>\n                                    <t t-elif=\"category\" t-esc=\"category.name\"/>\n                                </h1>\n                                <h1 class=\"h4-fs\" t-if=\"not category and not search\">\n                                    All products\n                                </h1>\n                                <t t-if=\"category\">\n                                    <t t-set=\"editor_msg\">\n                                        Drag building blocks here to customize the header for\n                                        \"<t t-esc=\"category.name\"/>\" category.\n                                    </t>\n                                    <div id=\"category_header\" t-att-data-editor-message=\"editor_msg\" t-field=\"category.website_description\"/>\n                                </t>\n                                <t t-if=\"opt_wsale_categories_top\" t-call=\"website_sale.filmstrip_categories\"/>\n                                <div t-if=\"not opt_wsale_floating_bar\" class=\"products_header btn-toolbar flex-nowrap align-items-center justify-content-between gap-1 gap-lg-2 gap-xl-3\">\n                                    <t t-if=\"is_view_active('website_sale.search')\">\n                                        <t t-set=\"_has_all_sibligns\" t-value=\"hasPricelistDropdown and is_view_active('website_sale.sort') and wsale_has_filters_btn\"/>\n                                        <!-- Desktop Search button -->\n                                        <div t-attf-class=\"o_wsale_products_header_search_form_container {{ _has_all_sibligns and 'd-none d-sm-inline-block'}} col-xl-5 me-auto {{not hasLeftColumn and 'col-xl-6'}}\" t-call=\"website_sale.search\">\n                                            <t t-if=\"category\" t-set=\"placeholder\">Search in <t t-out=\"category.name\"/></t>\n                                            <t t-set=\"search\" t-value=\"original_search or search\"/>\n                                        </div>\n                                        <!-- Mobile Search button -->\n                                        <a t-attf-class=\"btn o_not_editable {{_has_all_sibligns and 'd-inline-block d-sm-none' or 'd-none'}} me-auto btn-{{navClass}}\" data-bs-target=\"#o_wsale_search_modal\" data-bs-toggle=\"modal\" role=\"button\" title=\"Search Products\" href=\"#\">\n                                            <i class=\"oi oi-search\" role=\"img\"/>\n                                        </a>\n                                    </t>\n                                    <t t-if=\"hasPricelistDropdown\" t-call=\"website_sale.pricelist_list\"/>\n                                    <t t-if=\"is_view_active('website_sale.sort')\" t-call=\"website_sale.sort\"/>\n                                    <button t-if=\"wsale_has_filters_btn\" t-attf-class=\"btn btn-{{navClass}} position-relative {{not wsale_has_filters_btn_lg and 'd-lg-none'}} {{not is_view_active('website_sale.search') and 'ms-auto'}} text-nowrap\" title=\"Filters\" data-bs-toggle=\"offcanvas\" data-bs-target=\"#o_wsale_offcanvas\">\n                                        <i class=\"oi oi-settings-adjust\" role=\"img\"/>\n                                        <small t-attf-class=\"ms-1 {{(hasPricelistDropdown and is_view_active('website_sale.search') and is_view_active('website_sale.sort')) and 'd-none d-md-inline-block'}}\">Filters</small>\n                                        <span t-if=\"isFilteringByPrice or attrib_set or tags\" t-attf-class=\"position-absolute top-0 start-100 translate-middle border border-{{navClass}} rounded-circle bg-danger p-1\">\n                                            <span class=\"visually-hidden\">filters active</span>\n                                        </span>\n                                    </button>\n                                </div>\n                                <div t-if=\"original_search and products\" class=\"alert alert-warning mt8\">\n                                    No results found for '<span t-esc=\"original_search\"/>'. Showing results for '<span t-esc=\"search\"/>'.\n                                </div>\n                            </header>\n\n                            <div t-if=\"products\" class=\"o_wsale_products_grid_table_wrapper\">\n                                <t t-set=\"grid_md_allow_custom_cols\" t-value=\"hasLeftColumn\"/>\n                                <t t-set=\"grid_md_use_3col\" t-value=\"(not hasLeftColumn and ppr == 4) or (opt_wsale_fullwidth and ppr &gt; 3)\"/>\n\n                                <section id=\"o_wsale_products_grid\" t-attf-class=\"o_wsale_products_grid_table grid {{grid_md_allow_custom_cols and 'o_wsale_products_grid_table_md'}}\" t-attf-style=\"--o-wsale-ppr: {{ppr}}; --o-wsale-ppg: {{ppg}}\" t-att-data-name=\"grid_block_name\">\n                                    <t t-foreach=\"bins\" t-as=\"tr_product\">\n                                        <t t-foreach=\"tr_product\" t-as=\"td_product\">\n                                            <t t-if=\"td_product\">\n                                                <t t-set=\"col_height\" t-value=\"td_product['y']\"/>\n                                                <t t-set=\"col_width\" t-value=\"12 // ppr * td_product['x']\"/>\n                                                <t t-set=\"col_class\" t-valuef=\"g-col-6\"/>\n                                                <t t-set=\"col_class_lg\" t-value=\"'g-col-lg-' + str(col_width)\"/>\n                                                <t t-set=\"col_class_md\" t-value=\"grid_md_allow_custom_cols and ('g-col-md-' + str(col_width)) or grid_md_use_3col and 'g-col-md-4' or 'g-col-md-6'\"/>\n                                                <t t-set=\"col_is_stretched\" t-value=\"(td_product['x'] &gt;= td_product['y'] * 2)\"/>\n                                                <t t-set=\"col_is_custom_portrait\" t-value=\"not col_is_stretched and (col_height &gt; td_product['x'])\"/>\n                                                <div t-attf-class=\"oe_product {{col_is_custom_portrait and 'oe_product_custom_portrait'}} {{col_class}} {{col_class_md}} {{col_class_lg}} {{col_is_stretched and 'oe_product_size_stretch'}}\" t-attf-style=\"--o-wsale-products-grid-product-col-height: {{col_height}};\" t-att-data-ribbon-id=\"td_product['ribbon'].id\" t-att-data-colspan=\"td_product['x'] != 1 and td_product['x']\" t-att-data-rowspan=\"td_product['y'] != 1 and td_product['y']\" t-att-data-name=\"product_block_name\">\n                                                    <div t-attf-class=\"o_wsale_product_grid_wrapper position-relative h-100 o_wsale_product_grid_wrapper_#{td_product['x']}_#{td_product['y']}\">\n                                                        <t t-call=\"website_sale.products_item\">\n                                                            <t t-set=\"product\" t-value=\"td_product['product']\"/>\n                                                        </t>\n                                                    </div>\n                                                </div>\n                                            </t>\n                                        </t>\n                                    </t>\n                                </section>\n                            </div>\n                            <div t-else=\"\" class=\"text-center text-muted mt128 mb256\">\n                                <t t-if=\"not search\">\n                                    <h3 class=\"mt8\">No product defined</h3>\n                                    <p t-if=\"category\">No product defined in this category.</p>\n                                </t>\n                                <t t-else=\"\">\n                                    <h3 class=\"mt8\">No results</h3>\n                                    <p>No results for \"<strong t-esc=\"search\"/>\"<t t-if=\"category\"> in category \"<strong t-esc=\"category.display_name\"/>\"</t>.</p>\n                                    <a t-if=\"category\" t-att-href=\"keep(shop_path, search=search)\" t-attf-title=\"Search {{search}} globally\" class=\"d-block pb-5\">\n                                        Search globally\n                                    </a>\n                                </t>\n                                <div t-ignore=\"true\" groups=\"sales_team.group_sale_manager\" class=\"alert alert-info d-inline-block mx-auto\">\n                                    Click <i>'New'</i> in the top-right corner to create your first product.\n                                </div>\n                            </div>\n                            <div id=\"o_wsale_pager\" t-attf-class=\"products_pager d-flex justify-content-center {{opt_wsale_design_grid and 'py-4' or 'py-5 pb-4'}}\">\n                                <t t-call=\"website.pager\"/>\n                            </div>\n                            <t t-if=\"category\">\n                                <t t-set=\"footer_editor_message\">\n                                    Drag building blocks here to customize the footer for\n                                    \"<t t-esc=\"category.name\"/>\" category.\n                                </t>\n                                <div class=\"mb16\" id=\"category_footer\" t-att-data-editor-message=\"footer_editor_message\" t-field=\"category.website_footer\"/>\n                            </t>\n                        </div>\n                    </div>\n\n                    <t t-call=\"website_sale.o_wsale_offcanvas\"/>\n                </div>\n                <div class=\"oe_structure oe_empty oe_structure_not_nearest\" id=\"oe_structure_website_sale_products_2\"/>\n            </div>\n            <div t-if=\"is_view_active('website_sale.search')\" id=\"o_wsale_search_modal\" class=\"modal fade css_editable_mode_hidden\" aria-hidden=\"true\" tabindex=\"-1\">\n                <div class=\"modal-dialog modal-lg pt-5\">\n                    <div class=\"modal-content mt-5 bg-transparent border-0\">\n                        <div class=\"o_container_small\">\n                            <t t-call=\"website.website_search_box_input\">\n                                <t t-set=\"default_style\" t-valuef=\"true\"/>\n                                <t t-set=\"search_type\" t-valuef=\"products\"/>\n                                <t t-set=\"_classes\" t-valuef=\"input-group rounded o_cc o_cc1 mb-1\"/>\n                                <t t-set=\"_input_classes\" t-valuef=\"border-0 p-3\"/>\n                                <t t-set=\"_submit_classes\" t-valuef=\"px-4\"/>\n                                <t t-if=\"category\" t-set=\"placeholder\">Search in <t t-out=\"category.name\"/></t>\n                            </t>\n                        </div>\n                    </div>\n                </div>\n            </div>\n        </t>\n    </t>", "fr_FR": "<t name=\"Products\" t-name=\"website_sale.products\">\n        <t t-call=\"website.layout\">\n            <t t-set=\"additional_title\" t-value=\"category.name\"/>\n            <t t-set=\"grid_block_name\">Grid</t>\n            <t t-set=\"product_block_name\">Produit</t>\n\n            <!-- Qweb variable defining the class suffix for navbar items.\n                 Change accordingly to the derired visual result (eg. `primary`, `dark`...)-->\n            <t t-set=\"navClass\" t-valuef=\"light\"/>\n\n            <!-- Check for active options: the stored value may be used in sub-templates too  -->\n            <t t-set=\"opt_wsale_fullwidth\" t-value=\"is_view_active('website_sale.shop_fullwidth')\"/>\n            <t t-set=\"opt_wsale_categories\" t-value=\"is_view_active('website_sale.products_categories')\"/>\n            <t t-set=\"opt_wsale_attributes\" t-value=\"is_view_active('website_sale.products_attributes')\"/>\n            <t t-set=\"opt_wsale_filter_price\" t-value=\"is_view_active('website_sale.filter_products_price')\"/>\n            <t t-set=\"opt_wsale_filter_tags\" t-value=\"is_view_active('website_sale.filter_products_tags')\"/>\n            <t t-set=\"opt_wsale_design_grid\" t-value=\"is_view_active('website_sale.products_design_grid')\"/>\n\n            <t t-set=\"opt_wsale_categories_top\" t-value=\"is_view_active('website_sale.products_categories_top')\"/>\n            <t t-set=\"opt_wsale_attributes_top\" t-value=\"is_view_active('website_sale.products_attributes_top')\"/>\n            <t t-set=\"opt_wsale_floating_bar\" t-value=\"is_view_active('website_sale.floating_bar')\"/>\n\n            <t t-set=\"website_sale_pricelists\" t-value=\"website.get_pricelist_available(show_visible=True)\"/>\n            <t t-set=\"website_sale_sortable\" t-value=\"website._get_product_sort_mapping()\"/>\n\n            <t t-set=\"hasLeftColumn\" t-value=\"opt_wsale_categories or opt_wsale_attributes\"/>\n\n            <t t-set=\"isFilteringByPrice\" t-if=\"opt_wsale_filter_price\" t-value=\"float_round(available_min_price, 2) != float_round(min_price, 2) or float_round(available_max_price, 2) != float_round(max_price, 2)\"/>\n            <t t-set=\"hasPricelistDropdown\" t-value=\"website_sale_pricelists and len(website_sale_pricelists)&gt;1\"/>\n            <t t-set=\"isSortingBy\" t-value=\"[sort for sort in website_sale_sortable if sort[0]==request.params.get('order', '')]\"/>\n\n            <t t-set=\"wsale_has_filters_btn\" t-value=\"opt_wsale_categories or opt_wsale_attributes or opt_wsale_attributes_top\"/>\n            <t t-set=\"wsale_has_filters_btn_lg\" t-value=\"opt_wsale_attributes_top\"/>\n\n            <div id=\"wrap\" class=\"js_sale o_wsale_products_page\">\n                <div class=\"oe_structure oe_empty oe_structure_not_nearest\" id=\"oe_structure_website_sale_products_1\"/>\n                <div id=\"o_wsale_container\" t-attf-class=\"oe_website_sale                         {{opt_wsale_fullwidth and 'container-fluid o_wsale_page_fluid' or 'o_wsale_page_contained container'}}                         {{layout_mode == 'list' and 'o_wsale_layout_list' or 'o_wsale_layout_catalog'}}                         {{opt_wsale_categories_top and 'o_wsale_has_filmstrip'}}                         {{opt_wsale_floating_bar and 'o_wsale_has_floating_bar'}}                         {{hasLeftColumn and 'o_wsale_has_sidebar'}}                         {{editionPreviews and 'o_wsale_edit_preview_enabled'}}\" t-attf-style=\"--o-wsale-products-grid-gap: {{gap}};\" t-att-data-ppg=\"ppg\" t-att-data-ppr=\"ppr\" t-att-data-default-sort=\"website.shop_default_sort\">\n                    <div class=\"row o_wsale_products_main_row flex-nowrap\">\n                        <aside t-if=\"hasLeftColumn\" id=\"products_grid_before\" class=\"d-none d-lg-block position-sticky align-self-start col clearfix\">\n                            <div class=\"o_wsale_products_grid_before_rail vh-100 ms-n2 pt-2 px-lg-2 pb-lg-5 ps-2 overflow-y-scroll\">\n                                <t t-set=\"is_sidebar_collapsible\" t-value=\"is_view_active('website_sale.products_categories_list_collapsible')\"/>\n                                <div t-if=\"opt_wsale_categories\" t-att-class=\"'products_categories'                                                 + (' accordion accordion-flush' if is_sidebar_collapsible else ' mb-3')\">\n                                    <t t-call=\"website_sale.products_categories_list\"/>\n                                </div>\n                                <t t-set=\"show_price_filter\" t-value=\"opt_wsale_filter_price and opt_wsale_attributes\"/>\n                                <div t-if=\"attrib_values or tags or (                                         show_price_filter and isFilteringByPrice                                     )\" class=\"py-3 border-bottom\">\n                                    <a t-att-href=\"keep(attribute_values=0, tags=0, min_price=0, max_price=0)\" t-attf-class=\"btn btn-{{navClass}} d-flex align-items-center py-1\" title=\"Supprimer les filtres\">\n                                        <small class=\"mx-auto\"><b>Effacer les filtres</b></small>\n                                        <i class=\"oi oi-close\" role=\"presentation\"/>\n                                    </a>\n                                </div>\n                                <div t-attf-class=\"products_attributes_filters d-empty-none {{opt_wsale_categories and 'border-top'}}\"/>\n                                <t t-if=\"show_price_filter\" t-call=\"website_sale.filter_products_price\">\n                                    <t t-set=\"_classes\" t-valuef=\"{{is_sidebar_collapsible and 'accordion accordion-flush'}} {{is_sidebar_collapsible and (opt_wsale_categories or len(attributes) &gt; 0) and 'border-top'}}\"/>\n                                </t>\n                            </div>\n                        </aside>\n                        <div id=\"products_grid\" t-attf-class=\"col\">\n                            <t t-set=\"_header_has_content\" t-value=\"category or opt_wsale_categories_top or (not opt_wsale_floating_bar and (opt_wsale_attributes_top or is_view_active('website_sale.search') or is_view_active('website_sale.sort') or hasPricelistDropdown))\"/>\n\n                            <header id=\"o_wsale_products_header\" t-attf-class=\"d-flex flex-column gap-2 {{_header_has_content and 'py-3' or (not _header_has_content and not opt_wsale_design_grid and 'py-3')}}\">\n                                <t t-if=\"category and not search\" t-call=\"website_sale.products_breadcrumb\">\n                                    <t t-set=\"_classes\" t-valuef=\"d-none d-lg-flex w-100 p-0 mb-0 small\"/>\n                                </t>\n                                <h1 t-if=\"category or search\" t-attf-class=\"d-flex gap-1 align-items-center mb-0 lh-lg {{search and 'base-fs font-sans-serif' or 'fs-3'}} {{search and bool(category) and 'mb-2'}}\">\n                                    <a t-if=\"(search and not category) or (not search and category)\" t-attf-class=\"btn ps-0 pe-2 {{not search and 'd-lg-none'}}\" t-att-href=\"keep('%s/category/%s' % (shop_path, slug(category.parent_id))) if category.parent_id else keep(shop_path, search=0)\" role=\"button\" t-attf-title=\"Retour à {{category.parent_id and category.parent_id.name or 'Shop'}}\">\n                                        <i class=\"oi oi-arrow-left\" role=\"img\"/>\n                                    </a>\n                                    <t t-if=\"search and category\">\n                                        <span class=\"text-muted\">Recherche en cours</span>\n                                        <span class=\"badge text-bg-info fw-normal base-fs\">\n                                            <t t-esc=\"search\"/>\n                                            <a title=\"Effacer la recherche pour cette catégorie\" t-att-href=\"keep(search=0)\" class=\"link-info\">\n                                                <i class=\"oi oi-close\" role=\"img\"/>\n                                            </a>\n                                        </span>\n                                        <span class=\"text-muted\">dans</span>\n                                        <span class=\"badge text-bg-primary fw-normal base-fs\">\n                                            <t t-esc=\"category.name\"/>\n                                            <a title=\"Chercher globalement\" t-att-href=\"keep(shop_path, search=search)\">\n                                                <i class=\"oi oi-close\" role=\"img\"/>\n                                            </a>\n                                        </span>\n                                    </t>\n                                    <span t-elif=\"search\">\n                                        <span class=\"text-muted\">Résultats de recherche pour </span>'<strong t-esc=\"search\"/>' <small t-if=\"search_count\" class=\"text-muted\"> (<t t-esc=\"search_count\"/>)</small>\n                                    </span>\n                                    <t t-elif=\"category\" t-esc=\"category.name\"/>\n                                </h1>\n                                <h1 class=\"h4-fs\" t-if=\"not category and not search\">\n                                    Tous les produits\n                                </h1>\n                                <t t-if=\"category\">\n                                    <t t-set=\"editor_msg\">\n                                        Faites glisser les blocs ici pour personnaliser l’en-tête de \n                                        \"<t t-esc=\"category.name\"/>\" catégorie.\n                                    </t>\n                                    <div id=\"category_header\" t-att-data-editor-message=\"editor_msg\" t-field=\"category.website_description\"/>\n                                </t>\n                                <t t-if=\"opt_wsale_categories_top\" t-call=\"website_sale.filmstrip_categories\"/>\n                                <div t-if=\"not opt_wsale_floating_bar\" class=\"products_header btn-toolbar flex-nowrap align-items-center justify-content-between gap-1 gap-lg-2 gap-xl-3\">\n                                    <t t-if=\"is_view_active('website_sale.search')\">\n                                        <t t-set=\"_has_all_sibligns\" t-value=\"hasPricelistDropdown and is_view_active('website_sale.sort') and wsale_has_filters_btn\"/>\n                                        <!-- Desktop Search button -->\n                                        <div t-attf-class=\"o_wsale_products_header_search_form_container {{ _has_all_sibligns and 'd-none d-sm-inline-block'}} col-xl-5 me-auto {{not hasLeftColumn and 'col-xl-6'}}\" t-call=\"website_sale.search\">\n                                            <t t-if=\"category\" t-set=\"placeholder\">Chercher dans <t t-out=\"category.name\"/></t>\n                                            <t t-set=\"search\" t-value=\"original_search or search\"/>\n                                        </div>\n                                        <!-- Mobile Search button -->\n                                        <a t-attf-class=\"btn o_not_editable {{_has_all_sibligns and 'd-inline-block d-sm-none' or 'd-none'}} me-auto btn-{{navClass}}\" data-bs-target=\"#o_wsale_search_modal\" data-bs-toggle=\"modal\" role=\"button\" title=\"Chercher des produits\" href=\"#\">\n                                            <i class=\"oi oi-search\" role=\"img\"/>\n                                        </a>\n                                    </t>\n                                    <t t-if=\"hasPricelistDropdown\" t-call=\"website_sale.pricelist_list\"/>\n                                    <t t-if=\"is_view_active('website_sale.sort')\" t-call=\"website_sale.sort\"/>\n                                    <button t-if=\"wsale_has_filters_btn\" t-attf-class=\"btn btn-{{navClass}} position-relative {{not wsale_has_filters_btn_lg and 'd-lg-none'}} {{not is_view_active('website_sale.search') and 'ms-auto'}} text-nowrap\" title=\"Filtres\" data-bs-toggle=\"offcanvas\" data-bs-target=\"#o_wsale_offcanvas\">\n                                        <i class=\"oi oi-settings-adjust\" role=\"img\"/>\n                                        <small t-attf-class=\"ms-1 {{(hasPricelistDropdown and is_view_active('website_sale.search') and is_view_active('website_sale.sort')) and 'd-none d-md-inline-block'}}\">Filtres</small>\n                                        <span t-if=\"isFilteringByPrice or attrib_set or tags\" t-attf-class=\"position-absolute top-0 start-100 translate-middle border border-{{navClass}} rounded-circle bg-danger p-1\">\n                                            <span class=\"visually-hidden\">filtres actifs</span>\n                                        </span>\n                                    </button>\n                                </div>\n                                <div t-if=\"original_search and products\" class=\"alert alert-warning mt8\">\n                                    Aucun résultat trouvé pour '<span t-esc=\"original_search\"/>'. Affichage des résultats pour '<span t-esc=\"search\"/>'.\n                                </div>\n                            </header>\n\n                            <div t-if=\"products\" class=\"o_wsale_products_grid_table_wrapper\">\n                                <t t-set=\"grid_md_allow_custom_cols\" t-value=\"hasLeftColumn\"/>\n                                <t t-set=\"grid_md_use_3col\" t-value=\"(not hasLeftColumn and ppr == 4) or (opt_wsale_fullwidth and ppr &gt; 3)\"/>\n\n                                <section id=\"o_wsale_products_grid\" t-attf-class=\"o_wsale_products_grid_table grid {{grid_md_allow_custom_cols and 'o_wsale_products_grid_table_md'}}\" t-attf-style=\"--o-wsale-ppr: {{ppr}}; --o-wsale-ppg: {{ppg}}\" t-att-data-name=\"grid_block_name\">\n                                    <t t-foreach=\"bins\" t-as=\"tr_product\">\n                                        <t t-foreach=\"tr_product\" t-as=\"td_product\">\n                                            <t t-if=\"td_product\">\n                                                <t t-set=\"col_height\" t-value=\"td_product['y']\"/>\n                                                <t t-set=\"col_width\" t-value=\"12 // ppr * td_product['x']\"/>\n                                                <t t-set=\"col_class\" t-valuef=\"g-col-6\"/>\n                                                <t t-set=\"col_class_lg\" t-value=\"'g-col-lg-' + str(col_width)\"/>\n                                                <t t-set=\"col_class_md\" t-value=\"grid_md_allow_custom_cols and ('g-col-md-' + str(col_width)) or grid_md_use_3col and 'g-col-md-4' or 'g-col-md-6'\"/>\n                                                <t t-set=\"col_is_stretched\" t-value=\"(td_product['x'] &gt;= td_product['y'] * 2)\"/>\n                                                <t t-set=\"col_is_custom_portrait\" t-value=\"not col_is_stretched and (col_height &gt; td_product['x'])\"/>\n                                                <div t-attf-class=\"oe_product {{col_is_custom_portrait and 'oe_product_custom_portrait'}} {{col_class}} {{col_class_md}} {{col_class_lg}} {{col_is_stretched and 'oe_product_size_stretch'}}\" t-attf-style=\"--o-wsale-products-grid-product-col-height: {{col_height}};\" t-att-data-ribbon-id=\"td_product['ribbon'].id\" t-att-data-colspan=\"td_product['x'] != 1 and td_product['x']\" t-att-data-rowspan=\"td_product['y'] != 1 and td_product['y']\" t-att-data-name=\"product_block_name\">\n                                                    <div t-attf-class=\"o_wsale_product_grid_wrapper position-relative h-100 o_wsale_product_grid_wrapper_#{td_product['x']}_#{td_product['y']}\">\n                                                        <t t-call=\"website_sale.products_item\">\n                                                            <t t-set=\"product\" t-value=\"td_product['product']\"/>\n                                                        </t>\n                                                    </div>\n                                                </div>\n                                            </t>\n                                        </t>\n                                    </t>\n                                </section>\n                            </div>\n                            <div t-else=\"\" class=\"text-center text-muted mt128 mb256\">\n                                <t t-if=\"not search\">\n                                    <h3 class=\"mt8\">Aucun produit défini</h3>\n                                    <p t-if=\"category\">Aucun produit défini dans cette catégorie.</p>\n                                </t>\n                                <t t-else=\"\">\n                                    <h3 class=\"mt8\">Aucun résultat</h3>\n                                    <p>Aucun résultat pour \"<strong t-esc=\"search\"/>\"<t t-if=\"category\"> dans la catégorie \"<strong t-esc=\"category.display_name\"/>\"</t>.</p>\n                                    <a t-if=\"category\" t-att-href=\"keep(shop_path, search=search)\" t-attf-title=\"Chercher {{search}} globalement\" class=\"d-block pb-5\">\n                                        Chercher globalement\n                                    </a>\n                                </t>\n                                <div t-ignore=\"true\" groups=\"sales_team.group_sale_manager\" class=\"alert alert-info d-inline-block mx-auto\">\n                                    Cliquez sur <i>'Nouveau'</i> dans le coin supérieur droit afin de créer votre premier produit.\n                                </div>\n                            </div>\n                            <div id=\"o_wsale_pager\" t-attf-class=\"products_pager d-flex justify-content-center {{opt_wsale_design_grid and 'py-4' or 'py-5 pb-4'}}\">\n                                <t t-call=\"website.pager\"/>\n                            </div>\n                            <t t-if=\"category\">\n                                <t t-set=\"footer_editor_message\">\n                                    Faites glisser les blocs ici pour personnaliser le pied de page pour\n                                    \"<t t-esc=\"category.name\"/>\" catégorie.\n                                </t>\n                                <div class=\"mb16\" id=\"category_footer\" t-att-data-editor-message=\"footer_editor_message\" t-field=\"category.website_footer\"/>\n                            </t>\n                        </div>\n                    </div>\n\n                    <t t-call=\"website_sale.o_wsale_offcanvas\"/>\n                </div>\n                <div class=\"oe_structure oe_empty oe_structure_not_nearest\" id=\"oe_structure_website_sale_products_2\"/>\n            </div>\n            <div t-if=\"is_view_active('website_sale.search')\" id=\"o_wsale_search_modal\" class=\"modal fade css_editable_mode_hidden\" aria-hidden=\"true\" tabindex=\"-1\">\n                <div class=\"modal-dialog modal-lg pt-5\">\n                    <div class=\"modal-content mt-5 bg-transparent border-0\">\n                        <div class=\"o_container_small\">\n                            <t t-call=\"website.website_search_box_input\">\n                                <t t-set=\"default_style\" t-valuef=\"true\"/>\n                                <t t-set=\"search_type\" t-valuef=\"products\"/>\n                                <t t-set=\"_classes\" t-valuef=\"input-group rounded o_cc o_cc1 mb-1\"/>\n                                <t t-set=\"_input_classes\" t-valuef=\"border-0 p-3\"/>\n                                <t t-set=\"_submit_classes\" t-valuef=\"px-4\"/>\n                                <t t-if=\"category\" t-set=\"placeholder\">Chercher dans <t t-out=\"category.name\"/></t>\n                            </t>\n                        </div>\n                    </div>\n                </div>\n            </div>\n        </t>\n    </t>"}