theme addons clarico
|  | @ -0,0 +1,26 @@ | |||
| { | ||||
|     # Theme information | ||||
|     'name' : 'Clarico 404', | ||||
|     'category' : 'Website', | ||||
|     'version' : '1.0', | ||||
|     'summary': 'Redirect to 404 Page when Targeted Page is not Found', | ||||
|     'description': """""", | ||||
| 
 | ||||
|     # Dependencies | ||||
|     'depends': [ | ||||
|         'clarico_base' | ||||
|     ], | ||||
| 
 | ||||
|     # Views | ||||
|     'data': [ | ||||
|         'templates/template.xml', | ||||
|         'templates/assets.xml', | ||||
|     ], | ||||
| 
 | ||||
|     # Author | ||||
|     'author': 'Emipro Technologies Pvt. Ltd.', | ||||
|     'website': 'http://www.emiprotechnologies.com', | ||||
| 
 | ||||
|     # Technical | ||||
|     'installable': True, | ||||
| } | ||||
| After Width: | Height: | Size: 4.6 KiB | 
| After Width: | Height: | Size: 22 KiB | 
|  | @ -0,0 +1,56 @@ | |||
| .clarico_404_comman | ||||
| { | ||||
| 	.common-div; | ||||
| } | ||||
| .clarico_404_right{ | ||||
| 	width:60%; | ||||
| 	display:block; | ||||
| 	 .left(); | ||||
| 	 .center(); | ||||
| 	.mt(0); | ||||
| 	.mb(0); | ||||
| 	.ml(auto); | ||||
| 	.mr(auto); | ||||
| 	 img{ | ||||
| 		max-width:90%; | ||||
| 			  | ||||
| 	 } | ||||
| } | ||||
| .clarico_404_left{ | ||||
| 	width:40%; | ||||
| 	.left(); | ||||
| 	.mt(12%); | ||||
| } | ||||
| .clarico_404_font | ||||
| { | ||||
| 	.size(100px); | ||||
| 	.muli-bold; | ||||
| 	color:#2b2b2b; | ||||
| 	.center; | ||||
| 	.mt(0); | ||||
| 	.mb(0); | ||||
| 	.ml(auto); | ||||
| 	.mr(auto); | ||||
| } | ||||
| .clarico_404_page | ||||
| { | ||||
| 	color: #2b2b2b; | ||||
| 	.size(14px); | ||||
| 	.center(); | ||||
| 	.mt(15px); | ||||
| 	.mb(15px); | ||||
| 	.ml(auto); | ||||
| 	.mr(auto); | ||||
| } | ||||
| .clarico_404_ul | ||||
| { | ||||
| 	.center; | ||||
| 	.size(13px); | ||||
| 	color: @theme-color; | ||||
| } | ||||
| .clarico_404_li | ||||
| { | ||||
| 	list-style-type: none; | ||||
| 	.mt(30px); | ||||
| } | ||||
| 
 | ||||
|  | @ -0,0 +1,11 @@ | |||
| @media (max-width:800px){ | ||||
| 	.clarico_404_left{ | ||||
| 		float:none; | ||||
| 		width:100%; | ||||
| 		.mb(10%); | ||||
| 	} | ||||
| 	.clarico_404_right{ | ||||
| 		width:100%; | ||||
| 		float:none; | ||||
| 	} | ||||
| } | ||||
|  | @ -0,0 +1,9 @@ | |||
| <?xml version="1.0" encoding="utf-8" ?> | ||||
| <odoo> | ||||
| 	<template id="errorpage_assets_frontend" inherit_id="web.assets_frontend"> | ||||
| 		<xpath expr="." position="inside"> | ||||
| 			<link rel="stylesheet" href="/clarico_404/static/src/less/clarico_404.less"></link> | ||||
| 			<link rel="stylesheet" href="/clarico_404/static/src/less/responsive.less"></link> | ||||
| 		</xpath> | ||||
| 	</template> | ||||
| </odoo> | ||||
|  | @ -0,0 +1,27 @@ | |||
| <?xml version="1.0" encoding="utf-8" ?> | ||||
| <odoo> | ||||
| 	<template id="clarico_404" inherit_id="website.404"> | ||||
| 		<xpath expr="//div[hasclass('container')]" position="replace"> | ||||
| 					<div class="container"> | ||||
| 						<div class="clarico_404_left"> | ||||
| 							<h1 class="mt32 clarico_404_font">404</h1> | ||||
| 							<p class="clarico_404_page">THIS PAGE YOU REQUESTED COULD NOT BE FOUND</p> | ||||
| 							<ul class="clarico_404_ul"> | ||||
| 								<li class="clarico_404_li"> | ||||
| 									<a class="common-btn" href="/">Homepage</a> | ||||
| 									<a class="common-btn" href="/page/website.contactus/">Contact Us</a> | ||||
| 								</li> | ||||
| 							</ul> | ||||
| 						</div> | ||||
| 						<div class="clarico_404_right"> | ||||
| 							<img src="/clarico_404/static/src/img/2.jpg"></img> | ||||
| 						</div> | ||||
| 					</div> | ||||
| 			 | ||||
| 				<t t-if="request.debug"> | ||||
| 					<t t-call="website.http_error_debug" /> | ||||
| 				</t> | ||||
| 			 | ||||
| 		</xpath> | ||||
| 	</template> | ||||
| </odoo> | ||||
|  | @ -0,0 +1,26 @@ | |||
| { | ||||
|     # Theme information | ||||
|     'name' : 'Clarico Account', | ||||
|     'category' : 'Website', | ||||
|     'version' : '1.0', | ||||
|     'summary': 'View Orders, Invoices, Account Details at Frontend', | ||||
|     'description': """""", | ||||
| 
 | ||||
|     # Dependencies | ||||
|     'depends': [ | ||||
|         'clarico_layout','website_quote','sale','portal' | ||||
|     ], | ||||
| 
 | ||||
|     # Views | ||||
|     'data': [ | ||||
|         'templates/template.xml', | ||||
|         'templates/assets.xml' | ||||
|     ], | ||||
| 
 | ||||
|     # Author | ||||
|     'author': 'Emipro Technologies Pvt. Ltd.', | ||||
|     'website': 'http://www.emiprotechnologies.com', | ||||
| 
 | ||||
|     # Technical | ||||
|     'installable': True, | ||||
| } | ||||
| After Width: | Height: | Size: 4.6 KiB | 
|  | @ -0,0 +1,5 @@ | |||
| var my_account_address_el = document.querySelector('.div_class_my_account_address > address > div > div > i.fa-map-marker + span'); | ||||
| my_account_address_el.innerHTML = my_account_address_el.innerHTML.replace(/ /g,''); | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
|  | @ -0,0 +1,153 @@ | |||
| .container{ | ||||
| 	.block; | ||||
| } | ||||
| /* Home */ | ||||
| .account_home{ | ||||
| 	& .clarico_portal_docs{ | ||||
| 		 | ||||
| 		& .list-group-item{ | ||||
| 			border: none; | ||||
| 			border-bottom : 1px solid #dddddd; | ||||
| 			margin-bottom: 0; | ||||
| 			padding: 15px 15px 5px 15px; | ||||
| 			 | ||||
| 			& span.badge{ | ||||
| 				background: unset; | ||||
| 				color: gray; | ||||
| 				 | ||||
| 				&:after{ | ||||
| 					content:" )"; | ||||
| 				} | ||||
| 				&:before{ | ||||
| 					content:"( "; | ||||
| 				} | ||||
| 			} | ||||
| 		} | ||||
| 	} | ||||
| } | ||||
| 
 | ||||
| .my_details_div{ | ||||
| 
 | ||||
| 	& .your_details{ | ||||
| 		.muli-regular; | ||||
| 		.pb(5%); | ||||
| 		 | ||||
| 		& .your_details_change_btn{ | ||||
| 			.muli-regular; | ||||
| 			.size(11px); | ||||
| 			.ml(10px); | ||||
| 			border: 1px solid @theme-color; | ||||
| 			padding: 2px 5px 2px 5px; | ||||
| 			border-radius: 2px; | ||||
| 			color : @theme-color; | ||||
| 			 | ||||
| 			&:hover{ | ||||
| 				background: @theme-color; | ||||
| 				color: #fff; | ||||
| 				transition:0.5s; | ||||
| 			} | ||||
| 		} | ||||
| 	} | ||||
| 	 | ||||
| 	& address span{ | ||||
| 		line-height:185%; | ||||
| 	} | ||||
| } | ||||
| 
 | ||||
| /* Quotation */ | ||||
| 
 | ||||
| .quotation_table{ | ||||
| 	 | ||||
| 	& thead{ | ||||
| 		& tr th{ | ||||
| 			background-color : #000 !important; | ||||
| 			color:#fff; | ||||
| 			.muli-regular; | ||||
| 			.size(14px); | ||||
| 			font-weight: normal; | ||||
| 			padding : 15px 10px; | ||||
| 			border-bottom : 2px solid #000; | ||||
| 		} | ||||
| 	} | ||||
| 	 | ||||
| 	& tbody{ | ||||
| 		& tr td{ | ||||
| 			.muli-regular; | ||||
| 			.size(14px); | ||||
| 			padding : 10px 10px; | ||||
| 		} | ||||
| 	} | ||||
| } | ||||
| .order_details_div{ | ||||
| 	.pt(2%); | ||||
| } | ||||
| 
 | ||||
| .clarico_panel_main{ | ||||
| 	.mt(2%); | ||||
| 	 | ||||
| 	& .panel-heading{ | ||||
| 		background-color: #000; | ||||
| 		 | ||||
| 		& h4{ | ||||
| 			color: #fff; | ||||
| 		} | ||||
| 		 | ||||
| 		& #o_portal_order_actions{ | ||||
| 			& a i{ | ||||
| 				color : #fff; | ||||
| 			} | ||||
| 		} | ||||
| 	} | ||||
| 	& .address-div{ | ||||
| 		.pt(2%); | ||||
| 		 | ||||
| 	} | ||||
| } | ||||
| .order-details_div{ | ||||
| 	.pt(1%); | ||||
| 	.pb(1%); | ||||
| } | ||||
| .clarico_portal_details{ | ||||
| 
 | ||||
| 	& label.control-label{ | ||||
| 		font-weight: normal; | ||||
| 	} | ||||
| 	 | ||||
| 	& input,select{ | ||||
| 		border-radius: 0; | ||||
| 		height: 40px; | ||||
| 	} | ||||
| } | ||||
| 
 | ||||
| .clarico_website_quote{ | ||||
| 
 | ||||
| 	& .bs-sidebar{ | ||||
| 		background-color: #eceaea !important; | ||||
| 		border-radius: 0 !important; | ||||
| 		 | ||||
| 		& a.btn{ | ||||
| 			border-radius: 0 !important; | ||||
| 		} | ||||
| 		 | ||||
| 		& .bs-sidenav{ | ||||
| 			 | ||||
| 			& li.active{ | ||||
| 				& a{ | ||||
| 					color : @theme-color; | ||||
| 					border-right: 2px solid @theme-color; | ||||
| 				} | ||||
| 			} | ||||
| 		}		 | ||||
| 	} | ||||
| } | ||||
| .quotation-order-heading{ | ||||
| 	font-size: 28px; | ||||
|    .muli-semibold(); | ||||
|     text-transform: uppercase; | ||||
|     margin-bottom: 3%; | ||||
|     color: #6c6b6b; | ||||
|      | ||||
|     & small{ | ||||
|     	.capitalize; | ||||
|     } | ||||
| } | ||||
|  | @ -0,0 +1,37 @@ | |||
| @media (max-width:900px){ | ||||
| 	.clarico_container, .section_quote{ | ||||
| 		overflow-y: hidden; | ||||
| 	} | ||||
| 	.section_quote{ | ||||
| 		& #quote_header_2{ | ||||
| 			padding:0; | ||||
| 		} | ||||
| 	} | ||||
| 	.clarico_panel_main, .table_quote{ | ||||
| 		overflow-x: auto; | ||||
| 		max-width: 800px; | ||||
| 		width: 800px; | ||||
| 		margin: 0px; | ||||
| 	} | ||||
| 	.quotation-order-heading{ | ||||
| 		 | ||||
| 		& .css_editable_mode_hidden{ | ||||
| 			.common-div; | ||||
| 			.pt(2%); | ||||
| 			.pb(2%); | ||||
| 		} | ||||
| 	} | ||||
| 	#introduction{ | ||||
| 		border-bottom : none !important; | ||||
| 	} | ||||
| 	.full_width{ | ||||
| 		.common-div; | ||||
| 		.pt(2%); | ||||
| 		.pb(4%); | ||||
| 		 | ||||
| 		& .row{ | ||||
| 			.pt(2%); | ||||
| 			.pb(2%);	 | ||||
| 		} | ||||
| 	} | ||||
| } | ||||
|  | @ -0,0 +1,9 @@ | |||
| <?xml version="1.0" encoding="utf-8"?> | ||||
| <odoo>     | ||||
| 	<template id="account_assets_frontend" inherit_id="website.assets_frontend" name="eCommerce Portal Sale"> | ||||
|       <xpath expr="." position="inside"> | ||||
|           <link rel='stylesheet' href='/clarico_account/static/src/less/account.less'/> | ||||
|           <link rel='stylesheet' href='/clarico_account/static/src/less/account_responsive.less'/> | ||||
|       </xpath> | ||||
|     </template> | ||||
| </odoo> | ||||
|  | @ -0,0 +1,146 @@ | |||
| <?xml version="1.0" encoding="utf-8"?> | ||||
| <odoo> | ||||
| 	 | ||||
| 	<!-- Add link into my account --> | ||||
|  	<template id="clarico_account_clarico_layout" name="Link to e-Commerce frontend portal" | ||||
| 		inherit_id="clarico_layout.clarico_header_main" priority="21"> | ||||
|         <xpath expr="//ul[@id='logout_ul']//li[@id='o_logout']" | ||||
|                position="before"> | ||||
|             <li id="wishlist_id"></li> | ||||
|             <div id="cart_id"></div> | ||||
|             <li> | ||||
|                 <p class="ul_class_admin_name"> | ||||
|                     <i class="fa fa-pie-chart fa_common_style_header" style="padding-right: 9px;"></i><a href="/my/orders">My Orders</a> | ||||
|                 </p> | ||||
|             </li> | ||||
|             <li> | ||||
|                 <p class="ul_class_admin_name"> | ||||
|                     <i class="fa fa-usd fa_common_style_header" style="padding-right: 9px;"></i><a href="/my/invoices">My Invoices</a> | ||||
|                 </p> | ||||
|             </li> | ||||
|         </xpath> | ||||
|     </template> | ||||
| 	 | ||||
|     <!-- Home page --> | ||||
|     <template id="clarico_account_portal_my_home" inherit_id="portal.portal_my_home" name="My Portal"> | ||||
|         <xpath expr="//div[hasclass('o_portal_my_home')]" position="attributes"> | ||||
| 			<attribute name="class">o_portal_my_home account_home</attribute> | ||||
| 		</xpath> | ||||
| 		<xpath expr="//div[hasclass('o_portal_my_home')]//h3" position="attributes"> | ||||
| 			<attribute name="class">common_heading</attribute> | ||||
| 		</xpath> | ||||
| 		<xpath expr="//ul[hasclass('o_portal_docs')]" position="attributes"> | ||||
| 			<attribute name="class">o_portal_docs list-group clarico_portal_docs</attribute> | ||||
| 		</xpath> | ||||
| 	</template> | ||||
| 	 | ||||
| 	<!-- Home page your details section --> | ||||
| 	<template id="clarico_account_portal_layout_details" inherit_id="portal.portal_layout" name="Portal Layout"> | ||||
| 		<xpath expr="//div[hasclass('o_portal_my_details')]" position="attributes"> | ||||
| 			<attribute name="class">o_portal_my_details my_details_div</attribute> | ||||
| 		</xpath> | ||||
| 		<xpath expr="//div[hasclass('o_portal_my_details')]//h3" position="attributes"> | ||||
| 			<attribute name="class">your_details</attribute> | ||||
| 		</xpath> | ||||
| 		<xpath expr="//div[hasclass('o_portal_my_details')]//h3/a" position="attributes"> | ||||
| 			<attribute name="class">your_details_change_btn</attribute> | ||||
| 		</xpath> | ||||
| 	</template> | ||||
| 	 | ||||
| 	<!-- Quotation Home --> | ||||
| 	<template id="clarico_account_portal_my_quotations" inherit_id="sale.portal_my_quotations" name="My Quotations">  | ||||
| 		<xpath expr="//h3" position="attributes"> | ||||
| 			<attribute name="class">common_heading</attribute> | ||||
| 		</xpath> | ||||
| 		<xpath expr="//table[hasclass('o_portal_my_doc_table')]" position="attributes"> | ||||
| 			<attribute name="class">table table-hover o_portal_my_doc_table quotation_table</attribute> | ||||
| 		</xpath> | ||||
| 	</template> | ||||
| 	 | ||||
| 	<!-- Quotataion orders --> | ||||
|  	<template id="clarico_account_portal_order_page" inherit_id="sale.portal_order_page" name="Sales Order"> | ||||
| 		<xpath expr="//div[hasclass('container')]" position="attributes"> | ||||
| 			<attribute name="class">container clarico_container</attribute> | ||||
| 		</xpath> | ||||
| 		<xpath expr="//div[hasclass('panel-default')]" position="attributes"> | ||||
| 			<attribute name="class">panel panel-default clarico_panel_main</attribute> | ||||
| 		</xpath> | ||||
| 		<xpath expr="//div[hasclass('panel-body')]/div[hasclass('row')]" position="attributes"> | ||||
| 			<attribute name="class">row address-div</attribute> | ||||
| 		</xpath> | ||||
| 		<xpath expr="//div[hasclass('orders_vertical_align')]" position="attributes"> | ||||
| 			<attribute name="class">row orders_vertical_align order_details_div</attribute> | ||||
| 		</xpath> | ||||
| 		<xpath expr="//div[hasclass('orders_vertical_align')]/div[@id='product_name']" position="replace"> | ||||
| 			<div id='product_name' class="col-lg-4 col-sm-6 col-xs-3"> | ||||
|                <span t-esc="ol.product_id.display_name"/> | ||||
|              </div> | ||||
| 		</xpath> | ||||
| 	</template>  | ||||
| 	 | ||||
| 	<!-- Sales Order Home --> | ||||
|  	<template id="clarico_account_portal_my_orders" inherit_id="sale.portal_my_orders" name="My Sales Order">  | ||||
| 		<xpath expr="//h3" position="attributes"> | ||||
| 			<attribute name="class">common_heading</attribute> | ||||
| 		</xpath> | ||||
| 		<xpath expr="//table[hasclass('o_portal_my_doc_table')]" position="attributes"> | ||||
| 			<attribute name="class">table table-hover o_portal_my_doc_table quotation_table</attribute> | ||||
| 		</xpath> | ||||
| 	</template> | ||||
| 	 | ||||
|  	<template id="clarico_account_portal_my_details" inherit_id="portal.portal_my_details"> | ||||
| 		<xpath expr="//h3" position="attributes"> | ||||
| 			<attribute name="class">common_heading</attribute> | ||||
| 		</xpath> | ||||
| 		<xpath expr="//div[hasclass('o_portal_details')]" position="attributes"> | ||||
| 			<attribute name="class">row o_portal_details clarico_portal_details</attribute> | ||||
| 		</xpath> | ||||
| 	</template>	 | ||||
| 	 | ||||
| 	<template id="clarico_account_so_quotation" inherit_id="website_quote.so_quotation"> | ||||
| 		<xpath expr="//div[hasclass('o_website_quote')]" position="attributes"> | ||||
| 			<attribute name="class">container o_website_quote clarico_website_quote</attribute> | ||||
| 		</xpath> | ||||
| 	</template> | ||||
| 	 | ||||
| 	<!-- Accept Order quote --> | ||||
| 	<template id="clarico_account_pricing" inherit_id="website_quote.pricing"> | ||||
| 		<xpath expr="//section[@id='quote']" position="attributes"> | ||||
| 			<attribute name="class">quote section_quote</attribute> | ||||
| 		</xpath> | ||||
| 		<xpath expr="//table[hasclass('table')]" position="attributes"> | ||||
| 			<attribute name="class">table wq-table table_quote</attribute> | ||||
| 		</xpath> | ||||
| 	</template> | ||||
| 	 | ||||
| 	<!-- Quotation content --> | ||||
| 	<template id="clarico_account_so_quotation_content" inherit_id="website_quote.so_quotation_content"> | ||||
| 		<xpath expr="//h1" position="attributes"> | ||||
| 			<attribute name="class">quotation-order-heading</attribute> | ||||
| 		</xpath> | ||||
| 		<xpath expr="//div[hasclass('row')]//div[hasclass('col-md-6')]" position="attributes"> | ||||
| 			<attribute name="class">col-md-6 col-xs-6 full_width</attribute> | ||||
| 		</xpath> | ||||
| 		<xpath expr="//div[hasclass('row')]//div[hasclass('col-md-6')]" position="attributes"> | ||||
| 			<attribute name="class">col-md-6 col-xs-6 full_width</attribute> | ||||
| 		</xpath> | ||||
| 	</template> | ||||
| 	 | ||||
| 	<template id="clarico_account_portal_my_invoices" inherit_id="account.portal_my_invoices" name="My Quotations">  | ||||
| 		<xpath expr="//h3" position="attributes"> | ||||
| 			<attribute name="class">common_heading</attribute> | ||||
| 		</xpath> | ||||
| 		<xpath expr="//table[hasclass('o_portal_my_doc_table')]" position="attributes"> | ||||
| 			<attribute name="class">table table-hover o_portal_my_doc_table quotation_table</attribute> | ||||
| 		</xpath> | ||||
| 	</template> | ||||
| 	 | ||||
| 	<template id="clarico_account_portal_invoice_page" inherit_id="account.portal_invoice_page"> | ||||
| 		<xpath expr="//div[hasclass('container')]" position="attributes"> | ||||
| 			<attribute name="class">container clarico_container</attribute> | ||||
| 		</xpath> | ||||
| 		<xpath expr="//div[hasclass('panel-default')]" position="attributes"> | ||||
| 			<attribute name="class">panel panel-default clarico_panel_main</attribute> | ||||
| 		</xpath> | ||||
| 	</template> | ||||
| </odoo>  | ||||
|  | @ -0,0 +1,2 @@ | |||
| # -*- encoding: utf-8 -*- | ||||
| # Part of Odoo. See LICENSE file for full copyright and licensing details. | ||||
|  | @ -0,0 +1,26 @@ | |||
| { | ||||
|     # Theme information | ||||
|     'name' : 'Clarico Attribute Filter', | ||||
|     'category' : 'Website', | ||||
|     'version' : '1.0', | ||||
|     'summary': 'Show Selected Attributes in Applied Filter Section', | ||||
|     'description': """""", | ||||
| 
 | ||||
|     # Dependencies | ||||
|     'depends': [ | ||||
|         'clarico_shop' | ||||
|     ], | ||||
| 
 | ||||
|     # Views | ||||
|     'data': [ | ||||
|         'template/assets.xml', | ||||
|         'template/template.xml', | ||||
|     ], | ||||
| 
 | ||||
|     # Author | ||||
|     'author': 'Emipro Technologies Pvt. Ltd.', | ||||
|     'website': 'http://www.emiprotechnologies.com', | ||||
| 
 | ||||
|     # Technical | ||||
|     'installable': True, | ||||
| } | ||||
| After Width: | Height: | Size: 4.6 KiB | 
|  | @ -0,0 +1,124 @@ | |||
| $(document).ready(function() | ||||
| { | ||||
| 	/*view filter click */ | ||||
| 	$(".apply-filter").click(function(){ | ||||
| 		//$("#products_grid_before").css({"width":"0px","transition":"0.5s"});
 | ||||
| 		//$("#wrapwrap").css({"margin-left":"0px","transition":"0.5s"});
 | ||||
| 		$(".main-header-maxW").removeClass("transparent"); | ||||
| 		$(".filter-main-div").css("display","block").addClass("zoom-fadein"); | ||||
| 	}); | ||||
| 	/*close button of view filter*/ | ||||
| 	$(".filter-option-close-btn").click(function(){ | ||||
| 		$(".filter-main-div").css("display","none"); | ||||
| 	}) | ||||
| 	 | ||||
| 	/* filter-option class set center of screen */ | ||||
| 	var winH = $(window).height(); | ||||
| 	var winW = $(window).width(); | ||||
| 	var $filter_option = $(".filter-option"); | ||||
| 	$filter_option.css('top',  winH/2-$filter_option.height()/2); | ||||
| 	$filter_option.css('left', winW/2-$filter_option.width()/2); | ||||
| 	 | ||||
| 	$("form.js_attributes input").each(function(){  | ||||
| 		var curr=$(this)        	 | ||||
| 		var curr_parent=curr.parent();        	 | ||||
| 		var status=this.checked   | ||||
| 		var val=this.value; | ||||
| 		if(status==true){  | ||||
| 			$(".no-any-variant").css("display","none"); | ||||
| 			$(".clear-all-filter").css("display","block"); | ||||
| 			 | ||||
| 			var curr_att=curr_parent.find("label").html()  | ||||
| 			if(curr_att){        		 | ||||
| 				$(".filter-option").append("<div class='attribute'>" + curr_att + "<a data-id='"+val+"' class='close-btn'>X</a> </div>")        	 | ||||
| 			} | ||||
| 			if(!curr_att){        			 | ||||
| 				val_name=$(this).attr("title")        			 | ||||
| 				$(".filter-option").append("<div class='attribute'>" + val_name + "<a data-id='"+val+"' class='close-btn'>X</a> </div>")        		 | ||||
| 				} | ||||
| 			} | ||||
| 		}); | ||||
| 		 | ||||
| 	// Pricefilter Attribute
 | ||||
| 		var p_filter = "" | ||||
| 		if($("input[name='min_val']").val()) | ||||
| 		{ | ||||
| 			p_filter = $("input[name='min_val']").val()  | ||||
| 			if($("input[name='max_val']").val()) | ||||
| 			{ | ||||
| 				p_filter += "-"+$("input[name='max_val']").val(); | ||||
| 				 | ||||
| 				$(".no-any-variant").css("display","none"); | ||||
| 				$(".clear-all-filter").css("display","block"); | ||||
| 				$(".apply-filter").css("display","block"); | ||||
| 				$(".clear-pricefilter").css("display","block"); | ||||
| 				$(".filter-option").append("<div class='attribute'>" + p_filter + "<a data-id='price' class='close-btn'>X</a> </div>") | ||||
| 			} | ||||
| 		} | ||||
| 		//clear price filter
 | ||||
| 		$(".clear-pricefilter").click(function(){ | ||||
| 			$("input[name='min_val']").val(""); | ||||
| 			$("input[name='max_val']").val(""); | ||||
| 			$("form.js_attributes input").closest("form").submit(); | ||||
| 		}) | ||||
| 	 | ||||
| 		/* clear particular selected attribute */ | ||||
| 		$(".close-btn").click(function(){        			 | ||||
| 			var id=$(this).attr("data-id")        			 | ||||
| 			if(id){ | ||||
| 				if(id == 'price') | ||||
| 				{ | ||||
| 					$("input[name='min_val']").val("") | ||||
| 					$("input[name='max_val']").val("") | ||||
| 					$("form.js_attributes input").closest("form").submit(); | ||||
| 				} | ||||
| 				else | ||||
| 				{ | ||||
| 				$("form.js_attributes input[value="+id+"]").removeAttr("checked");        			 | ||||
| 				$("form.js_attributes input").closest("form").submit(); | ||||
| 				} | ||||
| 				 | ||||
| 			} | ||||
| 			if(!id){        				 | ||||
| 				var id=$(this).attr("data-value")        				 | ||||
| 				$("form.js_attributes input[value="+id+"]").removeAttr("checked");        				 | ||||
| 				$("form.js_attributes input").closest("form").submit();        			 | ||||
| 			} | ||||
| 		}); | ||||
| 		/*Clear all selected attribute*/ | ||||
| 		$(".clear-all-filter").click(function(){ | ||||
| 			$("form.js_attributes input").each(function(){        	 | ||||
| 				var curr=$(this) | ||||
| 				var status=this.checked | ||||
| 				if(status==true)  { | ||||
| 				curr.removeAttr("checked"); | ||||
| 				 | ||||
| 				} | ||||
| 			}); | ||||
| 			$("input[name='min_val']").val("") | ||||
| 			$("input[name='max_val']").val("") | ||||
| 			$(".clear-all-filter").css("display","none"); | ||||
| 			$("form.js_attributes input").closest("form").submit(); | ||||
| 			$(".no-any-variant").css("display","block"); | ||||
| 		}); | ||||
| 
 | ||||
| }); | ||||
| $(window).load(function(){ | ||||
| 	$("form.js_attributes input").each(function(){  | ||||
| 		var curr=$(this)        	 | ||||
| 		var curr_parent=curr.parent();        	 | ||||
| 		var status=this.checked   | ||||
| 		var val=this.value; | ||||
| 		if(status==true){  | ||||
| 			$(".apply-filter").css("display","block"); | ||||
| 		}else{ | ||||
| 			$(".apply-filter").css("display","none;"); | ||||
| 		} | ||||
| 	}); | ||||
| }); | ||||
| /*esc close box*/ | ||||
| $(document).on( 'keydown', function(e){ | ||||
| 	if(e.keyCode === 27) { | ||||
| 		$(".filter-main-div").css("display","none"); | ||||
| 	} | ||||
| }); | ||||
|  | @ -0,0 +1,88 @@ | |||
| .filter-main-div{ | ||||
| 	width: 100%; | ||||
| 	position: fixed; | ||||
|     z-index: 9999; | ||||
|     height: 100%; | ||||
|     top: 0; | ||||
|     left: 0; | ||||
|     bottom: 0; | ||||
|     right: 0; | ||||
|     background: rgba(255, 255, 255, 0.95) !important; | ||||
|     display: none; | ||||
|      | ||||
| 
 | ||||
| 	.filter-div-maxW{ | ||||
| 		width: 60%; | ||||
| 	    max-width: 1400px; | ||||
| 	    .center; | ||||
| 	     | ||||
| 	     | ||||
| 	    .filter-option{ | ||||
| 	    	transition: opacity 1s; | ||||
| 	    	height: 300px; | ||||
| 		    position: fixed; | ||||
|     		width: 700px; | ||||
| 	    	 | ||||
| 	    	 | ||||
| 	    	.clear-all-filter{ | ||||
| 	    		.right; | ||||
| 			    .mr(10px); | ||||
| 			    .size(12px); | ||||
| 			    color: black; | ||||
| 			    border-bottom: 1px solid; | ||||
| 			    display:none; | ||||
| 			     | ||||
| 			    & span{ | ||||
| 			    	.size(13px); | ||||
| 			    } | ||||
| 	    	} | ||||
| 	    	.filter-option-h2{ | ||||
| 	    		.size(30px); | ||||
| 				color: #222; | ||||
| 				.uppercase(); | ||||
| 				line-height: 169%; | ||||
| 				.oswald-light(); | ||||
| 				letter-spacing: 2px; | ||||
| 				word-spacing: 1px; | ||||
| 			    .pb(10%); | ||||
| 			    margin:0; | ||||
| 			    width:100%; | ||||
| 			    text-align:left; | ||||
| 	    	} | ||||
| 	    	 | ||||
| 	    	.attribute{ | ||||
| 	    		padding:4px 0px 4px 0px; | ||||
| 			    .size(13px); | ||||
| 			    .muli-regular; | ||||
| 			    margin: 0 20px 10px 0; | ||||
| 			    .capitalize; | ||||
| 			     display: inline-block; | ||||
| 			     border-bottom: 1px solid @theme-color; | ||||
| 			     .left; | ||||
| 			     | ||||
| 			    & a{ | ||||
| 			    	.right; | ||||
| 				    padding: 0; | ||||
| 				    margin: 0; | ||||
| 				    .ml(9px); | ||||
| 				    .size(9px); | ||||
| 				    .pt(4px); | ||||
| 				    cursor:pointer; | ||||
| 			    } | ||||
| 	    	} | ||||
| 	    } | ||||
| 	} | ||||
| } | ||||
| 
 | ||||
