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>
|
||||