| .zoom-fadein { | ||||
| 	-webkit-animation:animatezoomfade 0.6s; | ||||
| 	animation:animatezoomfade 0.6s | ||||
| } | ||||
| @-webkit-keyframes animatezoomfade{ | ||||
| 	from{-webkit-transform:scale(0); opacity:0;}  | ||||
| 	to{-webkit-transform:scale(1); opacity:1;} | ||||
| } | ||||
| @keyframes animatezoomfade{ | ||||
| 	from{transform:scale(0); opacity:0;}  | ||||
| 	to{transform:scale(1); opacity:1;} | ||||
| } | ||||
|  | @ -0,0 +1,9 @@ | |||
| <?xml version="1.0" encoding="utf-8"?> | ||||
| <odoo> | ||||
| 	<template id="json_filter_assets_frontend_js" inherit_id="web.assets_frontend"> | ||||
| 		<xpath expr="." position="inside"> | ||||
| 			<script type="text/javascript" src="/clarico_attribute_filter/static/src/js/filter.js"></script> | ||||
| 			<link rel="stylesheet" type="text/less" href="/clarico_attribute_filter/static/src/less/filter.less"/> | ||||
| 		</xpath> | ||||
| 	</template> | ||||
| </odoo> | ||||
|  | @ -0,0 +1,16 @@ | |||
| <?xml version="1.0" encoding="utf-8"?> | ||||
| <odoo> | ||||
| 	<template id="clarico_attribute_filter_clarico_filter" inherit_id="clarico_shop.clarico_shop_shop_page"> | ||||
| 		<xpath expr="//div[hasclass('main')]" position="after"> | ||||
| 		<div class="filter-main-div"> | ||||
|         	<div class="filter-div-maxW"> | ||||
|         		<a class="filter-option-close-btn common-close-btn"><span>x</span></a>  | ||||
|         		<div class="filter-option"> | ||||
|         			<a class="clear-all-filter">Clear all <span>x</span></a> | ||||
|         			<h2 class="filter-option-h2">Filter Option</h2> | ||||
|         		</div> | ||||
|         	</div> | ||||
|     	</div> | ||||
|     	</xpath> | ||||
| 	</template> | ||||
| </odoo> | ||||
|  | @ -0,0 +1 @@ | |||
| # -*- coding: utf-8 -*- | ||||
|  | @ -0,0 +1,26 @@ | |||
| { | ||||
|     # Theme information | ||||
|     'name' : 'Clarico Base', | ||||
|     'category' : 'Website', | ||||
|     'version' : '1.0', | ||||
|     'summary': 'Contains Common Design Styles for Theme Clarico', | ||||
|     'description': """""", | ||||
| 
 | ||||
|     # Dependencies | ||||
|     'depends': [ | ||||
|         'website_sale','website_blog', 'auth_signup', | ||||
|     ], | ||||
| 
 | ||||
|     # Views | ||||
|     'data': [ | ||||
|         'template/assets.xml', | ||||
|     ], | ||||
| 
 | ||||
|     # Author | ||||
|     'author': 'Emipro Technologies Pvt. Ltd.', | ||||
|     'website': 'http://www.emiprotechnologies.com', | ||||
| 
 | ||||
|     # Technical | ||||
|     'installable': True, | ||||
|     'application': False, | ||||
| } | ||||
| After Width: | Height: | Size: 4.6 KiB | 
							
								
								
									
										
											BIN
										
									
								
								ext/3rd-party-addons/clarico_base/static/src/font/BarlowSemiCondensed-Medium.ttf
								
								
								
								
									Executable file
								
							
							
						
						|  | @ -0,0 +1,37 @@ | |||
| /* | ||||
| @font-face { | ||||
|     font-family: muli-Bold; | ||||
|     src: url(https://fonts.gstatic.com/s/poppins/v5/pxiByp8kv8JHgFVrLCz7Z1xlFQ.woff2); | ||||
| } | ||||
| @font-face { | ||||
| 
 | ||||
|     font-family: muli-Regular; | ||||
|     src: url(https://fonts.gstatic.com/s/poppins/v5/pxiEyp8kv8JHgFVrJJfecg.woff2	); | ||||
| } | ||||
| @font-face { | ||||
|     font-family: muli-semibold; | ||||
|     src: url(https://fonts.gstatic.com/s/poppins/v5/pxiByp8kv8JHgFVrLEj6Z1xlFQ.woff2); | ||||
| } | ||||
| @font-face { | ||||
|     font-family: muli-light; | ||||
|     src: url(https://fonts.gstatic.com/s/poppins/v5/pxiByp8kv8JHgFVrLDz8Z1xlFQ.woff2); | ||||
| } | ||||
| 
 | ||||
| 
 | ||||
| @font-face { | ||||
|     font-family: oswald-bold; | ||||
|     src: url(https://fonts.gstatic.com/s/barlowcondensed/v1/HTxwL3I-JCGChYJ8VI-L6OO_au7B46r2z3bWuQ.woff2); | ||||
| } | ||||
| @font-face { | ||||
|     font-family: oswald-light; | ||||
|     src: url(https://fonts.gstatic.com/s/barlowcondensed/v1/HTxwL3I-JCGChYJ8VI-L6OO_au7B47rxz3bWuQ.woff2); | ||||
| } | ||||
| @font-face { | ||||
|     font-family: oswald-regular; | ||||
|     src: url(https://fonts.gstatic.com/s/barlowcondensed/v1/HTx3L3I-JCGChYJ8VI-L6OO_au7B6xHT2g.woff2); | ||||
| } | ||||
| @font-face { | ||||
|     font-family: oswald-semibold; | ||||
|     src: url(https://fonts.gstatic.com/s/barlowcondensed/v1/HTxwL3I-JCGChYJ8VI-L6OO_au7B4873z3bWuQ.woff2); | ||||
| } | ||||
| */ | ||||
|  | @ -0,0 +1,401 @@ | |||
| @font-face { | ||||
|     font-family: muli-Bold; | ||||
|     src: url(/clarico_base/static/src/font/Poppins-Bold.ttf); | ||||
| } | ||||
| @font-face { | ||||
|     font-family: muli-Regular; | ||||
|     src: url(/clarico_base/static/src/font/Poppins-Regular.ttf); | ||||
| } | ||||
| @font-face { | ||||
|     font-family: muli-semibold; | ||||
|     src: url(/clarico_base/static/src/font/Poppins-SemiBold.ttf); | ||||
| } | ||||
| @font-face { | ||||
|     font-family: muli-light; | ||||
|     src: url(/clarico_base/static/src/font/Poppins-Light.ttf); | ||||
| } | ||||
| 
 | ||||
| 
 | ||||
| @font-face { | ||||
|     font-family: oswald-bold; | ||||
|     src: url(/clarico_base/static/src/font/BarlowSemiCondensed-Bold.ttf); | ||||
| } | ||||
| @font-face { | ||||
|     font-family: oswald-extralight; | ||||
|     src: url(/clarico_base/static/src/font/BarlowSemiCondensed-Thin.ttf); | ||||
| } | ||||
| 
 | ||||
| @font-face { | ||||
|     font-family: oswald-light; | ||||
|     src: url(/clarico_base/static/src/font/BarlowSemiCondensed-Light.ttf); | ||||
| } | ||||
| @font-face { | ||||
|     font-family: oswald-medium; | ||||
|     src: url(/clarico_base/static/src/font/BarlowSemiCondensed-Medium.ttf); | ||||
| } | ||||
| @font-face { | ||||
|     font-family: oswald-regular; | ||||
|     src: url(/clarico_base/static/src/font/BarlowSemiCondensed-Regular.ttf); | ||||
| } | ||||
| @font-face { | ||||
|     font-family: oswald-semibold; | ||||
|     src: url(/clarico_base/static/src/font/BarlowSemiCondensed-SemiBold.ttf); | ||||
| } | ||||
| 
 | ||||
| 
 | ||||
| .shop_now_button | ||||
| { | ||||
| 	display: inline-block; | ||||
| 	.size(14px); | ||||
| 	line-height: 46px; | ||||
| 	height: 46px; | ||||
| 	letter-spacing: 1px; | ||||
| 	padding: 0 30px; | ||||
| 	text-align:center; | ||||
| 	.uppercase; | ||||
| 	background: @theme-color; | ||||
| 	border-radius: 25px; | ||||
| 	border: none; | ||||
| 	color: #fff; | ||||
| 	transition: all 300ms; | ||||
| 	text-decoration: none; | ||||
| 	.oswald-regular; | ||||
| 	cursor: pointer; | ||||
| 	 | ||||
| 	&:hover | ||||
| 	{ | ||||
| 		background:black; | ||||
| 		color:#fff !important; | ||||
| 	} | ||||
| } | ||||
| 
 | ||||
| .maxW{ | ||||
| 	width:90%; | ||||
| 	max-width:1400px; | ||||
| 	display:block; | ||||
| 	margin:0px auto; | ||||
| } | ||||
| 
 | ||||
| 
 | ||||
| .oswald-regular() | ||||
| { | ||||
| 	font-family:oswald-regular; | ||||
| } | ||||
| .oswald-light() | ||||
| { | ||||
| 	font-family:oswald-light; | ||||
| 
 | ||||
| } | ||||
| .oswald-semibold() | ||||
| { | ||||
| 	font-family:oswald-semibold; | ||||
| 
 | ||||
| } | ||||
| .oswald-bold() | ||||
| 
 | ||||
| { | ||||
| 	font-family:oswald-bold; | ||||
| } | ||||
| 
 | ||||
| 
 | ||||
| .muli-regular(){ | ||||
| 	font-family:Muli-Regular; | ||||
| } | ||||
| .muli-bold(){ | ||||
| 	font-family:Muli-Bold; | ||||
| } | ||||
| .muli-light(){ | ||||
| 	font-family:muli-light; | ||||
| } | ||||
| .muli-semibold(){ | ||||
| 	font-family:muli-semibold; | ||||
| } | ||||
| .size(@font_size){ | ||||
| 	font-size:@font_size; | ||||
| } | ||||
| @m-regular:'muli-regular'; | ||||
| @m-light:'muli-light'; | ||||
| @m-semibold:'muli-semibold'; | ||||
| @m-bold:'muli-bold'; | ||||
| 
 | ||||
| 
 | ||||
| @color-black :black; | ||||
| 
 | ||||
| 
 | ||||
| body | ||||
| { | ||||
| 	.muli-regular(); | ||||
| 
 | ||||
| } | ||||
| 
 | ||||
| 
 | ||||
| p | ||||
| { | ||||
|  	margin:0; | ||||
| } | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| .block | ||||
| { | ||||
| 	width:90%; | ||||
| 	display:block; | ||||
| 	margin:0px auto; | ||||
| 	max-width:1400px; | ||||
| } | ||||
| .center | ||||
| { | ||||
| 	display:block; | ||||
| 	margin:0px auto; | ||||
| } | ||||
| .common-div | ||||
| { | ||||
| 	display:inline-block; | ||||
| 	width:100%; | ||||
| } | ||||
| .capitalize(){ | ||||
| 	text-transform:capitalize; | ||||
| } | ||||
| .uppercase(){ | ||||
| 	text-transform:uppercase; | ||||
| } | ||||
| .center(){ | ||||
| 	text-align:center; | ||||
| } | ||||
| .left(){ | ||||
| 	float: left; | ||||
| } | ||||
| .p(@padding) | ||||
| { | ||||
| 	padding:@padding; | ||||
| } | ||||
| .right(){ | ||||
| 	float:right; | ||||
| } | ||||
| .pt(@top) | ||||
| { | ||||
| 	padding-top:@top; | ||||
| } | ||||
| .pb(@bottom) | ||||
| { | ||||
| 	padding-bottom:@bottom; | ||||
| } | ||||
| .mt(@top) | ||||
| { | ||||
| 	margin-top:@top; | ||||
| } | ||||
| .mb(@bottom) | ||||
| { | ||||
| 	margin-bottom:@bottom; | ||||
| } | ||||
| 
 | ||||
| 
 | ||||
| .ml(@left) | ||||
| { | ||||
| 	margin-left:@left; | ||||
| } | ||||
| .mr(@right) | ||||
| { | ||||
| 	margin-right:@right; | ||||
| } | ||||
| .pl(@left) | ||||
| { | ||||
| 	padding-left:@left; | ||||
| } | ||||
| .pr(@right) | ||||
| { | ||||
| 	padding-right:@right; | ||||
| } | ||||
| /*-=-= POSITION =-=-*/ | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| .pos(@val){ | ||||
| 	position:@val; | ||||
| } | ||||
| .left(@val){ | ||||
| 	left:@val; | ||||
| } | ||||
| .right(@val){ | ||||
| 	right:@val; | ||||
| 
 | ||||
| } | ||||
| .top(@val){ | ||||
| 	top:@val; | ||||
| } | ||||
| .bott(@val){ | ||||
| 	bottom:@val; | ||||
| } | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| @color-black :black; | ||||
| @theme-color: #be4978; | ||||
| @theme-btn-color :#be4978; | ||||
| 
 | ||||
| .btn-link | ||||
| { | ||||
| 	color:@theme-color; | ||||
| } | ||||
| .btn-primary | ||||
| { | ||||
| 	.bg(@theme-color) !important; | ||||
| } | ||||
| .dropdown-menu > .active > a, .dropdown-menu > .active > a:hover, .dropdown-menu > .active > a:focus | ||||
| { | ||||
| 	.bg(@theme-color); | ||||
| } | ||||
| 
 | ||||
| /* | ||||
| button.btn,a.btn{ | ||||
|     border-color:transparent !important; | ||||
|     transition: all 0.3s ease-in-out; | ||||
|    // opacity: 0.85 !important; | ||||
|     color: #fff !important; | ||||
|   //  border-radius: unset; | ||||
|     .bg(@theme-color); | ||||
|     .oswald-regular; | ||||
|     text-transform: uppercase; | ||||
|     letter-spacing: 2px; | ||||
|      | ||||
|      | ||||
|     &:hover{ | ||||
| 	     .bg(#000) !important; | ||||
| 		color:#fff !important; | ||||
|     } | ||||
| } | ||||
| */ | ||||
| .btn{ | ||||
|     border-color:transparent !important; | ||||
|     transition: opacity 0.3s ease-in-out; | ||||
|     opacity: 0.85 !important; | ||||
|     color: #fff; | ||||
|     border-radius: unset; | ||||
|     .bg(@theme-color); | ||||
|      | ||||
|      | ||||
|     &:hover{ | ||||
|     	opacity: 1.0 !important; | ||||
| 	    color: #fff !important; | ||||
|     } | ||||
| } | ||||
| 
 | ||||
| 
 | ||||
| .chs_heading | ||||
| { | ||||
| 	.size(30px); | ||||
| 	color:#222; | ||||
| 	.transform(uppercase); | ||||
| 	line-height: 169%; | ||||
| 	.oswald-regular(); | ||||
| 	letter-spacing: 2px; | ||||
| 	word-spacing: 1px; | ||||
| } | ||||
| .common-close-btn | ||||
| { | ||||
| 	position: absolute; | ||||
| 	z-index: 2; | ||||
| 	top: 6px; | ||||
| 	right: 15px; | ||||
| 	height: 34px; | ||||
| 	width: 34px; | ||||
| 	background-color: #fff; | ||||
| 	box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.15); | ||||
| 	border: solid 1px rgba(0, 0, 0, 0.06); | ||||
| 	border-radius: 50%; | ||||
| 	font-size: 15px; | ||||
| 	line-height: 32px; | ||||
| 	color: #878787; | ||||
| 	display: block; | ||||
| 	margin: 0px auto; | ||||
| 	text-align: center; | ||||
| 	cursor: pointer; | ||||
| } | ||||
| .bg(@color) | ||||
| { | ||||
| 	background-color:@color; | ||||
| } | ||||
| .transform(@text) | ||||
| { | ||||
| 	text-transform:@text; | ||||
| } | ||||
| 
 | ||||
| 
 | ||||
| /* Overflow ellipsis */ | ||||
| .ellipsis(){ | ||||
| 	white-space: nowrap; | ||||
|     overflow: hidden; | ||||
|     text-overflow: ellipsis; | ||||
|     max-width: 175px; | ||||
|     display: block; | ||||
| } | ||||
| a{ | ||||
| 	color: @color-black; | ||||
| 	cursor:pointer; | ||||
| 	 | ||||
| 	&:hover{ | ||||
| 		text-decoration:none !important; | ||||
| 		color: @color-black; | ||||
| 		color: @color-black; | ||||
| 	} | ||||
| 	&:active{ | ||||
| 		text-decoration:none; | ||||
| 	} | ||||
| 
 | ||||
| } | ||||
| 
 | ||||
| 
 | ||||
| /*------for owl-slider navigation------------*/ | ||||
| 
 | ||||
| 
 | ||||
| .owl-next | ||||
| { | ||||
| 	.size(25px); | ||||
| 	position: absolute; | ||||
| 	top: 45%; | ||||
| 	right: -15px; | ||||
| 	.oswald-light(); | ||||
| } | ||||
| .owl-prev | ||||
| { | ||||
| 	.size(25px); | ||||
| 	position: absolute; | ||||
| 	top: 45%; | ||||
| 	left: -15px; | ||||
| 	.oswald-light(); | ||||
| } | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| /*----------common image class ----------------*/ | ||||
| 
 | ||||
| 
 | ||||
| .s_image_common | ||||
| { | ||||
| 	display:block; | ||||
| 	width:auto; | ||||
| 	max-width:100%; | ||||
| 	margin:0px auto; | ||||
| } | ||||
| 
 | ||||
| 
 | ||||
| /*-------- heading media-query ----------*/ | ||||
| 
 | ||||
| 
 | ||||
| @media (max-width:600px){ | ||||
| 
 | ||||
| 
 | ||||
| 	.chs_heading,.content_title | ||||
| 	{ | ||||
| 	.size(20px) !important; | ||||
| 	} | ||||
| } | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
|  | @ -0,0 +1,6 @@ | |||
| /** | ||||
|  * Owl Carousel v2.2.1 | ||||
|  * Copyright 2013-2017 David Deutsch | ||||
|  * Licensed under  () | ||||
|  */ | ||||
| .owl-carousel,.owl-carousel .owl-item{-webkit-tap-highlight-color:transparent;position:relative}.owl-carousel{display:none;width:100%;z-index:1}.owl-carousel .owl-stage{position:relative;-ms-touch-action:pan-Y;-moz-backface-visibility:hidden}.owl-carousel .owl-stage:after{content:".";display:block;clear:both;visibility:hidden;line-height:0;height:0}.owl-carousel .owl-stage-outer{position:relative;overflow:hidden;-webkit-transform:translate3d(0,0,0)}.owl-carousel .owl-item,.owl-carousel .owl-wrapper{-webkit-backface-visibility:hidden;-moz-backface-visibility:hidden;-ms-backface-visibility:hidden;-webkit-transform:translate3d(0,0,0);-moz-transform:translate3d(0,0,0);-ms-transform:translate3d(0,0,0)}.owl-carousel .owl-item{min-height:1px;float:left;-webkit-backface-visibility:hidden;-webkit-touch-callout:none}.owl-carousel .owl-item img{display:block;width:100%}.owl-carousel .owl-dots.disabled,.owl-carousel .owl-nav.disabled{display:none}.no-js .owl-carousel,.owl-carousel.owl-loaded{display:block}.owl-carousel .owl-dot,.owl-carousel .owl-nav .owl-next,.owl-carousel .owl-nav .owl-prev{cursor:pointer;cursor:hand;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.owl-carousel.owl-loading{opacity:0;display:block}.owl-carousel.owl-hidden{opacity:0}.owl-carousel.owl-refresh .owl-item{visibility:hidden}.owl-carousel.owl-drag .owl-item{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.owl-carousel.owl-grab{cursor:move;cursor:grab}.owl-carousel.owl-rtl{direction:rtl}.owl-carousel.owl-rtl .owl-item{float:right}.owl-carousel .animated{animation-duration:1s;animation-fill-mode:both}.owl-carousel .owl-animated-in{z-index:0}.owl-carousel .owl-animated-out{z-index:1}.owl-carousel .fadeOut{animation-name:fadeOut}@keyframes fadeOut{0%{opacity:1}100%{opacity:0}}.owl-height{transition:height .5s ease-in-out}.owl-carousel .owl-item .owl-lazy{opacity:0;transition:opacity .4s ease}.owl-carousel .owl-item img.owl-lazy{transform-style:preserve-3d}.owl-carousel .owl-video-wrapper{position:relative;height:100%;background:#000}.owl-carousel .owl-video-play-icon{position:absolute;height:80px;width:80px;left:50%;top:50%;margin-left:-40px;margin-top:-40px;background:url(owl.video.play.png) no-repeat;cursor:pointer;z-index:1;-webkit-backface-visibility:hidden;transition:transform .1s ease}.owl-carousel .owl-video-play-icon:hover{-ms-transform:scale(1.3,1.3);transform:scale(1.3,1.3)}.owl-carousel .owl-video-playing .owl-video-play-icon,.owl-carousel .owl-video-playing .owl-video-tn{display:none}.owl-carousel .owl-video-tn{opacity:0;height:100%;background-position:center center;background-repeat:no-repeat;background-size:contain;transition:opacity .4s ease}.owl-carousel .owl-video-frame{position:relative;z-index:1;height:100%;width:100%} | ||||
							
								
								
									
										6
									
								
								ext/3rd-party-addons/clarico_base/static/src/less/owl.theme.default.min.css
								
								
								
									vendored
								
								
									Executable file
								
							
							
						
						|  | @ -0,0 +1,6 @@ | |||
| /** | ||||
|  * Owl Carousel v2.2.1 | ||||
|  * Copyright 2013-2017 David Deutsch | ||||
|  * Licensed under  () | ||||
|  */ | ||||
| .owl-theme .owl-dots,.owl-theme .owl-nav{text-align:center;-webkit-tap-highlight-color:transparent}.owl-theme .owl-nav{margin-top:10px}.owl-theme .owl-nav [class*=owl-]{color:#FFF;font-size:14px;margin:5px;padding:4px 7px;background:#D6D6D6;display:inline-block;cursor:pointer;border-radius:3px}.owl-theme .owl-nav [class*=owl-]:hover{background:#869791;color:#FFF;text-decoration:none}.owl-theme .owl-nav .disabled{opacity:.5;cursor:default}.owl-theme .owl-nav.disabled+.owl-dots{margin-top:10px}.owl-theme .owl-dots .owl-dot{display:inline-block;zoom:1}.owl-theme .owl-dots .owl-dot span{width:10px;height:10px;margin:5px 7px;background:#D6D6D6;display:block;-webkit-backface-visibility:visible;transition:opacity .2s ease;border-radius:30px}.owl-theme .owl-dots .owl-dot.active span,.owl-theme .owl-dots .owl-dot:hover span{background:#869791} | ||||
|  | @ -0,0 +1,21 @@ | |||
| <?xml version="1.0" encoding="utf-8"?> | ||||
| <odoo> | ||||
| 	<template id="layout_assets_frontend" inherit_id="web.assets_frontend"> | ||||
| 		<xpath expr="." position="inside"> | ||||
| 		 	<link rel="stylesheet" type="text/less" | ||||
| 				href="/clarico_base/static/src/less/fonts.less" />  | ||||
| 			<link rel="stylesheet" type="text/less" | ||||
| 				href="/clarico_base/static/src/less/mixin.less" /> | ||||
| 			 | ||||
| 			<!-- Owl-Carosel css --> | ||||
| 			<link rel="stylesheet" type="text/less" | ||||
| 				href="/clarico_base/static/src/less/owl.carousel.min.css" /> | ||||
| 			<link rel="stylesheet" type="text/less" | ||||
| 				href="/clarico_base/static/src/less/owl.theme.default.min.css" /> | ||||
| 			 | ||||
| 			<!-- Owl-Carosel Js --> | ||||
| 			<script src="/clarico_base/static/src/js/owl.carousel.js" | ||||
| 				type="text/javascript"></script> | ||||
| 		</xpath> | ||||
| 	</template> | ||||
| </odoo> | ||||
|  | @ -0,0 +1,26 @@ | |||
| { | ||||
|     # Theme information | ||||
|     'name' : 'Clarico Blog', | ||||
|     'category' : 'Website', | ||||
|     'version' : '1.0', | ||||
|     'summary': 'Easy & User Friendly Blogging Platform for your Online Store', | ||||
|     'description': """""", | ||||
| 
 | ||||
|     # Dependencies | ||||
|     'depends': [ | ||||
|         'clarico_layout' | ||||
|     ], | ||||
| 
 | ||||
|     # Views | ||||
|     'data': [ | ||||
|         'templates/template.xml', | ||||
|         'templates/assets.xml', | ||||
|     ], | ||||
| 
 | ||||
|     # Author | ||||
|     'author': 'Emipro Technologies Pvt. Ltd.', | ||||
|     'website': 'http://www.emiprotechnologies.com', | ||||
| 
 | ||||
|     # Technical | ||||
|     'installable': True, | ||||
| } | ||||
| After Width: | Height: | Size: 4.6 KiB | 
|  | @ -0,0 +1,338 @@ | |||
| .full-width | ||||
| { | ||||
| 	background-color: #f5f5f5; | ||||
| 	 | ||||
| 	.breadcrumb | ||||
| 	{ | ||||
| 		margin-bottom: 0; | ||||
| 		padding: 15px 15px; | ||||
| 	} | ||||
| 	 | ||||
| } | ||||
| .catg_title_main_blog | ||||
| { | ||||
| 	.mb(10px); | ||||
| 	.oswald-light(); | ||||
| 	.pb(1%); | ||||
| 	.mt(0); | ||||
| } | ||||
| .tag_margin | ||||
| { | ||||
| 	.mt(10px); | ||||
| 	.mb(10px); | ||||
| } | ||||
| .fa-tags::before | ||||
| 	{ | ||||
| 		.size(11px); | ||||
| 		color:@theme-color; | ||||
| 	} | ||||
| 	.lb_keywords,.l_blog_comments | ||||
| 	{ | ||||
| 		width:100%; | ||||
| } | ||||
| 
 | ||||
| .blogpost_left_main | ||||
| { | ||||
| 	width:70%; | ||||
| 	display:inline-block; | ||||
| 	.left(); | ||||
| } | ||||
| .blogpost_right_main | ||||
| { | ||||
| 	width:25%; | ||||
| 	display:inline-block; | ||||
| 	float:right; | ||||
| } | ||||
| 
 | ||||
| .ctg_subtitle_main | ||||
| { | ||||
| 	.muli-light(); | ||||
| 	.size(16px); | ||||
| 	margin:0; | ||||
| 	color:#777; | ||||
| } | ||||
| 
 | ||||
| 
 | ||||
| .website_blog .o_blog_post_title{ | ||||
| 	.size(20px) !important; | ||||
| 	.muli-regular; | ||||
| 	color: #000; | ||||
| 	.capitalize(); | ||||
| } | ||||
| .blog_post_div{ | ||||
| 	.pb(6%); | ||||
| } | ||||
| .blog_post_div{ | ||||
| 	.pb(6%); | ||||
| } | ||||
| .blog_post_data_more{ | ||||
| 	.pt(1%); | ||||
| 		 | ||||
| 	& .blog_post_tabs_a{ | ||||
| 		.mr(10px); | ||||
| 		color: @theme-color; | ||||
| 		.size(12px); | ||||
| 		border-left: 1px solid;     | ||||
| 		.pl(7px); | ||||
| 	} | ||||
| 	 | ||||
| 	& .seprater{ | ||||
| 		.ml(5px); | ||||
| 		.mr(5px); | ||||
| 	} | ||||
| 	 | ||||
| 	& .blog_post_date{ | ||||
| 		.size(12px); | ||||
| 	} | ||||
| 	 | ||||
| 	& .blog_post_author-static{ | ||||
| 		color:@color-black; | ||||
| 		.size(12px); | ||||
| 		 | ||||
| 		& .blog_post_author{ | ||||
| 			color: @theme-color !important; | ||||
| 			.ml(3px); | ||||
| 		} | ||||
| 	} | ||||
| } | ||||
| .blog-post-image-div{ | ||||
| 	width: auto!important; | ||||
|     height: 250px!important; | ||||
| } | ||||
| .blog-post-subtitle-div{ | ||||
| 	.pt(2%); | ||||
| 
 | ||||
| 	& .blog-post-subtitle{ | ||||
| 		.size(14px); | ||||
| 		color:#777; | ||||
| 	} | ||||
| } | ||||
| .o_sharing_links{ | ||||
| 	.mt(15px) !important; | ||||
| 
 | ||||
| 	& a{ | ||||
| 		color:black !important; | ||||
| 		.size(15px) !important; | ||||
| 	} | ||||
| } | ||||
| .tagline_hr{ | ||||
| 	padding: 0; | ||||
| 	.mb(0); | ||||
| 	.mt(10px); | ||||
| } | ||||
| .blog_post_tags .nav-pills > li.active > a{ | ||||
| 	color:@theme-color; | ||||
| 	background-color:white; | ||||
| 	border-radius: 2px; | ||||
| 	 | ||||
| 	&:hover{ | ||||
| 		color:@theme-color; | ||||
| 	} | ||||
| } | ||||
| .blog_post_tags .nav-pills{ | ||||
| 	.pt(2%); | ||||
| 	.pl(10px); | ||||
| } | ||||
| .blog_post_tags .nav-pills > li > a{ | ||||
| 	.size(12px); | ||||
| 	padding: 2px 12px 2px 12px !important; | ||||
| } | ||||
| .website_blog .o_blog_cover_container.cover > .blog_title, .website_blog .o_blog_cover_container.cover_footer > .blog_title { | ||||
|     color: white; | ||||
|     position: absolute; | ||||
|     top: 20%; | ||||
|     left: 30px; | ||||
|     bottom: auto; | ||||
|     right: 30px; | ||||
| } | ||||
| .blog_post_tags .nav-pills > li { | ||||
| 	display:inline-block; | ||||
|     border: 1px solid #ccc; | ||||
|     margin:10px 2px 0 2px; | ||||
|      | ||||
|     &:hover{ | ||||
|     	border: 1px solid @theme-color; | ||||
|     } | ||||
|      | ||||
|     &.active{ | ||||
|     	border: 1px solid @theme-color; | ||||
|     } | ||||
| 
 | ||||
| 	& a:hover{ | ||||
| 		background-color:white; | ||||
| 		color:@theme-color; | ||||
| 	} | ||||
| 	 | ||||
| 	&.active > a{ | ||||
| 		color:@theme-color; | ||||
| 		background-color:white; | ||||
| 		border-radius: 2px; | ||||
| 		 | ||||
| 		&:hover{ | ||||
| 			color:@theme-color; | ||||
| 		} | ||||
| 	} | ||||
| } | ||||
| .blog_post_catge .nav-pills > li > a:hover{ | ||||
| 	background-color:white; | ||||
| 	color:@theme-color; | ||||
| } | ||||
| .blog_post_catge{ | ||||
| 	.pt(1%); | ||||
| 	 | ||||
| 	& .nav-pills > li{ | ||||
| 		.mt(5px); | ||||
| 		 | ||||
| 		& a{ | ||||
| 			.size(14px); | ||||
| 			padding: 2px 15px !important; | ||||
| 			 | ||||
| 		} | ||||
| 	} | ||||
| 	 | ||||
| 	& .nav-pills > li.active > a{ | ||||
| 		color:@theme-color; | ||||
| 		background-color:white; | ||||
| 		border-radius: 2px; | ||||
| 		.capitalize(); | ||||
| 		 | ||||
| 		&:hover{ | ||||
| 			color:@theme-color; | ||||
| 		} | ||||
| 	} | ||||
| } | ||||
| .blog_complete_tag_icon | ||||
| { | ||||
| 	color:#fff; | ||||
| } | ||||
| .blog_complete_tag | ||||
| { | ||||
| 	.bg(@theme-color); | ||||
| 	 | ||||
| 	&:hover | ||||
| 	{ | ||||
| 		.bg(@theme-color); | ||||
| 	} | ||||
| } | ||||
| .blog_complete_subtitle,.read_next_blog_subtitle | ||||
| { | ||||
| 	max-width: 800px; | ||||
| 	.size(16px); | ||||
| 	.center(); | ||||
| 	.center; | ||||
| 	.mt(2%); | ||||
| 	.oswald-light(); | ||||
| 	line-height: 190%; | ||||
| 	letter-spacing: 1px; | ||||
| 	.mb(2%); | ||||
| } | ||||
| .blog_complete_name,.read_next_blog_name | ||||
| { | ||||
| 	max-width: 800px; | ||||
| 	.center; | ||||
| 	.oswald-regular(); | ||||
| 	line-height:160%; | ||||
| } | ||||
| .blog_share_icons | ||||
| { | ||||
| 	.o_sharing_links | ||||
| 	{ | ||||
| 		position: fixed; | ||||
| 		top: 50%; | ||||
| 		right: 1%; | ||||
| 		 | ||||
| 		a | ||||
| 		{ | ||||
| 			display: block; | ||||
| 			box-shadow: 0px 4px 8px 0px rgba(0, 0, 0, 0.1); | ||||
| 			background: #FFF; | ||||
| 			border-radius: 100%; | ||||
| 			.center(); | ||||
| 			.pt(10px); | ||||
| 			margin: 10px 0 !important; | ||||
| 			width: 38px; | ||||
| 			height: 38px;   	 | ||||
| 			 | ||||
| 			>i | ||||
| 			{ | ||||
| 				color:#555 !important; | ||||
| 				transition: color 0.3s ease-in-out; | ||||
| 				.size(17px); | ||||
| 				vertical-align: middle; | ||||
| 				 | ||||
| 				&:hover | ||||
| 				{ | ||||
| 					color:@theme-color !important; | ||||
| 				} | ||||
| 			} | ||||
| 		} | ||||
| 	} | ||||
| } | ||||
| .blog_share_icons .o_sharing_links | ||||
| { | ||||
| 	>a::before | ||||
| 	{ | ||||
| 		content: ""; | ||||
| 	} | ||||
| } | ||||
| .blog_read_next_link | ||||
| { | ||||
| 	color:@theme-color; | ||||
| } | ||||
| .blog_complete_max_width | ||||
| { | ||||
| 	max-width:1000px !important; | ||||
| 	.block; | ||||
| } | ||||
| .participate_social a{ | ||||
| 	.size(15px); | ||||
| 	.mr(5px); | ||||
| } | ||||
| .stay-update input.js_follow_email{ | ||||
| 	height: 40px; | ||||
| 	border-radius: 0; | ||||
| } | ||||
| 
 | ||||
| .status-ul{ | ||||
| 	& li a{ | ||||
| 		padding: 4px 15px !important; | ||||
| 		.size(13px) !important; | ||||
| 		 | ||||
| 		&:hover{ | ||||
| 			background : unset !important; | ||||
| 			color : @theme-color !important; | ||||
| 		} | ||||
| 	} | ||||
| 	& li.active > a{ | ||||
| 		background : unset !important; | ||||
| 		color : @theme-color !important; | ||||
| 	} | ||||
| } | ||||
| .archives-ul{ | ||||
| 	padding: 4px 15px !important; | ||||
| 	 | ||||
| 	& li{ | ||||
| 		width: auto; | ||||
| 		display: inline-block; | ||||
| 						 | ||||
| 		& a{ | ||||
| 			.size(13px) !important; | ||||
| 			 | ||||
| 				&:hover{ | ||||
| 				background : unset !important; | ||||
| 				color : @theme-color !important; | ||||
| 			} | ||||
| 		} | ||||
| 	} | ||||
| 	& li.active > a{ | ||||
| 		background : unset !important; | ||||
| 		color : @theme-color !important; | ||||
| 	} | ||||
| } | ||||
| .lb_name | ||||
| { | ||||
| 	.capitalize(); | ||||
| } | ||||
| .ch_h1_class_new{ | ||||
| 	.mb(0) !important; | ||||
| } | ||||
|  | @ -0,0 +1,59 @@ | |||
| @media (min-width: 900px) and (max-width: 1199px) { | ||||
|    	#main_column{ | ||||
| 		width:80% !important; | ||||
| 	} | ||||
| 	#blog_right_column{ | ||||
| 		width:20% !important; | ||||
| 	} | ||||
| 	.blog_post_catge{ | ||||
| 		.pl(0); | ||||
| 		 | ||||
| 		& ul.nav-stacked > li > a{ | ||||
| 			padding: 2px 0; | ||||
| 			.size(13px); | ||||
| 		} | ||||
| 	} | ||||
| 	.blog_post_tags{ | ||||
| 		.nav-stacked > li + li{ | ||||
| 			.mt(5px); | ||||
| 		} | ||||
| 		.nav > li > a{ | ||||
| 			.size(13px); | ||||
| 		} | ||||
| 	} | ||||
| 	.website_blog .o_blog_post_title | ||||
| 	{ | ||||
| 		.size(18px); | ||||
| 	} | ||||
| } | ||||
| @media (max-width: 900px)  | ||||
| { | ||||
| 	#main_column,#blog_right_column | ||||
| 	{ | ||||
| 		width:100%; | ||||
| 		float:none; | ||||
| 	} | ||||
| } | ||||
| @media (max-width: 800px)  | ||||
| { | ||||
| 	#main_column,#blog_right_column | ||||
| 	{ | ||||
| 		width:100%; | ||||
| 		float:none; | ||||
| 	} | ||||
| } | ||||
| @media (max-width: 600px) | ||||
| { | ||||
| 	  .website_blog .o_blog_post_title { | ||||
|     .size(16px) !important; | ||||
|     line-height: 160%; | ||||
|     } | ||||
|     .blog-post-subtitle-div .blog-post-subtitle { | ||||
|     .size(13px); | ||||
|     line-height: 170%; | ||||
| 	} | ||||
| 	     .cc_content_class { | ||||
| 	      | ||||
| 	   .size(13px) !important; | ||||
| 	     } | ||||
| }  | ||||
|  | @ -0,0 +1,9 @@ | |||
| <?xml version="1.0" encoding="utf-8" ?> | ||||
| <odoo> | ||||
| <template id="blogs_assets_frontend" inherit_id="web.assets_frontend"> | ||||
| 		<xpath expr="." position="inside"> | ||||
| 			  <link rel="stylesheet" href="/clarico_blog/static/src/less/clarico_blog.less"></link>  | ||||
| 			  <link rel="stylesheet" href="/clarico_blog/static/src/less/responsive_blog.less"></link> | ||||
| 		</xpath> | ||||
| </template> | ||||
| </odoo> | ||||
|  | @ -0,0 +1,237 @@ | |||
| <?xml version="1.0" encoding="utf-8"?> | ||||
| <odoo> | ||||
| 	<template id="clarico_blog_latest_blogs" inherit_id="website_blog.latest_blogs"> | ||||
| 		<xpath expr="//div[hasclass('col-md-12')]/h1" position="attributes"> | ||||
| 			<attribute name="class">chs_heading lb_heading</attribute> | ||||
| 		</xpath> | ||||
| 		<xpath expr="//span[hasclass('fa-calendar')]" position="replace"> | ||||
| 			   <span class="mr8">	<span class="blog_post_date" t-field="post.post_date" | ||||
| 							t-options='{"format": "MMMM, yyyy"}' /></span> | ||||
| 		</xpath> | ||||
| 		<xpath expr="//div[hasclass('fa-tags')]" position="attributes"> | ||||
| 			<attribute name="class">text-muted fa fa-tags tag_margin</attribute> | ||||
|         </xpath> | ||||
|         <xpath expr="//span[hasclass('fa-folder-open')]" position="replace"> | ||||
|             <span> - | ||||
|                 <a class="mr8 l_catg" t-attf-href="#{blog_url(blog=post.blog_id)}"> | ||||
|                     <span t-field="post.blog_id"/> | ||||
|                 </a> | ||||
|             </span> | ||||
|         </xpath> | ||||
|         <xpath expr="//div[hasclass('col-md-4')]/h4" position="attributes"> | ||||
|             <attribute name="class">lb_name</attribute> | ||||
|         </xpath> | ||||
| 	</template> | ||||
| 
 | ||||
| 
 | ||||
| 	<template id="clarico_blogs_post_complete" inherit_id="website_blog.blog_post_complete"> | ||||
| 		<xpath expr="//p[2][@class='post-meta text-muted text-center']" | ||||
| 			position="replace"> | ||||
| 			<span class="fa fa-tags blog_complete_tag_icon" /> | ||||
| 			<t t-foreach="blog_post.tag_ids" t-as="one_tag"> | ||||
| 				<a class="label label-primary mr8 blog_complete_tag" t-attf-href="#{blog_url(tag=one_tag.id)}" | ||||
| 					t-esc="one_tag.name" /> | ||||
| 			</t> | ||||
| 		</xpath> | ||||
| 
 | ||||
| 		<xpath expr="//div[@class='o_blog_post_complete o_sharing_links']" | ||||
| 			position="replace"> | ||||
| 			<div class="blog_share_icons"> | ||||
| 				<div class="o_blog_post_complete o_sharing_links"> | ||||
| 					<a class="fa fa-twitter-square o_twitter_complete " id="o_twitter_complete"> | ||||
| 						<i class="fa fa-twitter"></i> | ||||
| 					</a> | ||||
| 					<a class="fa fa-facebook-square o_facebook_complete" id="o_facebook_complete"> | ||||
| 						<i class="fa fa-facebook"></i> | ||||
| 					</a> | ||||
| 					<a class="fa fa-linkedin-square o_linkedin_complete" id="o_linkedin_complete"> | ||||
| 						<i class="fa fa-linkedin"></i> | ||||
| 					</a> | ||||
| 					<a class="fa fa-google-plus-square o_google_complete" id="o_google_complete"> | ||||
| 						<i class="fa fa-google-plus"></i> | ||||
| 					</a> | ||||
| 				</div> | ||||
| 			</div> | ||||
| 		</xpath> | ||||
| 
 | ||||
| 		<xpath expr="//h2[@t-field='blog_post.subtitle']" position="replace"> | ||||
| 			<h2 t-field="blog_post.subtitle" class="blog_complete_subtitle" | ||||
| 				placeholder="Subtitle" /> | ||||
| 		</xpath> | ||||
| 
 | ||||
| 		<xpath expr="//h1[@t-field='blog_post.name']" position="replace"> | ||||
| 			<h1 t-field="blog_post.name" id="blog_post_name" class="blog_complete_name" | ||||
| 				t-att-data-blog-id="blog_post.id" placeholder="Blog Post Title" /> | ||||
| 		</xpath> | ||||
| 
 | ||||
| 		<xpath expr="//div[@id='blog_content']" position="replace"> | ||||
| 			<div id="blog_content" t-field="blog_post.content" | ||||
| 				class="blog_content mt32 blog_complete_max_width" /> | ||||
| 		</xpath> | ||||
| 	</template> | ||||
| 	 | ||||
| 	<template id="clarico_blog_opt_blog_rc_about_us" inherit_id="website_blog.opt_blog_rc_about_us"> | ||||
| 		<xpath expr="//section[hasclass('mt32')]" position="replace"> | ||||
| 		 | ||||
| 		</xpath> | ||||
| 	</template> | ||||
| 	 | ||||
| 	 | ||||
| 	<template id="clarico_blog_opt_blog_rc_status" inherit_id="website_blog.opt_blog_rc_status"> | ||||
| 		<xpath expr="//section[@groups='website.group_website_designer']" position="replace"> | ||||
| 		 | ||||
| 		</xpath> | ||||
| 	</template> | ||||
| 	 | ||||
| 	<template id="website_blog.opt_blog_rc_blogs" name="Our Blogs" priority="6" | ||||
|         inherit_id="website_blog.index_right" active="True" customize_show="True"> | ||||
| 		<xpath expr="//div[@id='main_column']" position="attributes"> | ||||
|         <attribute name="class">col-sm-8</attribute> | ||||
|     </xpath> | ||||
|     <xpath expr="//div[@id='blog_right_column']" position="inside"> | ||||
|       <section class="mt32 mb32 blog_categ"> | ||||
| 				<h4>Category</h4> | ||||
| 				<hr class="tagline_hr"></hr> | ||||
| 				<div class="blog_post_catge"> | ||||
| 					<ul class="nav nav-pills nav-stacked"> | ||||
| 						<t t-foreach="blogs" t-as="nav_blog"> | ||||
| 							<li t-att-class="nav_blog.id == blog.id and 'active' or None"> | ||||
| 								<a | ||||
| 									t-attf-href="#{blog_url(blog=nav_blog, tag=False, date_begin=False, date_end=False)}"> | ||||
| 									<span t-field="nav_blog.name" /> | ||||
| 								</a> | ||||
| 							</li> | ||||
| 						</t> | ||||
| 					</ul> | ||||
| 				</div> | ||||
| 			</section> | ||||
|     </xpath> | ||||
| 	</template> | ||||
| 	 | ||||
| 	 | ||||
| 	<template id="website_blog.opt_blog_rc_history" name="Archives" | ||||
|         inherit_id="website_blog.index_right" active="True" customize_show="True"> | ||||
| 	 <xpath expr="//div[@id='main_column']" position="attributes"> | ||||
|         <attribute name="class">col-sm-8</attribute> | ||||
|     </xpath> | ||||
|     <xpath expr="//div[@id='blog_right_column']" position="inside"> | ||||
|         <section class="blog_archives_replaced_section"></section> | ||||
|     </xpath> | ||||
| 	 | ||||
| 	</template> | ||||
| 	 | ||||
| 	 | ||||
| 	<template id="clarico_blog_opt_blog_rc_tags" name="Tags" | ||||
| 		inherit_id="website_blog.opt_blog_rc_tags" active="True" | ||||
| 		customize_show="True"> | ||||
| 		<xpath expr="//section[@class='mt32']" position="replace"> | ||||
| 			<section class="mt32 blog_tags_main"> | ||||
| 				<h4>Tags</h4> | ||||
| 				<hr class="tagline_hr"></hr> | ||||
| 				<div class="blog_post_tags"> | ||||
| 					<ul class="nav nav-pills nav-stacked"> | ||||
| 						<t t-foreach="tags" t-as="nav_tag"> | ||||
| 							<li t-att-class="nav_tag.id in active_tag_ids and 'active' or None"> | ||||
| 								<a t-attf-href="#{blog_url(tag=tags_list(active_tag_ids, nav_tag.id))}"> | ||||
| 									<span t-field="nav_tag.name" /> | ||||
| 								</a> | ||||
| 							</li> | ||||
| 						</t> | ||||
| 					</ul> | ||||
| 				</div> | ||||
| 			</section> | ||||
| 			 | ||||
| 				<section class="mt32 mb32"> | ||||
| 				<h4>Stay updated</h4> | ||||
| 				<hr class="tagline_hr"></hr> | ||||
| 				<div class="mt16 stay-update"> | ||||
| 					<t t-if="blog"> | ||||
| 						<t t-call="website_mail.follow"> | ||||
| 							<t t-set="email" t-value="user_id.email" /> | ||||
| 							<t t-set="object" t-value="blog" /> | ||||
| 						</t> | ||||
| 					</t> | ||||
| 				</div> | ||||
| 				<p class="text-muted mb0 mt16"> | ||||
| 					Participate on our social stream. | ||||
| 				</p> | ||||
| 				<h2 class="mt4 participate_social"> | ||||
| 					<a t-att-href="website.social_facebook" t-if="website.social_facebook"> | ||||
| 						<i class="fa fa-facebook" /> | ||||
| 					</a> | ||||
| 					<a t-att-href="website.social_twitter" t-if="website.social_twitter"> | ||||
| 						<i class="fa fa-twitter" /> | ||||
| 					</a> | ||||
| 					<a t-att-href="website.social_linkedin" t-if="website.social_linkedin"> | ||||
| 						<i class="fa fa-linkedin" /> | ||||
| 					</a> | ||||
| 					<a t-att-href="website.social_youtube" t-if="website.social_youtube"> | ||||
| 						<i class="fa fa-youtube-play" /> | ||||
| 					</a> | ||||
| 					<a t-att-href="website.social_googleplus" t-if="website.social_googleplus"> | ||||
| 						<i class="fa fa-google-plus" /> | ||||
| 					</a> | ||||
| 					<a t-att-href="website.social_github" t-if="website.social_github"> | ||||
| 						<i class="fa fa-github" /> | ||||
| 					</a> | ||||
| 					<a t-att-href="'/blog/%s/feed' % (blog.id)"> | ||||
| 						<i class="fa fa-rss" /> | ||||
| 					</a> | ||||
| 				</h2> | ||||
| 			</section> | ||||
| 			</xpath> | ||||
| 	</template> | ||||
| 
 | ||||
| 	 | ||||
| 	<template id="clarico_blog_opt_blog_rc_follow_us" inherit_id="website_blog.opt_blog_rc_follow_us"> | ||||
| 		<xpath expr="//section[hasclass('mt32')]" position="replace">  | ||||
| 			 | ||||
| 		</xpath> | ||||
| 	</template> | ||||
| 
 | ||||
| 	 | ||||
| 
 | ||||
| 	<template id="clarico_blogs_blog_breadcrumb" inherit_id="website_blog.blog_breadcrumb"> | ||||
| 		<xpath expr="//div[@class='container']" position="attributes"> | ||||
| 			<attribute name="class">full-width</attribute> | ||||
| 		</xpath> | ||||
| 		<xpath expr="//div[@class='col-sm-9']" position="attributes"> | ||||
| 			<attribute name="class">block</attribute> | ||||
| 		</xpath> | ||||
| 		<xpath expr="//div[@class='row']" position="attributes"> | ||||
| 			<attribute name="class">breadcrumb-main</attribute> | ||||
| 		</xpath> | ||||
| 	</template> | ||||
| 
 | ||||
| 	<template id="clarico_blogs_post_complete_read_next" inherit_id="website_blog.opt_blog_post_complete_read_next"> | ||||
| 		<xpath expr="//h1[@t-field='next_post.name']" position="replace"> | ||||
| 
 | ||||
| 			<h1 t-field="next_post.name" class="read_next_blog_name" | ||||
| 				placeholder="Blog Post Title" /> | ||||
| 
 | ||||
| 		</xpath> | ||||
| 
 | ||||
| 		<xpath expr="//h2[@t-field='next_post.subtitle']" position="replace"> | ||||
| 			<h2 t-field="next_post.subtitle" class="read_next_blog_subtitle" | ||||
| 				placeholder="Subtitle" /> | ||||
| 		</xpath> | ||||
| 
 | ||||
| 		<xpath expr="//p[@class='mt32']" position="replace"> | ||||
| 			<p class="mt32 blog_read_next_link"> | ||||
| 				Read Next | ||||
| 				<span class="fa fa-long-arrow-right" /> | ||||
| 			</p> | ||||
| 		</xpath> | ||||
| 	</template> | ||||
| 
 | ||||
| 	<template id="clarico_blog_index_right" inherit_id="website_blog.index_right"> | ||||
| 		<xpath expr="//div[@id='blog_right_column']" position="attributes"> | ||||
| 			<attribute name="class">blogpost_right_main</attribute> | ||||
| 		</xpath> | ||||
| 	</template> | ||||
| 
 | ||||
| 
 | ||||
| 	 | ||||
| 
 | ||||
| 
 | ||||
| </odoo> | ||||
|  | @ -0,0 +1,2 @@ | |||
| from . import controller | ||||
| from . import model | ||||
|  | @ -0,0 +1,28 @@ | |||
| { | ||||
|     # Theme information | ||||
|     'name' : 'Clarico Brand', | ||||
|     'category' : 'Website', | ||||
|     'version' : '1.0', | ||||
|     'summary': 'Filter Products By Brand at Category Page', | ||||
|     'description': """""", | ||||
| 
 | ||||
|     # Dependencies | ||||
|     'depends': [ | ||||
|         'clarico_shop' | ||||
|     ], | ||||
| 
 | ||||
|     # Views | ||||
|     'data': [ | ||||
|         'security/ir.model.access.csv',   | ||||
|         'template/template.xml', | ||||
|         'view/product_template_brand.xml', | ||||
|         'view/brand.xml', | ||||
|     ], | ||||
| 
 | ||||
|     # Author | ||||
|     'author': 'Emipro Technologies Pvt. Ltd.', | ||||
|     'website': 'http://www.emiprotechnologies.com', | ||||
| 
 | ||||
|     # Technical | ||||
|     'installable': True, | ||||
| } | ||||
|  | @ -0,0 +1 @@ | |||
| from . import main | ||||
|  | @ -0,0 +1,56 @@ | |||
| import odoo | ||||
| from odoo import http | ||||
| from odoo import fields | ||||
| from odoo.http import request | ||||
| from odoo.addons.clarico_shop.controllers.main import claricoShop | ||||
| 
 | ||||
| class claricoBrand(claricoShop): | ||||
|      | ||||
|     def _get_search_domain(self, search, category, attrib_values, price_vals = {}):         | ||||
|         domain = request.website.sale_product_domain() | ||||
|         if search: | ||||
|             for srch in search.split(" "): | ||||
|                 domain += [ | ||||
|                     '|', '|', '|','|', ('name', 'ilike', srch), ('description', 'ilike', srch), | ||||
|                     ('description_sale', 'ilike', srch), ('product_variant_ids.default_code', 'ilike', srch), | ||||
|                     ('brand_ept_id.name','ilike', srch)] | ||||
|   | ||||
|         if category: | ||||
|             domain += [('public_categ_ids', 'child_of', int(category))] | ||||
|   | ||||
|         if price_vals : | ||||
|         #if price_vals & (int(price_vals.get('min_val',0)) != 0 & int(price_vals.get('max_val',0)) !=0) : | ||||
|             domain += [('list_price','>=',price_vals.get('min_val')),('list_price','<=',price_vals.get('max_val'))] | ||||
|          | ||||
|         if attrib_values: | ||||
|             attrib = None | ||||
|             ids = [] | ||||
|             for value in attrib_values: | ||||
|                 if value[0] == 0 : | ||||
|                     ids.append(value[1]) | ||||
|                     domain += [('brand_ept_id.id', 'in', ids)] | ||||
|                 elif not attrib: | ||||
|                     attrib = value[0] | ||||
|                     ids.append(value[1]) | ||||
|                 elif value[0] == attrib: | ||||
|                     ids.append(value[1]) | ||||
|                 else: | ||||
|                     domain += [('attribute_line_ids.value_ids', 'in', ids)] | ||||
|                     attrib = value[0] | ||||
|                     ids = [value[1]] | ||||
|             if attrib: | ||||
|                 domain += [('attribute_line_ids.value_ids', 'in', ids)]      | ||||
|         return domain | ||||
|      | ||||
|     @http.route([ | ||||
|         '/shop', | ||||
|         '/shop/page/<int:page>', | ||||
|         '/shop/category/<model("product.public.category"):category>', | ||||
|         '/shop/category/<model("product.public.category"):category>/page/<int:page>' | ||||
|     ], type='http', auth="public", website=True) | ||||
|     def shop(self, page=0, category=None, search='', ppg=False, **post): | ||||
|         response = super(claricoBrand, self).shop(page=page, category=category, search=search,ppg=ppg, **post) | ||||
|         brand_object = request.env['brand'] | ||||
|         brand_rec=brand_object.sudo().search([('is_website_publish','=',True)]) | ||||
|         response.qcontext['brand_list'] = brand_rec | ||||
|         return response  | ||||
|  | @ -0,0 +1,2 @@ | |||
| from . import product_template | ||||
| from . import brand | ||||
|  | @ -0,0 +1,8 @@ | |||
| from odoo import fields, models | ||||
|      | ||||
| class Brand(models.Model): | ||||
|     _name="brand" | ||||
|      | ||||
|     name=fields.Char("Brand Name",required=True) | ||||
|     brand_image=fields.Binary("brand_image", attachment=True) | ||||
|     is_website_publish=fields.Boolean("is_website_publish") | ||||
|  | @ -0,0 +1,6 @@ | |||
| from odoo import api, fields, models | ||||
|      | ||||
| class product_template(models.Model): | ||||
|     _inherit = ["product.template"] | ||||
|      | ||||
|     brand_ept_id=fields.Many2one("brand","Sale Brand",ondelete='cascade') | ||||
|  | @ -0,0 +1,2 @@ | |||
| id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink | ||||
| access_brand,brand,model_brand,,1,0,0,0 | ||||
| 
 | 
| After Width: | Height: | Size: 4.6 KiB | 
|  | @ -0,0 +1,39 @@ | |||
| <?xml version="1.0" encoding="utf-8"?> | ||||
| <odoo> | ||||
| 	<template id="clarico_brand_form" inherit_id="clarico_shop.clarico_shop_shop_page"> | ||||
| 		<xpath expr="//form/ul[@class='nav nav-pills nav-stacked mt16']" | ||||
| 			position="inside"> | ||||
| 			<t t-if="brand_list"> | ||||
| 				<li> | ||||
| 					<div class="attribut-main-div"> | ||||
| 						<div class="filter-by-div"> | ||||
| 							<i class="down-arrow fa fa-caret-down" aria-hidden="true"></i> | ||||
| 							<h5 class="refined-by-attr">Filter By </h5> | ||||
| 							<h5 class="refined-by-attr refined-by-dynamic">Brands</h5> | ||||
| 						</div> | ||||
| 						<a class="clear-all-variant">(Clear all)</a> | ||||
| 						<div class="attr-val mCustomScrollbar" data-mcs-theme="dark"> | ||||
| 							<div> | ||||
| 								<ul class="nav nav-pills nav-stacked type-radio nav-overflow-scroll"> | ||||
| 									<t t-foreach="brand_list" t-as="brand"> | ||||
| 										<li class="nav-stacked-li"> | ||||
| 											<div class="nav-stacked-div"> | ||||
| 												<label class="type-checkbox"> | ||||
| 													<input class="checkbox-custom" type="checkbox" name="attrib" | ||||
| 														t-att-value="'0-%s' % (brand.id)" | ||||
| 														t-att-checked="'checked' if brand.id in attrib_set else None" /> | ||||
| 													<label class="checkbox-custom-label" style="font-weight: normal" | ||||
| 														t-field="brand.name" /> | ||||
| 												</label> | ||||
| 											</div> | ||||
| 										</li> | ||||
| 									</t>	 | ||||
| 								</ul> | ||||
| 							</div> | ||||
| 						</div> | ||||
| 					</div> | ||||
| 				</li> | ||||
| 			</t> | ||||
| 		</xpath> | ||||
| 	</template> | ||||
| </odoo> | ||||
|  | @ -0,0 +1,43 @@ | |||
| <?xml version="1.0" encoding="utf-8" ?> | ||||
| <odoo> | ||||
| 	<data> | ||||
| 		<record id="brand_tree_view" model="ir.ui.view"> | ||||
| 			<field name="name">brand.tree.view</field> | ||||
| 			<field name="model">brand</field> | ||||
| 			<field name="arch" type="xml"> | ||||
| 				<tree string="Brand"> | ||||
| 					<field name="name" string="Name" /> | ||||
| 					<field name="is_website_publish" string="Website Publish" /> | ||||
| 				</tree> | ||||
| 			</field> | ||||
| 		</record> | ||||
| 		 | ||||
| 		<record id="brand_from_view" model="ir.ui.view"> | ||||
| 			<field name="name">brand.from.view</field> | ||||
| 			<field name="model">brand</field> | ||||
| 			<field name="arch" type="xml"> | ||||
| 				<form string="Brand"> | ||||
| 				<sheet> | ||||
| 				<group> | ||||
| 					<field name="name" string="Name" /> | ||||
| 					<field name="brand_image" string="Image" widget="image" class="oe_avatar" options="{'preview_image': 'image_medium', 'size': [150,150]}" /> | ||||
| 					<field name="is_website_publish" string="Website Publish" /> | ||||
| 				</group> | ||||
| 				</sheet> | ||||
| 				</form> | ||||
| 			</field> | ||||
| 		</record> | ||||
| 		 | ||||
| 		 | ||||
| 		<record id="brand_action" model="ir.actions.act_window"> | ||||
| 			<field name="name">Brand</field> | ||||
| 			<field name="type">ir.actions.act_window</field> | ||||
| 			<field name="res_model">brand</field> | ||||
| 			<field name="view_mode">tree,form</field> | ||||
| 			<field name="view_id" eval="False" /> | ||||
| 		</record> | ||||
| 
 | ||||
| 		<menuitem action="brand_action" id="brand_menu" parent="website.menu_website_global_configuration" | ||||
| 			sequence="0" /> | ||||
| 	</data> | ||||
| </odoo> | ||||
|  | @ -0,0 +1,18 @@ | |||
| <?xml version="1.0" encoding="utf-8" ?> | ||||
| <odoo> | ||||
| 	<data> | ||||
| 		<!-- Form View --> | ||||
| 		<record id="productbrand_form_view" model="ir.ui.view"> | ||||
| 			<field name="name">productbrand.form.view</field> | ||||
| 			<field name="model">product.template</field> | ||||
| 			<field name="inherit_id" ref="product.product_template_form_view" /> | ||||
| 			<field name="arch" type="xml"> | ||||
| 				<group name="email_template_and_project" position="before"> | ||||
| 					<group name="brand"> | ||||
| 						<field name="brand_ept_id" title="Brand" domain="[('is_website_publish', '=', True)]"></field> | ||||
| 					</group> | ||||
| 				</group> | ||||
| 			</field> | ||||
| 		</record> | ||||
| 	</data> | ||||
| </odoo> | ||||
|  | @ -0,0 +1,23 @@ | |||
| { | ||||
|     # Theme information | ||||
|     'name' : 'Clarico Business Carousel', | ||||
|     'category' : 'Website', | ||||
|     'version' : '1.0', | ||||
|     'summary': 'Contains Employee,Customer and Portfolio Carousels', | ||||
|     'description': """""", | ||||
| 
 | ||||
|     # Dependencies | ||||
|     'depends': [ | ||||
| 	    'clarico_employee_carousel', | ||||
| 	    'clarico_customer_carousel', | ||||
|     ], | ||||
| 
 | ||||
| 
 | ||||
|     # Author | ||||
|     'author': 'Emipro Technologies Pvt. Ltd.', | ||||
|     'website': 'http://www.emiprotechnologies.com', | ||||
| 
 | ||||
|     # Technical | ||||
|     'installable': True, | ||||
| } | ||||
| 
 | ||||
| After Width: | Height: | Size: 4.6 KiB | 
|  | @ -0,0 +1,25 @@ | |||
| { | ||||
|     # Theme information | ||||
|     'name' : 'Clarico Carousel Editor', | ||||
|     'category' : 'Website', | ||||
|     'version' : '1.0', | ||||
|     'summary': 'Carousel RTE Editor', | ||||
|     'description': """""", | ||||
| 
 | ||||
|     # Dependencies | ||||
|     'depends': [ | ||||
| 					'clarico_snippets', | ||||
|     ], | ||||
| 
 | ||||
|     # Views | ||||
|     'data': [ | ||||
|         'templates/assets.xml', | ||||
|     ], | ||||
| 
 | ||||
|     # Author | ||||
|     'author': 'Emipro Technologies Pvt. Ltd.', | ||||
|     'website': 'http://www.emiprotechnologies.com', | ||||
| 
 | ||||
|     # Technical | ||||
|     'installable': True, | ||||
| } | ||||
| After Width: | Height: | Size: 4.6 KiB | 
|  | @ -0,0 +1,82 @@ | |||
| odoo.define('clarico_carousel.editor', function (require) { | ||||
| "use strict"; | ||||
| var core = require('web.core'); | ||||
| var weContext = require('web_editor.context'); | ||||
| var v11_rte = require('web_editor.rte'); | ||||
| 
 | ||||
| 
 | ||||
| /*----------- Emipro Ept Rte ----------*/ | ||||
| var rteEPT = v11_rte.Class.include({  | ||||
| 		 | ||||
| 	_saveElement: function ($el, context, withLang) { | ||||
|     	var tag = this._getEscapedElement($el).prop('outerHTML'); | ||||
|         var $tag = $(tag); | ||||
|         $tag.find("[data-isemipro='true']").empty(); | ||||
|         tag = $tag[0].outerHTML; | ||||
|         return this._rpc({ | ||||
|             model: 'ir.ui.view', | ||||
|             method: 'save', | ||||
|             args: [ | ||||
|                 $el.data('oe-id'), | ||||
|                 tag, | ||||
|                 $el.data('oe-xpath') || null, | ||||
|                 withLang ? context : _.omit(context, 'lang') | ||||
|             ], | ||||
|         }); | ||||
|     }, | ||||
| 	 | ||||
| 	save : function (context) { | ||||
|     var self = this; | ||||
|     var $dirty = $('.o_dirty'); | ||||
|     $dirty | ||||
|         .removeAttr('contentEditable') | ||||
|         .removeClass('o_dirty oe_carlos_danger o_is_inline_editable'); | ||||
|     	var defs = _.map($dirty, function (el) { | ||||
|         var $el = $(el); | ||||
|         $el.find('[class]').filter(function () { | ||||
|             if (!this.className.match(/\S/)) { | ||||
|                 this.removeAttribute('class'); | ||||
|             } | ||||
|         }); | ||||
| 
 | ||||
|         // TODO: Add a queue with concurrency limit in webclient
 | ||||
|         // https://github.com/medikoo/deferred/blob/master/lib/ext/function/gate.js
 | ||||
|         return self.saving_mutex.exec(function () { | ||||
|             return self._saveElement($el, context || weContext.get()) | ||||
|             .then(function () { | ||||
|                 $el.removeClass('o_dirty'); | ||||
|             }, function (response) { | ||||
|                 // because ckeditor regenerates all the dom, we can't just
 | ||||
|                 // setup the popover here as everything will be destroyed by
 | ||||
|                 // the DOM regeneration. Add markings instead, and returns a
 | ||||
|                 // new rejection with all relevant info
 | ||||
|                 var id = _.uniqueId('carlos_danger_'); | ||||
|                 $el.addClass('o_dirty oe_carlos_danger ' + id); | ||||
|                 var html = (response.data.exception_type === 'except_osv'); | ||||
|                 if (html) { | ||||
|                     var msg = $('<div/>', {text: response.data.message}).html(); | ||||
|                     var data = msg.substring(3, msg.length  -2).split(/', u'/); | ||||
|                     response.data.message = '<b>' + data[0] + '</b>' + data[1]; | ||||
|                 } | ||||
|                 $('.o_editable.' + id) | ||||
|                     .removeClass(id) | ||||
|                     .popover({ | ||||
|                         html: html, | ||||
|                         trigger: 'hover', | ||||
|                         content: response.data.message, | ||||
|                         placement: 'auto top', | ||||
|                     }) | ||||
|                     .popover('show'); | ||||
|             }); | ||||
|         }); | ||||
|     }); | ||||
|     return $.when.apply($, defs).then(function () { | ||||
|         window.onbeforeunload = null; | ||||
|     }, function (failed) { | ||||
|         ret.cancel(); | ||||
|         ret.start(); | ||||
|     }); | ||||
|     | ||||
| } | ||||
| }); | ||||
| }); | ||||
|  | @ -0,0 +1,8 @@ | |||
| <?xml version="1.0" encoding="utf-8"?> | ||||
| <odoo> | ||||
| 	<template id="assets_editor_js" name="carousel snippets RTE assets" inherit_id="website.assets_editor">		 | ||||
| 		<xpath expr="." position="inside"> | ||||
| 		<script type="text/javascript" src="/clarico_carousel/static/src/js/rte_widget.js" ></script> | ||||
| 		</xpath> | ||||
| 	</template> | ||||
| </odoo> | ||||
|  | @ -0,0 +1 @@ | |||
| from . import controllers | ||||
|  | @ -0,0 +1,26 @@ | |||
| { | ||||
|     # Theme information | ||||
|     'name' : 'Clarico Cart', | ||||
|     'category' : 'Website', | ||||
|     'version' : '1.0', | ||||
|     'summary': 'Total Number of Products added to Cart', | ||||
|     'description': """""", | ||||
| 
 | ||||
|     # Dependencies | ||||
|     'depends': [ | ||||
|         'clarico_account','website_sale_delivery','website_sale_options','clarico_shop' | ||||
|     ], | ||||
| 
 | ||||
|     # Views | ||||
|     'data': [ | ||||
|         'templates/template.xml', | ||||
|         'templates/assets.xml', | ||||
|     ], | ||||
| 
 | ||||
|     # Author | ||||
|     'author': 'Emipro Technologies Pvt. Ltd.', | ||||
|     'website': 'http://www.emiprotechnologies.com', | ||||
| 
 | ||||
|     # Technical | ||||
|     'installable': True, | ||||
| } | ||||
|  | @ -0,0 +1 @@ | |||
| from . import main | ||||
|  | @ -0,0 +1,29 @@ | |||
| from odoo import http | ||||
| from odoo.http import request | ||||
| from odoo import SUPERUSER_ID | ||||
| from odoo import models, fields, api | ||||
| 
 | ||||
| 
 | ||||
| class ClearCart(http.Controller): | ||||
| 
 | ||||
|     @http.route(['/shop/clear_cart'], type='json', auth="public", methods=['POST'], website=True) | ||||
|     def clear_cart(self, **kw): | ||||
|         order = request.website.sale_get_order(force_create=1) | ||||
|         order_line = request.env['sale.order.line'].sudo() | ||||
|         line_ids = order_line.search([('order_id','=',order.id)]) | ||||
|         for line in line_ids : | ||||
|             line_obj = order_line.browse([int(line)]) | ||||
|             if line_obj : | ||||
|                 line_obj.unlink() | ||||
|                  | ||||
|     @http.route(['/shop/cart/total_count'], type='json', auth="public", methods=['POST'], website=True, csrf=False) | ||||
|     def cart_total_count(self): | ||||
|          | ||||
|         order=request.website.sale_get_order() | ||||
|         values={ | ||||
|             'cart_qty_total'   : order.cart_quantity, | ||||
|             'cart_total_amount'   : order.amount_total, | ||||
|             'cart_subtotal_amount'   : order.amount_untaxed, | ||||
|             'currency_symbol': order.currency_id.symbol | ||||
|             } | ||||
|         return values  | ||||
| After Width: | Height: | Size: 4.6 KiB | 
| After Width: | Height: | Size: 155 KiB | 
|  | @ -0,0 +1,144 @@ | |||
| odoo.define('clarico_cart.cart', function (require) { | ||||
|     "use strict"; | ||||
| 
 | ||||
|     require('web.dom_ready'); | ||||
|     var core = require('web.core'); | ||||
|     var ajax = require('web.ajax'); | ||||
|     var _t = core._t; | ||||
|      | ||||
|     if ($(window).width() > 1200) { | ||||
|     var shopping_cart_link = $('.cart_style_2, .cart-update-icon'); | ||||
|     var shopping_cart_link_counter; | ||||
|     shopping_cart_link.popover({ | ||||
|         trigger: 'manual', | ||||
|         animation: true, | ||||
|         html: true, | ||||
|         title: function () { | ||||
|             return _t("My Cart"); | ||||
|         }, | ||||
|         container: 'body', | ||||
|         placement: 'auto', | ||||
|         template: '<div class="popover mycart-popover" role="tooltip"><div class="arrow"></div><div class="popover-content"></div></div>' | ||||
|     }).on("mouseenter",function () { | ||||
|         var self = this; | ||||
|         clearTimeout(shopping_cart_link_counter); | ||||
|         shopping_cart_link.not(self).popover('hide'); | ||||
|         shopping_cart_link_counter = setTimeout(function(){ | ||||
|             if($(self).is(':hover') && !$(".mycart-popover:visible").length) | ||||
|             { | ||||
|                 $.get("/shop/cart", {'type': 'popover'}) | ||||
|                     .then(function (data) { | ||||
|                         $(self).data("bs.popover").options.content =  data; | ||||
|                         $(self).popover("show"); | ||||
|                         $(".popover").on("mouseleave", function () { | ||||
|                             $(self).trigger('mouseleave'); | ||||
|                         }); | ||||
| 
 | ||||
|                         //Remove product 
 | ||||
|                         $(".remove-product-popover").click(function(){ | ||||
|                         	var order_id = $(this).attr("data-order"); | ||||
|                         	var product_id = $(this).attr("data-product"); | ||||
|                         	$('.cus_theme_loader_layout').removeClass('hidden'); | ||||
|                         	 | ||||
|                         	ajax.jsonRpc("/shop/cart/update_json", 'call', { | ||||
|                         		'line_id': parseInt(order_id,10), | ||||
|                                 'product_id': parseInt(product_id, 10), | ||||
|                                 'set_qty': 0	 | ||||
|                             }).then(function (data){ | ||||
|                             	$(".row.cart_line[data-id='"+product_id+"']").css("display","none"); | ||||
|                             	$('.cus_theme_loader_layout').addClass('hidden'); | ||||
|                             	               				 | ||||
|                             	//cart total count json
 | ||||
|                             	ajax.jsonRpc("/shop/cart/total_count", 'call', { | ||||
|                             	}).then(function (values){ | ||||
|                             		if (values.cart_qty_total){ | ||||
|                             			var total_amount=values.cart_total_amount; | ||||
|                             			var subtotal_amount = values.cart_subtotal_amount; | ||||
|                             			if($(".cart-update-text").length > 0){ | ||||
|                             				var total_amount = values.cart_total_amount; | ||||
|                             				$(".my_cart_quantity").replaceWith('<span class="my_cart_quantity">'+values.cart_qty_total+'</span>'); | ||||
|                             				$(".cart-header-total").replaceWith('<span class="cart-header-total">'+total_amount.toFixed(2)+' '+ values.currency_symbol +'</span>'); | ||||
|                             				$("#order_total_untaxed span.oe_currency_value").replaceWith('<span class="oe_currency_value">'+subtotal_amount.toFixed(2)+'</span>'); | ||||
|                             				$("#order_total span.oe_currency_value").replaceWith('<span class="oe_currency_value">'+total_amount.toFixed(2)+'</span>'); | ||||
|                             				$(".view-cart-btn").replaceWith('<a class="view-cart-btn btn btn-primary" href="/shop/cart">View Cart ('+ values.cart_qty_total +' items)</a>'); | ||||
|                             			} | ||||
|                             		} | ||||
|                             		else{ | ||||
|                             			$(".my_cart_quantity").replaceWith('<span class="my_cart_quantity label"> 0 </span>'); | ||||
|                             			$(".cart-header-total").replaceWith('<span class="cart-header-total">0.00 '+ values.currency_symbol +'</span>'); | ||||
|                             			$(".popover-content").replaceWith('<div class="popover-content"><div class="well well-lg">Your cart is empty!</div></div>'); | ||||
|                             		} | ||||
|                             	}); | ||||
|                         }) | ||||
|                     }); | ||||
|                 }) | ||||
|             } | ||||
|         }, 100); | ||||
|     }).on("mouseleave", function () { | ||||
|         var self = this; | ||||
|         setTimeout(function () { | ||||
|             if (!$(".popover:hover").length) { | ||||
|                 if(!$(self).is(':hover')) { | ||||
| //                   $(self).popover('hide');
 | ||||
|                 } | ||||
|             } | ||||
|         }, 1000); | ||||
|     }) | ||||
|     } | ||||
| 
 | ||||
| 
 | ||||
| 	/*var total_cartId = $('#cart_total'); | ||||
| 	var cartBox = $('#cart_total').parent('.js_cart_lines'); | ||||
| 	if($("#cart_total").parent('.js_cart_lines').length > 0) | ||||
| 	{ | ||||
| 		var x = cartBox.offset(); | ||||
| 		var navPos = x.top; | ||||
| 		if(total_cartId) | ||||
| 		{ | ||||
| 			$(window).scroll(function() { | ||||
| 				var scrollPosition = $(this).scrollTop(); | ||||
| 				if (scrollPosition >= navPos) { | ||||
| 					cartBox.addClass("header-stick"); | ||||
| 					cartBox.css({"right":"5%","float":"right","z-index":"9999","background":"#fff"}); | ||||
| 				} else { | ||||
| 					cartBox.removeClass("header-stick"); | ||||
| 					$('.navbar-brand img').removeClass("logo-stick"); | ||||
| 					cartBox.css({"margin-top":"10px"}); | ||||
| 				} | ||||
| 			}); | ||||
| 		}else{ | ||||
| 			cartBox.css({"top": "0"}); | ||||
| 		} | ||||
| 	}*/ | ||||
| }); | ||||
| 
 | ||||
| odoo.define('website_sale.clear_cart', function (require) { | ||||
| 	"use strict"; | ||||
| 	 | ||||
| 	require('web.dom_ready'); | ||||
| 	var ajax = require('web.ajax'); | ||||
| 	 | ||||
| 	$(".clear_shopping_cart").click(function (event) { | ||||
| 		event.preventDefault(); | ||||
| 	 	ajax.jsonRpc("/shop/clear_cart", 'call', {}) | ||||
|             .then(function (data) { | ||||
|             	window.location.reload(true); | ||||
|         }); | ||||
| 	}); | ||||
| 	 | ||||
| 	if($('#hiddencount').val() == "0"){ | ||||
| 		$("#cart_total, .cart-total-heading").css("display","none"); | ||||
| 		$("#right_column").css("display","none"); | ||||
| 		$(".wizard-main-ul").css("display","none"); | ||||
| 		$('.cart_margin_class').css("margin-top","0px"); | ||||
| 	} | ||||
| 	$('#cart_total').removeClass('col-sm-4 col-sm-offset-8 col-xs-12'); | ||||
| 	$('button.btn-primary').addClass('common-btn'); | ||||
| 	//$('button.btn-primary > span').css('font-family','oswald-regular');
 | ||||
| 	$('#cart_total').removeClass('col-sm-4 col-sm-offset-8 col-xs-12'); | ||||
| 	 | ||||
| 	if($('div').hasClass('extra-step-option')){ | ||||
| 		$("#step40").find(".step_no").replaceWith('<a class="step_no">4</a>'); | ||||
| 		$("#step50").find(".step_no").replaceWith('<a class="step_no">5</a>'); | ||||
| 	} | ||||
| }); | ||||
|  | @ -0,0 +1,256 @@ | |||
| @media (max-width:1000px){ | ||||
| 	.div-full-width{ | ||||
| 		width:100%; | ||||
| 	} | ||||
| } | ||||
| @media (max-width:1000px){ | ||||
| 	.cart-total-heading{ | ||||
| 		text-align: left; | ||||
| 	} | ||||
| 	#cart_total{ | ||||
| 		 | ||||
| 		& div.row{ | ||||
| 			& span:first-child{ | ||||
| 				text-align: left !important; | ||||
| 			} | ||||
| 		} | ||||
| 	} | ||||
| 	.cart-thead-th-detail | ||||
| 	{ | ||||
| 		    min-width: 300px !important; | ||||
| 	} | ||||
| 	#coupon_box { | ||||
| 	 | ||||
| 		.right(); | ||||
| 		text-align:right; | ||||
| 		 | ||||
| 		form | ||||
| 		{ | ||||
| 			.right(); | ||||
| 		} | ||||
| 	} | ||||
| 	.suggested-product-table{  | ||||
| 		display: block; | ||||
| 		overflow-x: auto; | ||||
| 		padding-top: 10%; | ||||
| 		max-width: unset; | ||||
| 	 | ||||
| 		.td-product_name | ||||
| 		{ | ||||
| 			min-width: 250px; | ||||
| 		} | ||||
| 		td | ||||
| 		{ | ||||
| 			min-width:150px; | ||||
| 		} | ||||
| 	} | ||||
| 	.cart-product-table | ||||
| 	{	 | ||||
| 		display: block; | ||||
| 		overflow-x: auto; | ||||
| 	} | ||||
| 	 | ||||
| 	& .cart-thead-tr , .confirmation-thead-tr{ | ||||
| 		//loat: none !important; | ||||
| 		//display: inline-flex !important; | ||||
| 		 | ||||
| 		& th{ | ||||
| 			min-width: 150px; | ||||
| 		} | ||||
| 	} | ||||
| 	.oe_website_sale .td-qty { | ||||
| 		max-width: unset !important; | ||||
| 		width:auto; | ||||
| 		} | ||||
| 	 | ||||
| 		.cart-product-table td | ||||
| 		{ | ||||
| 			//min-width:150px; | ||||
| 			//padding:25px 5px 25px 5px !important; | ||||
| 		} | ||||
| 		.cart-product-table td:last-child | ||||
| 		{ | ||||
| 			border-right:none ; | ||||
| 		} | ||||
| 		 | ||||
| 		 | ||||
| 	/*& .cart-tbody-tr , .confirmation-tbody-tr{ | ||||
| 		float: none !important; | ||||
| 		display: inline-flex !important; | ||||
| 		 | ||||
| 		& td{ | ||||
| 			border-top-style: none !important; | ||||
| 			border-top-width: 0 !important; | ||||
| 			min-width: 144px !important; | ||||
| 			padding:25px 0 0 0 !important; | ||||
| 		} | ||||
| 		& td:first-child{ | ||||
| 			display:block !important; | ||||
| 		} | ||||
| 		& .thumbnail-img{ | ||||
| 			display:block !important; | ||||
| 			 | ||||
| 			& img{ | ||||
| 				width:100px !important; | ||||
| 			} | ||||
| 		} | ||||
| 	}*/ | ||||
| 	.order-table-main-div , .confirmation-bill-ship-div , .payment-table-main-div , #right_column , .address-row-main-div{ | ||||
| 		width:100%; | ||||
| 		float:none; | ||||
| 	} | ||||
| 	.address-main-div{ | ||||
| 		width:100%; | ||||
| 	} | ||||
| 	.oe_website_sale .td-img { | ||||
|     	display:table-cell !important; | ||||
| 	} | ||||
| 	.shopping-cart-table | ||||
| 	{ | ||||
| 		tr | ||||
| 		{ | ||||
| 			float: none !important; | ||||
| 			display: inline-flex !important; | ||||
| 		} | ||||
| 	} | ||||
| 	.cart-empty-msg | ||||
| 	{ | ||||
| 		.size(22px); | ||||
| 		padding:5%; | ||||
| 	} | ||||
| 	.div_class_whole_recent_view_product | ||||
| 	{ | ||||
| 		overflow:hidden; | ||||
| 	} | ||||
| } | ||||
| @media (max-width:800px){ | ||||
| 
 | ||||
| 	#cart_products , .order-detail-table{ | ||||
| 		display: block; | ||||
| 		overflow-x: auto; | ||||
| 	} | ||||
| 	.cart-thead-th-img,.sugg-thead-th-img | ||||
| 	{ | ||||
| 		min-width:100px !important; | ||||
| 	} | ||||
| 	#modal_optional_products | ||||
| 	{ | ||||
| 			table > thead{ | ||||
| 			display: none; | ||||
| 		} | ||||
| 	} | ||||
| 	#modal_optional_products td.td-price | ||||
| 	{ | ||||
| 		text-align: left; | ||||
| 		padding: 0 10px; | ||||
| 		margin-top: 2%; | ||||
| 		.mb(3%); | ||||
| 	} | ||||
| 	#product_confirmation .td-product_name strong | ||||
| 	{ | ||||
| 		margin-bottom: 2%; | ||||
| 		display: inline-block; | ||||
| 	} | ||||
| 	 | ||||
| 	#products_grid table, #products_grid tbody, #products_grid tr, #products_grid td  | ||||
| 	{ | ||||
| 		float: left; | ||||
| 		width: 100%; | ||||
| 		display: inline-block; | ||||
| 		text-align:left; | ||||
| 	} | ||||
| 	#products_grid table #product_confirmation .td-qty .css_quantity | ||||
| 	{ | ||||
| 		margin:unset; | ||||
| 		.mt(2%); | ||||
| 	} | ||||
| } | ||||
| @media (max-width:600px){ | ||||
| 	#cart_total | ||||
| 	{ | ||||
| 		width: 100%; | ||||
| 		margin: 5% 0; | ||||
| 	} | ||||
| 	.cont_shop_btn | ||||
| 	{ | ||||
| 		.size(12px); | ||||
| 	} | ||||
| 	.cart_suggested_main_section .suggested-product-table .td-product_name .sugg_name strong | ||||
| 	{ | ||||
| 		.size(13px); | ||||
| 	} | ||||
| 	.cart-product-table .cart_product_name a,.cart-product-table .remove-cart-product-icon | ||||
| 	{ | ||||
| 		.size(13px); | ||||
| 	} | ||||
| 	.cart-product-table .td-price span, .cart-product-table #td-price span | ||||
| 	{ | ||||
| 		.size(14px); | ||||
| 	} | ||||
| 	.suggested-product-table | ||||
| 	{ | ||||
| 		.pt(3%); | ||||
| 	} | ||||
| 	.cart_suggested_main_section | ||||
| 	{ | ||||
| 		.mt(5%); | ||||
| 	} | ||||
| 	.cart_suggested_main_section .cart_sugg_name | ||||
| 	{ | ||||
| 		.size(15px); | ||||
| 	} | ||||
| } | ||||
| 
 | ||||
| @media (max-width:500px){ | ||||
| 	.wizard-main-ul{ | ||||
| 		& li.text-primary{ | ||||
| 			&:after{ | ||||
| 				right:-15px; | ||||
| 			} | ||||
| 		} | ||||
| 	} | ||||
| 	.order-detail-table tbody{  | ||||
| 		& td:nth-child(2){ | ||||
| 			border-top-width:1px !important; | ||||
| 		} | ||||
| 	} | ||||
| 	.payment-information-tbody-tr{ | ||||
| 		& td:first-child{ | ||||
| 			display:block !important; | ||||
| 		} | ||||
| 		& td:nth-child(2){ | ||||
| 			border-top-width:1px !important; | ||||
| 		} | ||||
| 	} | ||||
| 	.wizard-main-ul .text-primary{ | ||||
| 		color: @theme-color !important; | ||||
| 		background: none !important; | ||||
| 		 | ||||
| 		&:before{ | ||||
| 			display:none; | ||||
| 		} | ||||
| 		&:after{ | ||||
| 			display:none; | ||||
| 		} | ||||
| 	} | ||||
| 	.cart-empty-msg | ||||
| 	{ | ||||
| 		.size(20px); | ||||
| 		padding:10%; | ||||
| 	} | ||||
| 	.cart-thead-tr th | ||||
| 	{ | ||||
| 		padding: 10px 10px !important; | ||||
| 	} | ||||
| 	.cont_shop_btn | ||||
| 	{ | ||||
| 		padding: 10px 15px; | ||||
| 	} | ||||
| 	#cart_products | ||||
| 	{ | ||||
| 		thead{ | ||||
|    			 display: table-header-group; | ||||
| 		} | ||||
| 	 | ||||
| 	} | ||||
| } | ||||
|  | @ -0,0 +1,10 @@ | |||
| <?xml version="1.0" encoding="utf-8"?> | ||||
| <odoo> | ||||
| 	<template id="cart_assets_frontend" inherit_id="web.assets_frontend"> | ||||
| 		<xpath expr="." position="inside"> | ||||
| 			<link rel="stylesheet" type="text/less" href="/clarico_cart/static/src/less/clarico_cart.less" /> | ||||
| 			<link rel="stylesheet" type="text/less" href="/clarico_cart/static/src/less/cart_responsive.less" /> | ||||
| 			<script type="text/javascript" src="clarico_cart/static/src/js/clarico_cart.js"></script> | ||||
| 		</xpath> | ||||
| 	</template> | ||||
| </odoo> | ||||
|  | @ -0,0 +1,679 @@ | |||
| <?xml version="1.0" encoding="utf-8"?> | ||||
| <odoo> | ||||
| 	  <template id="clarico_cart_header_icon" inherit_id="clarico_layout.clarico_header_main"> | ||||
| 		<xpath expr="//div[hasclass('header_cart_main')]" | ||||
| 			position="inside"  priority="25"> | ||||
| 			<div class="cart_style_2"> | ||||
| 			<t t-set="website_sale_order" t-value="website.sale_get_order()" /> | ||||
| 			<a href="/shop/cart"> | ||||
| 				<i class="fa fa-shopping-bag" aria-hidden="true"></i> | ||||
| 				<sup t-attf-class="my_cart_quantity label label-primary" | ||||
| 					t-esc="website_sale_order and website_sale_order.cart_quantity or ''" /> | ||||
| 				<input type="hidden" id="hiddencount" t-att-value="website_sale_order and website_sale_order.cart_quantity or '0'" /> | ||||
| 			</a> | ||||
| 			</div> | ||||
| 				<div class="cart-update"> | ||||
| 				<span class="cart-update-text"> | ||||
| 				<t t-set="website_sale_order" t-value="website.sale_get_order()" /> | ||||
| 					<span class="my_cart_quantity label" | ||||
| 						t-esc="website_sale_order and website_sale_order.cart_quantity or '0'" > | ||||
| 					</span> | ||||
| 					<t t-if="website_sale_order.cart_quantity > 1" > | ||||
| 						<span>items : </span> | ||||
| 						<span class="cart-header-total" t-field="website_sale_order.amount_total" | ||||
| 						t-options="{'widget': 'monetary','from_currency': website_sale_order.pricelist_id.currency_id,'display_currency': website.currency_id}" /> | ||||
| 					</t> | ||||
| 					<t t-if="website_sale_order.cart_quantity == 1" > | ||||
| 						<span>item :</span> | ||||
| 						<span class="cart-header-total" t-field="website_sale_order.amount_total" | ||||
| 						t-options="{'widget': 'monetary','from_currency': website_sale_order.pricelist_id.currency_id,'display_currency': website.currency_id}" /> | ||||
| 					</t> | ||||
| 					<t t-if="website_sale_order.cart_quantity == 0" > | ||||
| 						<span>item </span> | ||||
| 					</t> | ||||
| 			</span> | ||||
| 			<span id="cart-update-icon" class="cart-update-icon"> | ||||
| 				<t t-set="website_sale_order" t-value="website.sale_get_order()" /> | ||||
| 	            <a href="/shop/cart"> | ||||
| 	                <i class="fa fa-shopping-bag"></i> | ||||
| 	                <input type="hidden" id="hiddencount" t-att-value="website_sale_order and website_sale_order.cart_quantity or '0'" /> | ||||
| 	            </a> | ||||
| 			</span> | ||||
| 			</div> | ||||
| 		</xpath> | ||||
| 	</template> | ||||
| 
 | ||||
| 	<!-- Cart in Account--> | ||||
|     <template id="clarico_account_cart" inherit_id="clarico_account.clarico_account_clarico_layout"> | ||||
|         <xpath expr="//div[@id='cart_id']" position="inside"> | ||||
|             <li> | ||||
|                 <p class="ul_class_admin_name"> | ||||
|                     <i class="fa fa-shopping-cart fa_common_style_header" style="padding-right: 9px;"></i><a href="/shop/cart">My Cart</a> | ||||
|                 </p> | ||||
|             </li> | ||||
|         </xpath> | ||||
|     </template> | ||||
| 
 | ||||
|     <!-- Cart --> | ||||
|     <template id="clarico_cart" inherit_id="website_sale.cart"> | ||||
|         <xpath expr="//div[hasclass('oe_website_sale')]" | ||||
|                position="before"> | ||||
|             <div class="cart-cover-img-div"> | ||||
|                 <section><img class="cart-cover-img" src="/clarico_cart/static/src/img/cart_cover.jpg"></img></section> | ||||
|             </div> | ||||
|         </xpath> | ||||
|         <xpath expr="//div[hasclass('oe_website_sale')]" position="attributes"> | ||||
| 			<attribute name="class">container oe_website_sale clarico_container</attribute> | ||||
| 		</xpath> | ||||
| 		<xpath expr="//div[hasclass('o_website_sale_rightfit')]//h2" position="attributes"> | ||||
| 			<attribute name="class">chs_heading shopping-cart</attribute> | ||||
| 		</xpath> | ||||
| 		<xpath expr="//div[hasclass('col-md-8')]" position="attributes"> | ||||
| 			<attribute name="class">cart-main-div-full oe_cart</attribute> | ||||
| 		</xpath> | ||||
| 		<xpath expr="//a[hasclass('btn-primary')]" position="attributes"> | ||||
| 			<attribute name="class">shop_now_button pull-right mb32 mr8 common-btn</attribute> | ||||
| 		</xpath> | ||||
| 	</template>	 | ||||
| 	 | ||||
| 	<!-- Cart Lines --> | ||||
| 	<template id="clarico_cart_lines" inherit_id="website_sale.cart_lines"> | ||||
| 		 | ||||
| 		 <xpath expr="//table[@id='cart_products']" position="attributes"> | ||||
| 			<attribute name="class">js_cart_lines table table-striped table-condensed cart-product-table</attribute> | ||||
| 		</xpath>  | ||||
| 		 | ||||
| 		<xpath expr="//table[@id='cart_products']/thead" position="replace"> | ||||
| 			 <thead> | ||||
|                 <tr class="cart-thead-tr"> | ||||
|                    <th width="70" class="cart-thead-th-img">Product</th> | ||||
|                     <th width="200" class="cart-thead-th-detail"></th> | ||||
|                     <th class="text-left td-price">Price</th> | ||||
|                     <th class="text-center td-qty">Quantity</th> | ||||
|                  	<th width="100" class="text-right">total</th> | ||||
|                 </tr> | ||||
|             </thead> | ||||
| 		</xpath> | ||||
| 		<xpath expr="//table[@id='cart_products']/tbody" position="replace"> | ||||
| 				<tbody> | ||||
|                 <t t-foreach="website_sale_order.website_order_line" t-as="line"> | ||||
|                     <tr> | ||||
|                         <td colspan="2" t-if="not line.product_id.product_tmpl_id" class='td-img'></td> | ||||
|                         <td align="center" t-if="line.product_id.product_tmpl_id" class='td-img'> | ||||
|                             <span t-field="line.product_id.image_small" t-options="{'widget': 'image', 'class': 'img-rounded'}" /> | ||||
|                         </td> | ||||
|                         <td t-if="line.product_id.product_tmpl_id"> | ||||
| 			                 <div class="cart_product_name"> | ||||
| 			                     <a t-attf-href="/shop/product/#{ slug(line.product_id.product_tmpl_id) }"> | ||||
| 			                         <strong t-esc="line.product_id.with_context(display_default_code=False).name" /> | ||||
| 			                     </a> | ||||
| 			                 </div> | ||||
| 			                 <div class="cart_product_attr_main"> | ||||
| 								<t t-if="len(line.product_id.attribute_value_ids)"> | ||||
| 									<div class="para_attrib_class_name cart_view_para_attrib_class_name"> | ||||
| 										<!-- <div class="attr-bracket">(</div> --> | ||||
| 										<t t-set="total_attribute" t-value="0"></t> | ||||
| 										<t t-foreach="line.product_id.attribute_value_ids" | ||||
| 											t-as="val_vart"> | ||||
| 											<label class="cart_view_para_class_attrib_name_value product-attr-p"> | ||||
| 												<t t-if="total_attribute">,</t> | ||||
| 												<span class="cart_view_span_class_atrib_value_cart product-attr-span"> | ||||
| 													<t t-esc="val_vart.attribute_id.name"></t> | ||||
| 												</span> | ||||
| 												: | ||||
| 												<span class="cart_view_span_class_atrib_value_val_cart product-attr-span"> | ||||
| 													<t t-esc="val_vart.name"></t> | ||||
| 												</span> | ||||
| 												<t t-set="total_attribute" t-value="total_attribute + 1"></t> | ||||
| 											</label> | ||||
| 										</t> | ||||
| 									<!-- 	<div class="attr-bracket">)</div> --> | ||||
| 									</div> | ||||
| 								</t> | ||||
| 							</div> | ||||
| 							<a href='#' class='js_delete_product no-decoration remove-cart-product-icon'>  | ||||
| 								Remove item | ||||
| 							</a> | ||||
|             			</td> | ||||
|                          | ||||
|                         <td class="text-center td-price" name="price"> | ||||
|                             <t t-if="(compute_currency(line.product_id.lst_price) - line.price_reduce ) > 0.01  and website.get_current_pricelist().discount_policy=='without_discount'"> | ||||
|                                 <del t-attf-class="#{'text-danger mr8'}" style="white-space: nowrap;" t-esc="compute_currency(line.product_id.website_public_price)" t-options="{'widget': 'monetary', 'display_currency': website.get_current_pricelist().currency_id, 'from_currency': website.currency_id}" /> | ||||
|                             </t> | ||||
|                             <span t-field="line.price_reduce_taxexcl" style="white-space: nowrap;" t-options="{'widget': 'monetary', 'from_currency': website_sale_order.pricelist_id.currency_id, 'display_currency': website.currency_id}" groups="sale.group_show_price_subtotal" /> | ||||
|                             <span t-field="line.price_reduce_taxinc" style="white-space: nowrap;" t-options="{'widget': 'monetary', 'from_currency': website_sale_order.pricelist_id.currency_id, 'display_currency': website.currency_id}" groups="sale.group_show_price_total" /> | ||||
|                         </td> | ||||
|                         <td class="text-center td-qty"> | ||||
|                             <div class="css_quantity input-group oe_website_spinner"> | ||||
|                                 <a t-attf-href="#" class="mb8 input-group-addon js_add_cart_json hidden-xs"> | ||||
|                                     <i class="fa fa-minus"></i> | ||||
|                                 </a> | ||||
|                                 <input type="text" class="js_quantity form-control quantity" t-att-data-line-id="line.id" t-att-data-product-id="line.product_id.id" t-att-value="int(line.product_uom_qty) == line.product_uom_qty and int(line.product_uom_qty) or line.product_uom_qty" /> | ||||
|                                 <a t-attf-href="#" class="mb8 input-group-addon float_left js_add_cart_json hidden-xs"> | ||||
|                                     <i class="fa fa-plus"></i> | ||||
|                                 </a> | ||||
|                             </div> | ||||
|                         </td> | ||||
|                         <td class="table-content-td text-center" id="td-price" name="totalprice"> | ||||
| 			              	<span t-field="line.price_subtotal" style="white-space: nowrap;" t-options="{'widget': 'monetary', 'from_currency': website_sale_order.pricelist_id.currency_id, 'display_currency': website.currency_id}" /> | ||||
| 			            </td> | ||||
|                     </tr> | ||||
|                 </t> | ||||
|             </tbody>		 | ||||
| 		</xpath> | ||||
| 		 | ||||
| 		<xpath expr="//div[hasclass('js_cart_lines')]" position="attributes"> | ||||
| 			<attribute name="class">js_cart_lines cart-empty-msg</attribute> | ||||
| 		</xpath> | ||||
| 		<!--  <xpath expr="//table[@id='cart_products']" position="after"> | ||||
| 			<section class="common-div coupon_cont_shopping_section"> | ||||
| 				<div class="cont_shopping_main"> | ||||
| 				</div> | ||||
| 				<div class="coupon_code_main">  | ||||
| 				</div> | ||||
| 			</section> | ||||
| 		</xpath>  --> | ||||
| 		<!-- <xpath expr="//div[@class='js_cart_lines well well-lg']" position="attributes"> | ||||
| 			<attribute name="class">js_cart_lines well well-lg cart-empty-msg</attribute> | ||||
| 		</xpath> --> | ||||
| 	</template> | ||||
| 	 | ||||
| 	<!-- Continue Shopping Button--> | ||||
|     <template id="website_sale.continue_shopping" inherit_id="website_sale.cart" customize_show="True" name="Continue Shopping Button"> | ||||
|          <xpath expr="//a[@href='/shop/checkout']" position="before"> | ||||
|             <a href="/shop" class="cont_shop_btn"> | ||||
|                 <!-- <span class="fa fa-long-arrow-left" /> --> | ||||
|                 <span class="hidden-xs">Continue Shopping</span> | ||||
|                 <span class="visible-xs-inline">Continue</span> | ||||
|             </a> | ||||
|         </xpath> | ||||
|     </template> | ||||
|      | ||||
| 	<!-- Reduction Code--> | ||||
| 	 <template id="website_sale.reduction_code" inherit_id="website_sale.total" active="False" customize_show="True" name="Promo Code"> | ||||
|          <xpath expr="//div[@id='cart_total']" position="before"> | ||||
|             <div class='text-muted' t-if="not hide_coupon and website_sale_order and website_sale_order.website_order_line" id="coupon_box"> | ||||
|               <!--   <p> | ||||
|                   Have a promo code? Fill in this field and apply. | ||||
|                 </p> --> | ||||
|                 <t t-call='website_sale.coupon_form'/> | ||||
|             </div> | ||||
|         </xpath> | ||||
|     </template> | ||||
| 	 | ||||
| 	<!-- Checkout --> | ||||
| 	<template id="clarico_checkout" inherit_id="website_sale.checkout"> | ||||
| 		<xpath expr="//div[hasclass('oe_website_sale')]" position="attributes"> | ||||
| 			<attribute name="class">container oe_website_sale clarico_container</attribute> | ||||
| 		</xpath> | ||||
| 		<xpath expr="//div[hasclass('row')]" position="attributes"> | ||||
| 			<attribute name="class">checkout-row-main</attribute> | ||||
| 		</xpath> | ||||
| 		<xpath expr="//div[@class='row']/div[@class='col-md-12']" position="attributes"> | ||||
| 			<attribute name="class">bill-heading</attribute> | ||||
| 		</xpath> | ||||
| 		<xpath expr="//div[@class='row']/div[@class='bill-heading']//h2" position="attributes"> | ||||
| 			<attribute name="class">chs_heading checkout_heading</attribute> | ||||
| 		</xpath> | ||||
| 		<xpath expr="//t[@t-if='not only_services']//div[hasclass('col-md-12')]" position="attributes"> | ||||
| 			<attribute name="class"></attribute> | ||||
| 		</xpath> | ||||
|  		<xpath expr="//div[hasclass('all_shipping')]" position="attributes"> | ||||
| 			<attribute name="class">row-main-div all_shipping</attribute> | ||||
| 		</xpath> | ||||
| 		<xpath expr="//div[hasclass('row')]/div[hasclass('one_kanban')]" position="attributes"> | ||||
| 			<attribute name="class">one_kanban address-main-div </attribute> | ||||
| 		</xpath> | ||||
| 		<xpath expr="//t[@t-if='not only_services']/div/div/h2" position="attributes"> | ||||
| 			<attribute name="class">chs_heading checkout_heading mt16</attribute> | ||||
| 		</xpath> | ||||
| 		<xpath expr="//a[hasclass('a-submit')]" position="attributes"> | ||||
| 			<attribute name="class">a-submit btn btn-default mb16  </attribute> | ||||
| 		</xpath> | ||||
| 		<xpath expr="//a[@href='/shop/cart']" position="attributes"> | ||||
| 			<attribute name="class">btn btn-default mb32 </attribute> | ||||
| 		</xpath> | ||||
| 		<xpath expr="//a[@href='/shop/confirm_order']" position="attributes"> | ||||
| 			<attribute name="class">btn btn-default pull-right mb32 </attribute> | ||||
| 		</xpath> | ||||
| 		<xpath expr="//div[hasclass('col-md-6')]" position="attributes"> | ||||
| 			<attribute name="class">one_kanban address-main-div</attribute> | ||||
| 		</xpath> | ||||
| 			<xpath expr="//div[hasclass('col-sm-12')]" position="attributes"> | ||||
| 			<attribute name="class">one_kanban</attribute> | ||||
| 		</xpath> | ||||
| 		<xpath expr="//div[hasclass('col-md-8')]" position="attributes"> | ||||
| 			<attribute name="class">oe_cart div-full-width</attribute> | ||||
| 		</xpath> | ||||
| 		<xpath expr="//div[hasclass('col-md-12')]" position="attributes"> | ||||
| 			<attribute name="class">one_kanban</attribute> | ||||
| 		</xpath> | ||||
| 	</template> | ||||
| 	 | ||||
| 	<template id="clarico_cart_address_kanban" inherit_id="website_sale.address_kanban"> | ||||
| 		<xpath expr="//a" position="attributes"> | ||||
| 			<attribute name="class">btn-link pull-right fa fa-edit js_edit_address no-decoration</attribute> | ||||
| 		</xpath> | ||||
| 	</template> | ||||
| 	<!-- Payment --> | ||||
| 	<template id="clarico_payment" inherit_id="website_sale.payment"> | ||||
| 		<xpath expr="//div[hasclass('oe_website_sale')]" position="attributes"> | ||||
| 			<attribute name="class">container oe_website_sale clarico_container</attribute> | ||||
| 		</xpath> | ||||
| 		<xpath expr="//div[hasclass('col-md-8')]" position="attributes"> | ||||
| 			<attribute name="class">oe_cart payment-main-div</attribute> | ||||
| 		</xpath> | ||||
| 		<xpath expr="//td[hasclass('td-product_name')]/div[hasclass('text-muted')]" position="replace"> | ||||
| 		 | ||||
| 		</xpath> | ||||
| 		<xpath expr="//div[@id='payment_method']/h3" position="attributes"> | ||||
| 			<attribute name="class">sub-heading</attribute> | ||||
| 		</xpath> | ||||
| 		<xpath expr="//table[hasclass('table-condensed')]/thead/tr/th[1]" position="replace"> | ||||
| 			<th width="100">Image</th> | ||||
| 		</xpath> | ||||
| 		<xpath expr="//table[hasclass('table-condensed')]/thead/tr/th[2]" position="replace"> | ||||
| 			<th width="100">Product</th> | ||||
| 		</xpath> | ||||
| 		<xpath expr="//table[@id='cart_products']" position="attributes"> | ||||
| 			<attribute name="class">payment-page-table table table-striped table-condensed</attribute> | ||||
| 		</xpath> | ||||
| 		<xpath expr="//table[@id='cart_products']/thead/tr" position="attributes"> | ||||
| 			<attribute name="class">cart-thead-tr</attribute> | ||||
| 		</xpath> | ||||
| 		<xpath expr="//table[@id='cart_products']/tbody/tr" position="attributes"> | ||||
| 			<attribute name="class">cart-tbody-tr</attribute> | ||||
| 		</xpath> | ||||
| 		<xpath expr="//div[hasclass('o_website_sale_rightfit')]//h2" position="attributes"> | ||||
| 			<attribute name="class">chs_heading</attribute> | ||||
| 		</xpath> | ||||
| 		<xpath expr="//div[hasclass('row')]" position="attributes"> | ||||
| 			<attribute name="class">row-main-div</attribute> | ||||
| 		</xpath> | ||||
| 	</template> | ||||
| 	 | ||||
| 	<!-- Payment Delivery --> | ||||
|  	<template id="clarico_cart_payment_delivery" inherit_id="website_sale_delivery.payment_delivery"> | ||||
| 		<xpath expr="//div[@t-if='deliveries']/h3" position="attributes"> | ||||
| 			<attribute name="class">sub-heading</attribute> | ||||
| 		</xpath> | ||||
| 	</template>  | ||||
| 	 | ||||
| 	<!-- BillTo ShipTo --> | ||||
| 	<template id="clarico_bill_to" inherit_id="website_sale.bill_to"> | ||||
| 		<xpath expr="//div[hasclass('panel-heading')]" position="attributes"> | ||||
| 			<attribute name="class">bill-ship-heading panel-heading</attribute> | ||||
| 		</xpath> | ||||
| 		<xpath expr="//t[@t-if='not order.only_services']/div/div[hasclass('panel-heading')]" position="attributes"> | ||||
| 			<attribute name="class">bill-ship-heading panel-heading</attribute> | ||||
| 		</xpath> | ||||
| 		<xpath expr="//div[hasclass('panel-info')]" position="attributes"> | ||||
| 			<attribute name="class">panel panel-info bill-panel</attribute> | ||||
| 		</xpath> | ||||
| 		<xpath expr="//t[@t-if='not order.only_services']/div[hasclass('panel-info')]" position="attributes"> | ||||
| 			<attribute name="class">panel panel-info break-word ship-panel</attribute> | ||||
| 		</xpath> | ||||
| 	</template> | ||||
| 	 | ||||
| 
 | ||||
|     <template id="clarico_cart_extra_info" inherit_id="website_sale.extra_info_option"> | ||||
|         <xpath expr="//li[@id='step30']" position="replace"> | ||||
|             <li t-att-class="(step==30 and 'text-primary') or 'text-muted'" id="step30"> | ||||
|                 <div class="stepwizard-step extra-step-option"> | ||||
|                     <t t-if="step>30 and step<50"> | ||||
|                         <a href="/shop/extra_info" class="text-success">3</a> | ||||
|                         <p>Extra Info</p> | ||||
|                         <span class="chevron"></span> | ||||
|                     </t> | ||||
|                     <t t-if="not (step>30 and step<50)"> | ||||
|                         <a href="/shop/extra_info" class="text-success">3</a> | ||||
|                         <p>Extra Info</p> | ||||
|                         <span class="chevron"></span> | ||||
|                     </t> | ||||
|                 </div> | ||||
|             </li> | ||||
|         </xpath> | ||||
|     </template> | ||||
| 
 | ||||
| 
 | ||||
|     <!-- Confirmation --> | ||||
|     <template id="clarico_cart_confirmation"  inherit_id="website_sale.confirmation"> | ||||
|         <xpath expr="//div[@class='container oe_website_sale']" position="attributes"> | ||||
| 			<attribute name="class">container oe_website_sale totus_container</attribute> | ||||
| 		</xpath> | ||||
| 		<xpath expr="//div[@class='container oe_website_sale totus_container']//h1" position="attributes"> | ||||
| 			<attribute name="class">chs_heading mb16</attribute> | ||||
| 		</xpath> | ||||
| 		<xpath expr="//div[@class='thanks_msg']/h2" position="attributes"> | ||||
| 			<attribute name="class">sub-heading</attribute> | ||||
| 		</xpath> | ||||
| 		<xpath expr="//div[@class='oe_cart']/h3[@class='mt32 text-left']" position="replace"> | ||||
| 			<h3 class="sub-heading mt32 text-left">Order Details:</h3> | ||||
| 		</xpath> | ||||
| 		<xpath expr="//table[@class='table table-striped table-condensed']" position="attributes"> | ||||
| 			<attribute name="class">order-detail-table table</attribute> | ||||
| 		</xpath> | ||||
| 		<xpath expr="//div[@class='oe_cart']//table[@class='order-detail-table table']//thead/tr" position="attributes"> | ||||
| 			<attribute name="class">confirmation-thead-tr</attribute> | ||||
| 		</xpath> | ||||
| 		<xpath expr="//div[@class='oe_cart']//table[@class='order-detail-table table']//tbody/tr" position="attributes"> | ||||
| 			<attribute name="class">confirmation-tbody-tr</attribute> | ||||
| 		</xpath> | ||||
| 		<xpath expr="//h3[@class='text-left']" position="replace"> | ||||
| 			<h3 class="sub-heading text-left">Payment information:</h3> | ||||
| 		</xpath> | ||||
| 		<xpath expr="//table[@class='table']" position="attributes"> | ||||
| 			<attribute name="class">table confirmation_table_total</attribute> | ||||
| 		</xpath>	 | ||||
| 		<xpath expr="//td[hasclass('td-product_name')]/div[hasclass('text-muted')]" position="replace"> | ||||
| 		 | ||||
| 		</xpath> | ||||
| 		<xpath expr="//table[@class='table']/tbody/tr" position="attributes"> | ||||
| 			<attribute name="class">payment-information-tbody-tr table</attribute> | ||||
| 		</xpath> | ||||
| 		<xpath expr="//div[hasclass('row')]" position="attributes"> | ||||
| 			<attribute name="class">row-main-div</attribute> | ||||
| 		</xpath> | ||||
| 		<xpath expr="//table[hasclass('table')]" position="attributes"> | ||||
| 			<attribute name="class">subtotal-table order-detail-table table</attribute> | ||||
| 		</xpath> | ||||
| 	</template> | ||||
| 	 | ||||
| 	<template id="clarico_cart_payment_confirmation_status"  inherit_id="website_sale.payment_confirmation_status"> | ||||
| 		<xpath expr="//div[hasclass('panel-heading')]" position="attributes"> | ||||
| 			<attribute name="class">panel-heading payment-confirmation-status-div</attribute> | ||||
| 		</xpath> | ||||
| 		<xpath expr="//div[hasclass('oe_website_sale_tx_status')]//div" position="attributes"> | ||||
| 			<attribute name="class">panel custom-panel-info</attribute> | ||||
| 		</xpath> | ||||
| 	</template> | ||||
| 	 | ||||
| 	<!-- Wizard Checkout --> | ||||
|     <template id="clarico_wizard_checkout"  inherit_id="website_sale.wizard_checkout"> | ||||
|         <xpath expr="//ul[hasclass('wizard')]" position="attributes"> | ||||
|             <attribute name="class">wizard pull-right hidden-xs wizard-main-ul</attribute> | ||||
|         </xpath> | ||||
|         <xpath expr="//li[@id='step10']" position="replace"> | ||||
|             <li t-att-class="step==10 and 'text-primary' or 'text-muted'" id="step10"> | ||||
|                 <t t-set="step_review_order" t-value="step>10 and step<50"/> | ||||
|                 <div class="stepwizard-step"> | ||||
|                     <a t-att-href="step_review_order and '/shop/cart' or '#'" t-att-class="step_review_order and 'text-success' or 'o_link_disable'">1</a> | ||||
|                     <p>Review Order</p> | ||||
|                 </div> | ||||
|             </li> | ||||
|         </xpath> | ||||
|         <xpath expr="//li[@id='step20']" position="replace"> | ||||
|             <li t-att-class="(step==20 and 'text-primary') or 'text-muted'" id="step20"> | ||||
|                 <!-- why website_sale_order is not set here ? --> | ||||
|                 <t t-set="step_billing" t-value="step>20 and step<50"/> | ||||
|                 <div class="stepwizard-step"> | ||||
|                     <a t-att-href="step_billing and '/shop/checkout' or '#'" t-att-class="step_billing and 'text-success' or ('o_link_disable' + ('' if step == 20 else ' text-muted'))">2</a> | ||||
|                     <p><t t-set="website_sale_order" t-value="website.sale_get_order()" /> | ||||
|                         <span>Billing</span> | ||||
|                         <t t-if="not website_sale_order or not website_sale_order.website_order_line or not website_sale_order.only_services"><span> & Shipping</span></t> | ||||
|                         <span class="chevron"/> | ||||
|                     </p> | ||||
|                 </div> | ||||
|             </li> | ||||
|         </xpath> | ||||
|         <xpath expr="//li[@id='step40']" position="replace"> | ||||
|             <li t-att-class="(step==40 and 'text-primary') or 'text-muted'" id="step40"> | ||||
|                 <div class="stepwizard-step"> | ||||
|                     <a class="step_no">3</a> | ||||
|                     <p>Payment</p> | ||||
|                     <span class="chevron"></span> | ||||
|                 </div> | ||||
|             </li> | ||||
|         </xpath> | ||||
|         <xpath expr="//li[@id='step50']" position="replace"> | ||||
|             <li t-att-class="(step==50 and 'text-primary') or 'text-muted'" id="step50"> | ||||
|                 <div class="stepwizard-step"> | ||||
|                     <a class="step_no">4</a> | ||||
|                     <p>Confirmation</p> | ||||
|                     <span class="chevron"></span> | ||||
|                 </div> | ||||
|             </li> | ||||
|         </xpath> | ||||
|     </template> | ||||
| 
 | ||||
| 
 | ||||
| 	<!-- Reduction Code Coupon Form --> | ||||
| 	<template id="clarico_cart_coupon_form"  inherit_id="website_sale.coupon_form"> | ||||
| 		<xpath expr="//input[hasclass('form-control')]" position="attributes"> | ||||
| 			<attribute name="class">coupon-code-textbox form-control</attribute> | ||||
| 		</xpath> | ||||
| 		<xpath expr="//form[@name='coupon_code']" position="attributes"> | ||||
| 			<attribute name="class"></attribute> | ||||
| 		</xpath> | ||||
| 		<xpath expr="//input[hasclass('form-control')]" position="attributes"> | ||||
| 			<attribute name="placeholder">Coupon code</attribute> | ||||
| 		</xpath> | ||||
| 		<xpath expr="//a[hasclass('a-submit')]" position="replace"> | ||||
| 			 <a class="btn a-submit coupon_code_submit"><span class="fa fa-long-arrow-right" /></a> | ||||
| 		</xpath> | ||||
| 	</template> | ||||
| 	 | ||||
| 	<!-- Clear Cart --> | ||||
| 	<template id="clarico_clear_cart" name="Clear Cart" inherit_id="website_sale.cart">  | ||||
| 		<xpath expr="//h2" position="after">  | ||||
| 			<a class="clear_shopping_cart" t-if="website_sale_order and website_sale_order.website_order_line">( Clear cart )</a>  | ||||
| 		</xpath>  | ||||
| 	</template>	 | ||||
| 	 | ||||
| 	<!-- Cart Total--> | ||||
| 	 <template id="clarico_total" name="Clear Cart Total" inherit_id="website_sale.total">  | ||||
| 		<xpath expr="//div[@id='order_total_untaxed']/span[1]" position="attributes"> | ||||
| 			<attribute name="class">col-xs-6 text-left subtotal_span_left text-muted</attribute> | ||||
| 		</xpath> | ||||
| 		<xpath expr="//div[@id='order_total_untaxed']/span[2]" position="attributes"> | ||||
| 			<attribute name="class">col-xs-6 text-right subtotal_span_right text-muted</attribute> | ||||
| 		</xpath> | ||||
| 		 <xpath expr="//div[@id='order_total_taxes']/span[1]" position="attributes"> | ||||
| 			<attribute name="class">col-xs-6 text-left text-muted</attribute> | ||||
| 		</xpath> | ||||
| 		 <xpath expr="//div[@id='order_total_taxes']/span[2]" position="attributes"> | ||||
| 			<attribute name="class">col-xs-6 text-right text-muted</attribute> | ||||
| 		</xpath> | ||||
| 		<xpath expr="//div[@id='order_total']/span[2]" position="attributes"> | ||||
| 			<attribute name="class">col-xs-6 text-right final-total</attribute> | ||||
| 		</xpath> | ||||
| 		<xpath expr="//div[@id='order_total']/span[1]" position="attributes"> | ||||
| 			<attribute name="class">col-xs-6 text-left final-total</attribute> | ||||
| 		</xpath> | ||||
| 		<xpath expr="//hr" position="replace"> | ||||
| 		</xpath> | ||||
| 	</template> | ||||
| 	 | ||||
| 	 | ||||
| 	<!-- Address --> | ||||
| 	<template id="clarico_address" inherit_id="website_sale.address">  | ||||
| 		<xpath expr="//div[hasclass('oe_website_sale')]" position="attributes"> | ||||
|             <attribute name="class">container oe_website_sale clarico_container</attribute> | ||||
|         </xpath> | ||||
| 		<xpath expr="//div[hasclass('col-md-offset-2')]" position="attributes"> | ||||
| 			<attribute name="class">oe_cart address-row-main-div</attribute> | ||||
| 		</xpath> | ||||
| 		<xpath expr="//div[hasclass('row')]/t/h2[hasclass('page-header')]" position="attributes"> | ||||
| 			<attribute name="class">page-header mt8 ml16 sub-heading</attribute> | ||||
| 		</xpath> | ||||
| 		<xpath expr="//div[hasclass('row')]/t[2]/h2" position="replace"> | ||||
| 			   <h2 class="page-header mt8 ml16 sub-heading">Your Address</h2> | ||||
| 		</xpath> | ||||
| 		<xpath expr="//div[hasclass('row')]/t[3]/h2" position="replace"> | ||||
| 			   <h2 class="page-header mt8 ml16 sub-heading">Shipping Address</h2> | ||||
| 		</xpath> | ||||
| 	</template> | ||||
| 	 | ||||
| 	 | ||||
| 	<!-- Suggested Products List --> | ||||
| 	<!-- <template id="clarico_suggested_products_list" inherit_id="website_sale.suggested_products_list">  | ||||
| 		<xpath expr="//table[hasclass('js_cart_lines')]" position="attributes"> | ||||
| 			<attribute name="class">js_cart_lines table table-striped table-condensed cart-product-table</attribute> | ||||
| 		</xpath> | ||||
| 		<xpath expr="//table[@t-if='suggested_products']" position="attributes"> | ||||
| 			<attribute name="class">js_cart_lines table table-striped table-condensed suggested-product-table</attribute> | ||||
| 		</xpath> | ||||
| 		<xpath expr="//h5" position="attributes"> | ||||
| 			<attribute name="class">js_cart_lines chs_heading suggested_accessories</attribute> | ||||
| 		</xpath> | ||||
| 		<xpath expr="//div[@t-field='product.description_sale']" position="replace"></xpath> | ||||
| 		<xpath expr="//a[hasclass('js_add_suggested_products')]" position="attributes"> | ||||
| 			<attribute name="class">btn btn-link js_add_suggested_products </attribute> | ||||
| 		</xpath> | ||||
| 	</template> --> | ||||
| 	 <template id="website_sale.suggested_products_list" inherit_id="website_sale.cart_lines" customize_show="True" name="Alternative Products in my cart"> | ||||
|          <xpath expr="//table[@id='cart_products']" position="after"> | ||||
|             <section class="common-div cart_suggested_main_section" t-if="suggested_products"> | ||||
|             <h5 class='text-muted js_cart_lines cart_sugg_name'>Suggested Accessories:</h5> | ||||
|             <table t-if="suggested_products" class="js_cart_lines table table-striped table-condensed suggested-product-table"> | ||||
|                 <thead> | ||||
| 	                <tr class="cart-thead-tr"> | ||||
| 	                   <th class="sugg-thead-th-img">Product</th> | ||||
| 	                    <th></th> | ||||
| 	                    <th width="150" class="td-price">Price</th> | ||||
| 	                </tr> | ||||
| 	            </thead> | ||||
|                 | ||||
|                 <tbody> | ||||
|                     <tr t-foreach="suggested_products" t-as="product"> | ||||
|                         <td class='td-img'> | ||||
|                             <a t-attf-href="/shop/product/#{ slug(product.product_tmpl_id) }"> | ||||
|                                 <span t-field="product.image_small" t-options="{'widget': 'image', 'class': 'img-rounded'}" /> | ||||
|                             </a> | ||||
|                         </td> | ||||
|                         <td class='td-product_name'> | ||||
|                             <div class="sugg_name"> | ||||
|                                 <a t-attf-href="/shop/product/#{ slug(product.product_tmpl_id) }"> | ||||
|                                     <strong t-field="product.name" /> | ||||
|                                 </a> | ||||
|                             </div> | ||||
|                           <!--   <div class="text-muted hidden-xs" t-field="product.description_sale" /> --> | ||||
|                         </td> | ||||
|                         <td class='td-price'> | ||||
|                             <t t-if="product.website_price_difference  and website.get_current_pricelist().discount_policy=='without_discount'"> | ||||
|                                 <del class="text-danger mr8" style="white-space: nowrap;" t-field="product.lst_price" t-options="{'widget': 'monetary','from_currency': product.currency_id, 'display_currency': website.currency_id}" /> | ||||
|                             </t> | ||||
|                             <span t-field="product.website_price" style="white-space: nowrap;" t-options="{'widget': 'monetary','display_currency': website.currency_id}" /> | ||||
|                         </td> | ||||
|                         <td class="col-md-2 col-sm-3 col-xs-4 text-center"> | ||||
|                             <input class="js_quantity" name="product_id" t-att-data-product-id="product.id" type="hidden" /> | ||||
|                             <a class="sugg_add2cart_link js_add_suggested_products"> | ||||
|                                 <strong>Add to Cart</strong> | ||||
|                             </a> | ||||
|                         </td> | ||||
|                     </tr> | ||||
|                 </tbody> | ||||
|             </table> | ||||
|             </section> | ||||
|         </xpath> | ||||
|     </template> | ||||
| 	 | ||||
| 	<!-- cart_popover --> | ||||
| 	<template id="clarico_cart_popover" inherit_id="website_sale.cart_popover">  | ||||
| 	 | ||||
| 		<xpath expr="//div[hasclass('cart_line')]" position="attributes"> | ||||
| 			<attribute name="class">row cart_line</attribute> | ||||
| 			<attribute name="t-att-data-id">'%s' % line.product_id.id</attribute> | ||||
| 		</xpath> | ||||
| 		<xpath expr="//div[hasclass('cart_line')]//div[hasclass('col-xs-3')]" position="attributes"> | ||||
| 			<attribute name="class">popover-img-div</attribute> | ||||
| 		</xpath> | ||||
| 		<xpath expr="//div[hasclass('cart_line')]//div//span" position="attributes"> | ||||
| 			<attribute name="class">popover-img</attribute> | ||||
| 		</xpath> | ||||
| 		<xpath expr="//div[hasclass('cart_line')]//small" position="replace"> | ||||
| 			  <small><t t-esc="int(line.product_uom_qty) == line.product_uom_qty and int(line.product_uom_qty) or line.product_uom_qty" /></small> | ||||
| 		</xpath> | ||||
| 		 | ||||
| 		<xpath expr="//div[hasclass('cart_line')]//small" position="after"> | ||||
| 			<p class="cart_price mt4"> | ||||
| 			x | ||||
| 			<t t-if="(compute_currency(line.product_id.lst_price) - line.price_reduce ) > 0.01  and website.get_current_pricelist().discount_policy=='without_discount'"> | ||||
| 				<del t-attf-class="#{'strick-price'}" style="white-space: nowrap;" t-esc="compute_currency(line.product_id.website_public_price)" t-options="{'widget': 'monetary', 'display_currency': website.get_current_pricelist().currency_id, 'from_currency': website.currency_id}" /> | ||||
| 			</t> | ||||
| 			<span class="cart_p_original_price" t-field="line.price_reduce_taxexcl" style="white-space: nowrap;" t-options="{'widget': 'monetary', 'from_currency': website_sale_order.pricelist_id.currency_id, 'display_currency': website.currency_id}" groups="sale.group_show_price_subtotal" /> | ||||
| 			<span t-field="line.price_reduce_taxinc" style="white-space: nowrap;" t-options="{'widget': 'monetary', 'from_currency': website_sale_order.pricelist_id.currency_id, 'display_currency': website.currency_id}" groups="sale.group_show_price_total" /> | ||||
| 			</p>	 | ||||
| 		</xpath> | ||||
| 		<xpath expr="//div[hasclass('cart_line')]//div[hasclass('col-xs-9')]" position="attributes"> | ||||
| 			<attribute name="class">col-xs-8</attribute> | ||||
| 		</xpath> | ||||
| 		<xpath expr="//div[hasclass('cart_line')]//div[hasclass('col-xs-8')]" position="after"> | ||||
| 			<a class="cp_goto_product" t-attf-href="/shop/product/#{ slug(line.product_id.product_tmpl_id) }"><i class="fa fa-long-arrow-right"></i></a> | ||||
| 		</xpath> | ||||
| 		<xpath expr="//div[hasclass('cart_line')]//div[hasclass('col-xs-8')]//a" position="replace"> | ||||
| 			<a class="popover-name-a" t-attf-href="/shop/product/#{ slug(line.product_id.product_tmpl_id) }"> | ||||
|                             <span t-esc="line.product_id.with_context(display_default_code=False).name" class="h6" /> | ||||
|                         </a> | ||||
| 		</xpath> | ||||
| 		<xpath expr="//a[@href='/shop/cart']" position="replace"> | ||||
| 		 | ||||
| 		</xpath> | ||||
| 		<xpath expr="//t[@t-call='website_sale.total']" position="replace"> | ||||
| 			<section class="cart_popver_total"> | ||||
| 				<div class="cp_total_left"> | ||||
| 					<span class="cp_total_text">Total: <span t-field="website_sale_order.amount_total" t-options="{'widget': 'monetary','from_currency': website_sale_order.pricelist_id.currency_id,'display_currency': website.currency_id}"></span></span> | ||||
| 				</div> | ||||
| 				<div class="cart_redirect_right"> | ||||
| 					<a href="/shop/cart" class="shop_now_button">Go to cart</a> | ||||
| 				</div> | ||||
| 			</section> | ||||
| 		</xpath> | ||||
| 	</template> | ||||
| 	 | ||||
| 	<!-- Recently Viewed for cart --> | ||||
| 	<template id="clarico_cart_recently_viewed" inherit_id="website_sale.cart"> | ||||
| 		<xpath expr="//div[hasclass('row')][2]" position="after"> | ||||
| 			<div id="recently_viewed_for_cart"></div> | ||||
| 		</xpath> | ||||
| 	</template> | ||||
| 	 | ||||
| 	<!-- cart icon in shop -->	 | ||||
| 	<template id="clarico_shop_cart" inherit_id="clarico_shop.clarico_shop_products_item"  active="true" customize_show="True" name="Add to Cart" priority="28"> | ||||
|     	 <xpath expr="//div[@id='quick_view_shop']" position="after"> | ||||
|             <hr class="product-hover-hr"></hr> | ||||
|             <div id="addtocart_shop" class="c_icon_common"> | ||||
|             <input name="product_id" t-att-value="product.product_variant_id.id" type="hidden" /> | ||||
|             | ||||
|             <t t-if="len(product.product_variant_ids) == 1"> | ||||
|                 <a class="btn-xs a-submit"> | ||||
|                     <i class="fa fa-shopping-cart" /> | ||||
|                 </a> | ||||
|             </t> | ||||
|             <t t-if="len(product.product_variant_ids) > 1"> | ||||
|                 <a class="btn-xs a-submit"> | ||||
|                     <i class="fa fa-shopping-cart" /> | ||||
|                 </a> | ||||
|             </t> | ||||
|             </div> | ||||
|         </xpath> | ||||
|     </template> | ||||
| 
 | ||||
| 	<!-- cart quick view --> | ||||
| 	<template id="clarico_cart_modal" inherit_id="website_sale_options.modal"> | ||||
| 		<xpath expr="//h4" position="attributes"> | ||||
| 			<attribute name="class">modal-title ps_product_name</attribute> | ||||
| 		</xpath> | ||||
| 		<xpath expr="//tr[@t-if='product.optional_product_ids']/td/h4" position="attributes"> | ||||
| 			<attribute name="class">select_heding</attribute> | ||||
| 		</xpath> | ||||
| 		<xpath expr="//th[hasclass('td-img')]" position="attributes"> | ||||
| 			<attribute name="class">td-img modal_th_style</attribute>		 | ||||
| 		</xpath> | ||||
| 		<xpath expr="//th[hasclass('td-qty')]" position="attributes"> | ||||
| 			<attribute name="class">text-center td-qty modal_th_style</attribute>		 | ||||
| 		</xpath> | ||||
| 		<xpath expr="//th[hasclass('td-price')]" position="attributes"> | ||||
| 			<attribute name="class">text-center td-price modal_th_style</attribute>		 | ||||
| 		</xpath> | ||||
| 		<xpath expr="//tr[3]/td[hasclass('td-price')]" position="attributes"> | ||||
| 			<attribute name="class">td-price text-center</attribute> | ||||
| 		</xpath> | ||||
| 		<xpath expr="//tr[3]/td[hasclass('td-product_name')]/div/div" position="attributes"> | ||||
| 			<attribute name="class">text-muted small cart_p_desc</attribute> | ||||
| 		</xpath> | ||||
| 		<xpath expr="//div[hasclass('mt8')]" position="attributes"> | ||||
| 			<attribute name="class">mt16</attribute> | ||||
| 		</xpath> | ||||
| 	</template> | ||||
| </odoo> | ||||
|  | @ -0,0 +1 @@ | |||
| from . import controllers | ||||
|  | @ -0,0 +1,26 @@ | |||
| { | ||||
|     # Theme information | ||||
|     'name' : 'Clarico Category', | ||||
|     'category' : 'Website', | ||||
|     'version' : '1.0', | ||||
|     'summary': 'Website Category Carousel', | ||||
|     'description': """""", | ||||
| 
 | ||||
|     # Dependencies | ||||
|     'depends': [ | ||||
|         'clarico_carousel' | ||||
|     ], | ||||
| 
 | ||||
|     # Views | ||||
|     'data': [ | ||||
|         'template/assets.xml', | ||||
|         'template/template.xml', | ||||
|     ], | ||||
| 
 | ||||
|     # Author | ||||
|     'author': 'Emipro Technologies Pvt. Ltd.', | ||||
|     'website': 'http://www.emiprotechnologies.com', | ||||
| 
 | ||||
|     # Technical | ||||
|     'installable': True, | ||||
| } | ||||
|  | @ -0,0 +1 @@ | |||
| from . import main | ||||
|  | @ -0,0 +1,28 @@ | |||
| from odoo import http | ||||
| from odoo.http import request | ||||
| 
 | ||||
| class claricoCategory(http.Controller): | ||||
|       | ||||
|     @http.route(['/showcase_data'],type='json', auth='public', website=True , csrf=False, cache=30) | ||||
|     def category_data(self,template,limit=10): | ||||
|         data=request.env['product.public.category'].search([['parent_id','=',False]],limit=limit) | ||||
|         values = {'object':data} | ||||
|         return request.env.ref(template).render(values) | ||||
| 
 | ||||
|      | ||||
|      | ||||
|      | ||||
|         | ||||
| 
 | ||||
|      | ||||
|       | ||||
|      | ||||
|      | ||||
|      | ||||
|      | ||||
|      | ||||
|      | ||||
|      | ||||
|      | ||||
|      | ||||
|      | ||||
| After Width: | Height: | Size: 4.6 KiB | 
| After Width: | Height: | Size: 1.6 KiB | 
|  | @ -0,0 +1,26 @@ | |||
| odoo.define('clarico_category.snippets.editor', function (require) { | ||||
| 'use strict'; | ||||
| 
 | ||||
| var animation = require('website.content.snippets.animation'); | ||||
| var options = require('web_editor.snippets.options'); | ||||
| var snippet_editor = require('web_editor.snippet.editor'); | ||||
| var website = require('website.website'); | ||||
| 
 | ||||
| snippet_editor.Class.include({ | ||||
|     _get_snippet_url: function () { | ||||
|         return '/website/snippets'; | ||||
|     } | ||||
| }); | ||||
| 
 | ||||
|  options.registry.js_get_category = options.Class.extend({ | ||||
| 	drop_and_build_snippet: function(){ | ||||
| 	      var self = this; | ||||
| 	      if (!self.$target.data('snippet-view')) {  	   | ||||
| 	        this.$target.data("snippet-view", new website.snippet.animationRegistry.js_get_category(this.$target)); | ||||
| 	      } | ||||
| 	    }, | ||||
| 	    clean_for_save:function(){ | ||||
| 		      this.$target.empty(); | ||||
| 	    }	 | ||||
| }); | ||||
| }); | ||||
|  | @ -0,0 +1,50 @@ | |||
| odoo.define('clarico_category.snippets.animation', function (require) { | ||||
| 'use strict'; | ||||
| var ajax = require('web.ajax'); | ||||
| var base = require('web_editor.base'); | ||||
| var animation = require('website.content.snippets.animation'); | ||||
| var no_of_product; | ||||
| 
 | ||||
| animation.registry.js_get_category = animation.Class.extend({ | ||||
|     selector : ".js_get_category", | ||||
| 
 | ||||
|     start: function(){ | ||||
|       this.redrow(); | ||||
|     }, | ||||
|     stop: function(){ | ||||
|       this.clean(); | ||||
|     }, | ||||
| 
 | ||||
|     redrow: function(debug){ | ||||
|       this.clean(debug); | ||||
|       this.build(debug); | ||||
|     }, | ||||
| 
 | ||||
|     clean:function(debug){ | ||||
|       this.$target.empty(); | ||||
|     }, | ||||
|      | ||||
|     build: function(debug) | ||||
|     { | ||||
|       var self = this, | ||||
|       limit    = self.$target.data("objects_limit"), | ||||
|       template = self.$target.data("template"); | ||||
|       if(!template) template="category_image_showcase_snippent.clarico_category_category_showcase"; | ||||
|       if(!limit)limit = 10; | ||||
| 	  var rpc_end_point = '/showcase_data'; | ||||
|       ajax.jsonRpc(rpc_end_point, 'call', { | ||||
|         'template': template, | ||||
|         'limit': limit, | ||||
|       }).then(function(data)  | ||||
|     	{ | ||||
|     	  $(data).appendTo(self.$target); | ||||
|       }).then(function() | ||||
|     		  { | ||||
|     	   | ||||
|       }).fail(function(e) { | ||||
|         return; | ||||
|       }); | ||||
|     },	 | ||||
| }); | ||||
| 
 | ||||
| }); | ||||
|  | @ -0,0 +1,81 @@ | |||
| .ss_container{ | ||||
| 	.block; | ||||
| 	.center(); | ||||
| } | ||||
| .ss_inline | ||||
| { | ||||
| 	display:inline-block; | ||||
| 	text-align:center; | ||||
| 	width:85%; | ||||
| } | ||||
| .cat_showcase_heading | ||||
| { | ||||
| .common-div; | ||||
| .center(); | ||||
| 	 | ||||
| 	.cat_title | ||||
| 	{ | ||||
| 		.size(30px); | ||||
| 		color: #222; | ||||
| 		.uppercase();	 | ||||
| 		line-height: 169%; | ||||
| 		.oswald-light(); | ||||
| 		letter-spacing: 2px; | ||||
| 		word-spacing: 1px | ||||
| 	} | ||||
| } | ||||
| .cat_name | ||||
| {	 | ||||
| 	.center(); | ||||
| 	.pt(20%); | ||||
| 	.pb(20%); | ||||
| 	border-bottom: 3px solid transparent; | ||||
| } | ||||
| .c_pc_image | ||||
| { | ||||
| 	display: inline-block; | ||||
| 	margin:1%; | ||||
| 	padding:1%; | ||||
| 	 | ||||
| 	img | ||||
| 	{ | ||||
| 		max-height: 100px; | ||||
| 		margin:0px auto; | ||||
| 	} | ||||
| 	 | ||||
| 	&:hover | ||||
| 	{ | ||||
| 		.cat_name | ||||
| 		{ | ||||
| 			border-bottom: 3px solid @theme-color; | ||||
| 		} | ||||
| 	} | ||||
| } | ||||
| @media (max-width: 800px) { | ||||
|    | ||||
|   .cat_showcase_heading .cat_title | ||||
| 	{ | ||||
| 		.size(28px) !important; | ||||
| 	} | ||||
|   | ||||
|   } | ||||
| @media (max-width: 600px) { | ||||
| 
 | ||||
| 	.cat_showcase_heading .cat_title | ||||
| 	{ | ||||
| 		.size(20px) !important; | ||||
| 	} | ||||
| 	.product_carousel_slider a | ||||
| 	{ | ||||
| 		.size(11px) !important; | ||||
| 	} | ||||
| 	.c_pc_image:hover .cat_name { | ||||
|     	border-bottom: 2px solid @theme-color !important; | ||||
| 	} | ||||
| 	.c_pc_image { | ||||
| 	 | ||||
| 		margin: 2% !important; | ||||
| 		padding: 3% !important; | ||||
| 	} | ||||
| 
 | ||||
| } | ||||
|  | @ -0,0 +1,26 @@ | |||
| <?xml version="1.0" encoding="utf-8"?> | ||||
| <odoo> | ||||
| 	<template id="assets_frontend_showcase_js" | ||||
| 		name="E-commerce product carousel snippets JS frontend assets" | ||||
| 		inherit_id="website.assets_frontend"> | ||||
| 		<xpath expr="//script[last()]" position="after"> | ||||
| 			<script type="text/javascript" src="clarico_category/static/src/js/showcase_snippet_frontend.js"></script> | ||||
| 		</xpath>  | ||||
| 	</template> | ||||
| 
 | ||||
| 	<template id="assets_editor_showcase" | ||||
| 		name="E-commerce product carousel snippets JS editor assets" | ||||
| 		inherit_id="website.assets_editor"> | ||||
| 		<xpath expr="." position="inside"> | ||||
| 			<script type="text/javascript" | ||||
| 				src="/clarico_category/static/src/js/showcase_snippet_editor.js"></script> | ||||
| 		</xpath> | ||||
| 	</template> | ||||
| 	 | ||||
| 	<template id="category_assets_frontend" inherit_id="web.assets_frontend"> | ||||
|         <xpath expr="." position="inside"> | ||||
|             <link rel="stylesheet" type="text/less" href="/clarico_category/static/src/less/showcase_snippet.less"/> | ||||
|         </xpath> | ||||
|     </template> | ||||
|      | ||||
| </odoo> | ||||
|  | @ -0,0 +1,50 @@ | |||
| <?xml version="1.0" encoding="utf-8"?> | ||||
| <odoo> | ||||
| 	<template id="showcase_snippets" inherit_id="clarico_snippets.clarico_carousel_snippets"> | ||||
| 		<xpath | ||||
| 			expr="//div[@id='clarico_carousel_structure']/div[hasclass('o_panel_body')]" | ||||
| 			position="inside"> | ||||
| 			<t t-snippet="clarico_category.clarico_category_showcase_snippet_body" | ||||
| 				t-thumbnail="/clarico_category/static/src/img/clarico_category.jpg" /> | ||||
| 		</xpath> | ||||
| 	</template> | ||||
| 
 | ||||
| 	<!-- ======== E-Commerce Product Carousel Snippets ======== E-Commerce Product  | ||||
| 		Carousel Snippet's Body --> | ||||
| 	<template id="clarico_category_showcase_snippet_body" name="Category"> | ||||
| 		<section class="s_image"> | ||||
| 			<div class="ss_container"> | ||||
| 				<div class="cat_showcase_heading"> | ||||
| 					<h3 class="cat_title">Our Featured Categories</h3> | ||||
| 				</div> | ||||
| 				<div class="js_get_category" data-isemipro="true" data-loading="true" | ||||
| 					data-objects_limit="10" data-template="clarico_category.clarico_category_category_showcase" /> | ||||
| 			</div> | ||||
| 		</section> | ||||
| 	</template> | ||||
| 	<template id="clarico_category_category_showcase"> | ||||
| 		<div class="product_carousel_slider"> | ||||
| 			<t t-foreach="object" t-as="category"> | ||||
| 				<t t-call="clarico_category.clarico_category_category_show" /> | ||||
| 			</t> | ||||
| 		</div> | ||||
| 	</template> | ||||
| 	<template id="clarico_category_category_show" name="Category_image_with_name"> | ||||
| 		<div class="c_pc_image"> | ||||
| 			<span itemprop="image" /> | ||||
| 			<div class="c_sub_pc_image"> | ||||
| 				<a t-att-href="'/shop/category/%s' %slug(category)"> | ||||
| 				<span itemprop="image" t-field="category.image" t-options="{'widget': 'image'}" | ||||
| 					t-att-alt="category.name" /> | ||||
| 					</a> | ||||
| 			</div> | ||||
| 			<a t-field="category.name" class="cat_name" | ||||
| 				t-att-href="'/shop/category/%s' %slug(category)"></a> | ||||
| 		</div> | ||||
| 	</template> | ||||
| 	<template id="clarico_category_product_carousel_snippets_option" inherit_id="website.snippet_options"> | ||||
| 		<xpath expr="//div[@data-js='background']" position="after"> | ||||
| 			<div data-js="js_get_category" data-selector=".js_get_category" /> | ||||
| 		</xpath> | ||||
| 	</template> | ||||
| </odoo> | ||||