diff --git a/batiskaf/jinja2.py b/batiskaf/jinja2.py
index dae2ef2..4d9717b 100644
--- a/batiskaf/jinja2.py
+++ b/batiskaf/jinja2.py
@@ -3,9 +3,10 @@ from django.contrib.staticfiles.storage import staticfiles_storage
from django.core.urlresolvers import reverse
from batiskaf.jinja2_ext.thumbnails import thumbnail
from batiskaf.jinja2_ext.cart import cart
+from batiskaf.jinja2_ext.currency import currency
from batiskaf.jinja2_ext.html_filters import *
from jinja2 import Environment
-from store.models import Category, Brand
+from store.models import Category, Brand, Currency
def environment(**options):
@@ -15,10 +16,12 @@ def environment(**options):
'url': reverse,
'main_categories': Category.objects.filter(parent__isnull=True).order_by('pk'),
'all_brands': Brand.objects.order_by('title'),
+ 'all_currency': Currency.objects.all(),
})
env.filters['linebreaks'] = linebreaks
env.filters['thumbnail'] = thumbnail
env.filters['cart'] = cart
+ env.filters['currency'] = currency
env.filters['bootstrap'] = bootstrap
env.filters['bootstrap_inline'] = bootstrap_inline
env.filters['bootstrap_horizontal'] = bootstrap_horizontal
diff --git a/batiskaf/jinja2_ext/currency.py b/batiskaf/jinja2_ext/currency.py
new file mode 100644
index 0000000..bffee30
--- /dev/null
+++ b/batiskaf/jinja2_ext/currency.py
@@ -0,0 +1,7 @@
+#!/usr/bin/env python
+# -*- coding: utf-8 -*-
+from store.currency import Currency
+
+
+def currency(request):
+ return Currency(request)
diff --git a/batiskaf/templates/jinja2/base.jinja b/batiskaf/templates/jinja2/base.jinja
index ad190e1..e51b8f7 100644
--- a/batiskaf/templates/jinja2/base.jinja
+++ b/batiskaf/templates/jinja2/base.jinja
@@ -17,7 +17,7 @@
-
+
@@ -142,9 +142,23 @@
-
Акции
-
+ Акции
+
diff --git a/batiskaf/templates/jinja2/index.jinja b/batiskaf/templates/jinja2/index.jinja
index ced1235..552744e 100644
--- a/batiskaf/templates/jinja2/index.jinja
+++ b/batiskaf/templates/jinja2/index.jinja
@@ -47,7 +47,11 @@
+
+ Валюта ₸ ₽ $
+
{{ product.min_price(request.user) }} ₸
+
{% if product.in_stock() %}
diff --git a/static/js/_.js b/static/js/_.js
index a09f646..779d660 100644
--- a/static/js/_.js
+++ b/static/js/_.js
@@ -1,6 +1,11 @@
$(document).on('click', '.yamm .dropdown-menu', function (e) {
e.stopPropagation();
});
+
+$(document).on('click', '.navbar-item__currency', function (e) {
+ e.preventDefault();
+});
+
$(document).ready(function () {
$("#shop-categories").on('affix.bs.affix', function () {
$('.header-middle').css('margin-bottom', $("#shop-categories").css('height'));
diff --git a/static/less/_.css b/static/less/_.css
index d97efe3..18c62ae 100644
--- a/static/less/_.css
+++ b/static/less/_.css
@@ -312,6 +312,58 @@
.navbar-item__roballen {
background: #027BC1;
}
+.navbar-item__currency {
+ float: left;
+ height: 50px;
+ font-size: 14px!important;
+ width: 34px;
+}
+.navbar-item__currency:after {
+ clear: both;
+ display: table;
+ content: " ";
+}
+.open .currency-icon {
+ background-image: linear-gradient(to bottom, #080808 0%, #0f0f0f 100%);
+ background-repeat: repeat-x;
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff080808', endColorstr='#ff0f0f0f', GradientType=0);
+ box-shadow: inset 0 3px 9px rgba(0, 0, 0, 0.25);
+}
+.currency-icon {
+ display: block;
+ margin-left: 0;
+ width: 49px;
+ text-align: center;
+ line-height: 50px;
+}
+.currency-menu {
+ width: 50px;
+ left: inherit!important;
+ margin: 0;
+ position: absolute;
+ float: left;
+ background-color: #434a54;
+ color: #fff;
+ border-width: 0 1px 1px;
+ border-radius: 0 0 2px 2px;
+ box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175);
+}
+.currency-menu .yamm-content {
+ padding: 10px;
+}
+.currency-item {
+ margin-bottom: 15px;
+ text-align: center;
+}
+.currency-item:last-child {
+ margin-bottom: 0;
+}
+.currency-item__link {
+ display: block;
+ padding: 0!important;
+ border: 0!important;
+ font-size: 14px!important;
+}
body {
font-family: "Open Sans", Arial, sans-serif;
}
diff --git a/static/less/_.less b/static/less/_.less
index 3b6d677..b860f7f 100644
--- a/static/less/_.less
+++ b/static/less/_.less
@@ -4,8 +4,9 @@
@import "../bower_components/colors/less/colors.less";
@import "../bower_components/yamm3/yamm/yamm.less";
-// include custom style
-@import "_brand";
+// include components custom style
+@import "components/_navbar";
+
@brand-yellow: #fed000;
@brand-gray: #434a54;
diff --git a/static/less/_.min.css b/static/less/_.min.css
index 8b7987f..f6446d1 100644
--- a/static/less/_.min.css
+++ b/static/less/_.min.css
@@ -1 +1 @@
-.header-top,.header-top .container{line-height:40px;height:40px}.navbar-container,.navbar-container.affix{z-index:5000;width:100%}.bg-navy{background-color:#001F3F}.bg-blue{background-color:#0074D9}.bg-aqua{background-color:#7FDBFF}.bg-teal{background-color:#39CCCC}.bg-olive{background-color:#3D9970}.bg-green{background-color:#2ECC40}.bg-lime{background-color:#01FF70}.bg-yellow{background-color:#FFDC00}.bg-orange{background-color:#FF851B}.bg-red{background-color:#FF4136}.bg-fuchsia{background-color:#F012BE}.bg-purple{background-color:#B10DC9}.bg-maroon{background-color:#85144B}.bg-white{background-color:#fff}.bg-gray{background-color:#aaa}.bg-silver{background-color:#ddd}.bg-black{background-color:#111}.navy{color:#001F3F}.blue{color:#0074D9}.aqua{color:#7FDBFF}.teal{color:#39CCCC}.olive{color:#3D9970}.green{color:#2ECC40}.lime{color:#01FF70}.yellow{color:#FFDC00}.orange{color:#FF851B}.red{color:#FF4136}.fuchsia{color:#F012BE}.purple{color:#B10DC9}.maroon{color:#85144B}.white{color:#fff}.silver{color:#ddd}.gray{color:#aaa}.black{color:#111}.header-top .container .top-left-links a,span.yellow{color:#fed000}.border--navy{border-color:#001F3F}.border--blue{border-color:#0074D9}.border--aqua{border-color:#7FDBFF}.border--teal{border-color:#39CCCC}.border--olive{border-color:#3D9970}.border--green{border-color:#2ECC40}.border--lime{border-color:#01FF70}.border--yellow{border-color:#FFDC00}.border--orange{border-color:#FF851B}.border--red{border-color:#FF4136}.border--fuchsia{border-color:#F012BE}.border--purple{border-color:#B10DC9}.border--maroon{border-color:#85144B}.border--white{border-color:#fff}.border--gray{border-color:#aaa}.border--silver{border-color:#ddd}.border--black{border-color:#111}.fill-navy{fill:#001F3F}.fill-blue{fill:#0074D9}.fill-aqua{fill:#7FDBFF}.fill-teal{fill:#39CCCC}.fill-olive{fill:#3D9970}.fill-green{fill:#2ECC40}.fill-lime{fill:#01FF70}.fill-yellow{fill:#FFDC00}.fill-orange{fill:#FF851B}.fill-red{fill:#FF4136}.fill-fuchsia{fill:#F012BE}.fill-purple{fill:#B10DC9}.fill-maroon{fill:#85144B}.fill-white{fill:#fff}.fill-gray{fill:#aaa}.fill-silver{fill:#ddd}.fill-black{fill:#111}.stroke-navy{stroke:#001F3F}.stroke-blue{stroke:#0074D9}.stroke-aqua{stroke:#7FDBFF}.stroke-teal{stroke:#39CCCC}.stroke-olive{stroke:#3D9970}.stroke-green{stroke:#2ECC40}.stroke-lime{stroke:#01FF70}.stroke-yellow{stroke:#FFDC00}.stroke-orange{stroke:#FF851B}.stroke-red{stroke:#FF4136}.stroke-fuchsia{stroke:#F012BE}.stroke-purple{stroke:#B10DC9}.stroke-maroon{stroke:#85144B}.stroke-white{stroke:#fff}.stroke-gray{stroke:#aaa}.stroke-silver{stroke:#ddd}.stroke-black{stroke:#111}.yamm .collapse,.yamm .dropdown,.yamm .dropup,.yamm .nav{position:static}.yamm .container{position:relative}.yamm .dropdown-menu{left:auto}.yamm .nav.navbar-right .dropdown-menu{left:auto;right:0}.yamm .yamm-content{padding:10px 20px;text-transform:uppercase}.yamm .dropdown.yamm-fw .dropdown-menu{left:0;right:0}.navbar-item__roballen{background:#027BC1}.navbar,body{min-width:970px!important}.nav .lead{font-size:13px;text-transform:uppercase;font-weight:700}.container{width:970px!important;max-width:none!important}.header-top{background-color:#434a54}.header-top .container .top-left-links{float:left;text-align:left;color:#fed000;font-size:10pt}.header-top .container .top-right-links{float:right;text-align:right;color:#fff;font-weight:700;font-size:10pt}.header-top .container .top-right-links a{color:#fff}.header-middle{background-color:#fed000;height:130px}.header-middle .logo-container{line-height:130px;float:left;text-align:left}.header-middle .quick-access-container{float:right;text-align:right}.navbar-header,.navbar-nav>li{float:left}.header-middle .quick-access-container form{margin-top:30px}.header-middle .quick-access-container form input{background-color:#ffda32;border:1px solid #cba600;width:245px;height:30px;padding:5px}.header-middle .quick-access-container form button{background:0 0;border:none}.header-middle .quick-access-container .small-welcome{font-size:10pt;margin-top:10px}.header-middle .quick-access-container .quick-links{font-size:10pt;color:#434a54}.header-middle .quick-access-container .quick-links a{color:#434a54}.navbar-fixed-bottom,.navbar-static-top,body{min-width:970px}.lead{font-size:14px;font-weight:700}.page-header{margin-bottom:30px}.page-header .lead{margin-bottom:10px}.container .navbar-collapse,.container .navbar-header{margin-right:0;margin-left:0}.navbar-collapse{display:block!important;height:auto!important;padding-bottom:0;overflow:visible!important;visibility:visible!important;border-top:0}.navbar-toggle{display:none}.navbar-form .form-control-static,.navbar-form .form-group{display:inline-block}.navbar-brand{margin-left:-15px}.navbar-nav{float:left;margin:0}.navbar-nav>li>a{padding:15px}.navbar-nav.navbar-right{float:right}.navbar .navbar-nav .open .dropdown-menu{position:absolute;float:left;background-color:#434a54;color:#fff;border-width:0 1px 1px;border-radius:0 0 2px 2px;box-shadow:0 6px 12px rgba(0,0,0,.175)}.navbar .navbar-nav .open .dropdown-menu ul{list-style-type:none;padding:0;margin:0 0 15px}.navbar-form .control-label,.navbar-form .form-group{margin-bottom:0;vertical-align:middle}.navbar .navbar-nav .open .dropdown-menu a{color:#fff;border:none;font-weight:700;font-size:11px}.navbar .navbar-nav .open .dropdown-menu a.title{color:#fed000!important;font-weight:700;font-size:12px;white-space:nowrap}.navbar .navbar-nav .open .dropdown-menu a:hover{text-decoration:underline;color:#fed000}a#order-call-link{color:#FC6E51}.navbar-default .navbar-nav .open .dropdown-menu>li>a{color:#333}.navbar .navbar-nav .open .dropdown-menu>.active>a,.navbar .navbar-nav .open .dropdown-menu>.active>a:focus,.navbar .navbar-nav .open .dropdown-menu>.active>a:hover,.navbar .navbar-nav .open .dropdown-menu>li>a:focus,.navbar .navbar-nav .open .dropdown-menu>li>a:hover{color:#fff!important;background-color:#428bca!important}.navbar .navbar-nav .open .dropdown-menu>.disabled>a,.navbar .navbar-nav .open .dropdown-menu>.disabled>a:focus,.navbar .navbar-nav .open .dropdown-menu>.disabled>a:hover{color:#999!important;background-color:transparent!important}.navbar-form{float:left;width:auto;padding-top:0;padding-bottom:0;margin-right:0;margin-left:0;border:0;box-shadow:none}.navbar-form .form-control{display:inline-block;width:auto;vertical-align:middle}.navbar-form .input-group{display:inline-table;vertical-align:middle}.navbar-form .input-group .form-control,.navbar-form .input-group .input-group-addon,.navbar-form .input-group .input-group-btn{width:auto}.navbar-form .input-group>.form-control{width:100%}.navbar-form .checkbox,.navbar-form .radio{display:inline-block;margin-top:0;margin-bottom:0;vertical-align:middle}.navbar-form .checkbox label,.navbar-form .radio label{padding-left:0}.navbar-form .checkbox input[type=checkbox],.navbar-form .radio input[type=radio]{position:relative;margin-left:0}.navbar-form .has-feedback .form-control-feedback{top:0}.navbar-container{padding:0}.dropdown-menu{min-width:720px!important}.navbar{margin-bottom:0!important}.main-container{padding:20px 0 100px}.index-goods{margin-top:20px}.index-goods .thumbnail{padding-bottom:10px!important;box-shadow:none;border:0}.index-goods .title{height:40px;overflow:hidden}.index-goods .title a{font-weight:700;color:#0074D9;font-size:12px}.index-goods .price{font-size:18px;font-weight:700;margin-bottom:5px}.index-goods .state-yes{color:#2ECC40;font-size:11px;margin-bottom:10px}.index-goods .state-no{color:#FF4136;font-size:11px;margin-bottom:10px}.index-goods a.cart-link{color:#111}.index-goods a.cart-link:hover{text-decoration:none;color:#111}footer .footer-col{margin-top:10px;background:0 0;border-left:1px #5e5e5e solid;height:100px}footer .footer-col.col-last{border-right:1px #5e5e5e solid}footer .footer-top{height:30px;margin-top:-40px;background-color:#fed000}footer .footer-bottom{height:330px;color:#fff;font-size:12px}footer .footer-bottom .title{color:#fed000;font-weight:700}footer .footer-bottom a{color:#fff}footer .footer-bottom a:hover{color:#fed000}html{position:relative!important;min-height:100%!important}body{font-family:"Open Sans",Arial,sans-serif;margin-bottom:360px!important;background-color:#f1f2f6}.footer{position:absolute!important;bottom:0!important;width:100%!important;height:360px!important}.navbar-inverse{background-image:linear-gradient(to bottom,#434a54 0,#535b68 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff434a54', endColorstr='#ff535b68', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.navbar-inverse a{color:#fff!important;border-right:1px #707c8d solid;font-weight:700;font-size:9pt}.navbar-inverse a:hover{color:#fed000!important;text-decoration:none}.navbar-inverse .navbar-nav>.active>a,.navbar-inverse .navbar-nav>.open>a{background-image:linear-gradient(to bottom,#080808 0,#0f0f0f 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff080808', endColorstr='#ff0f0f0f', GradientType=0);box-shadow:inset 0 3px 9px rgba(0,0,0,.25)}.navbar-inverse .navbar-brand,.navbar-inverse .navbar-nav>li>a{text-shadow:0 -1px 0 rgba(0,0,0,.25)}h1,h2,h3,h4,h5,h6{text-align:center}.well-lg form{margin:10px 0}.alert h4{text-align:left}.navbar-container.affix{top:0}.panel-filter ul{text-align:left;list-style-type:none;list-style-position:inherit;padding:0;margin:0}.panel-filter ul .icheckbox_square-blue{margin-right:5px}.panel-filter ul label{font-weight:400}hr.dashed{border:none;height:1px;width:100%;border-top:1px dashed #ccc}.category-filter-title{text-transform:uppercase;font-size:12px;font-weight:700;margin-bottom:15px}.category-paginator{font-size:12px;line-height:25px;background:#434a54;height:50px;color:#fff;margin-bottom:20px;border-radius:4px}.category-paginator .category-paginator-top{padding:0 10px;height:25px;border-bottom:1px #BDC3C7 solid}.category-paginator .category-paginator-bottom{height:20px;padding:0 10px}.category-paginator select{color:#000}.category-items{margin:0}.breadcrumb-arrow li a::before{border-left-color:#fed000}.breadcrumb-arrow li a::after{border-left:11px solid #e5bb00}.breadcrumb-arrow li a{background-color:#fed000;border:1px solid #e5bb00;color:#434a54}.breadcrumb-arrow li a:focus::before,.breadcrumb-arrow li a:hover::before{border-left-color:#fed000}.breadcrumb-arrow li a:focus,.breadcrumb-arrow li a:hover{background-color:#fed000;border:1px solid #fed000}.breadcrumb-arrow li a:active::after,.breadcrumb-arrow li a:active::before{border-left-color:#fed000}.breadcrumb-arrow li a:active{background-color:#fed000;border:1px solid #fed000}.category-paginator a,.category-paginator a:active,.category-paginator a:hover{color:#fed000}.product-min-thumbnails img{margin-bottom:10px}.product-big-thumbnail .product-big-thumbnail-container{width:400px;height:400px;min-width:400px;min-height:400px;max-width:400px;max-height:400px;background:#fff;border:1px solid #ddd;border-radius:4px;text-align:center;line-height:400px}.product-big-thumbnail .product-big-thumbnail-container img{width:396px;margin-top:2px}.product-short-description{padding-left:35px}.product-short-description h4{text-align:left;margin-top:0;padding-top:0}.product-short-description .product-detail-price{font-size:41px;font-weight:700}#cart-itogo,#cart-itogo-up,#order-itogo-amount,#order-itogo-amount-up,#order-itogo-delivery,#order-itogo-delivery-up,.product-in-stock .itogo,.table .table-cart-itogo{font-size:20px}.product-not-in-stock{color:#FF4136;font-style:italic;display:none}table.table-cart input{width:70px;text-align:left;float:right}table.table-cart tbody td{padding-top:45px}table.table-cart tbody td.table-cart-image{padding-top:8px}table.table-cart tbody td .form-control{margin-top:-8px}.breadcrumbs,ol.breadcrumb.breadcrumb-arrow{overflow:hidden!important}.table thead tr th{background:#434a54;color:#fff;border-right:1px gray solid}.table thead tr th:last-child{border-right:none}.table thead tr th:last-of-type{border-right:none}.table thead tr th:last{border-right:none}.table tbody td{border-right:1px #ddd solid}.table tbody td:last-child{border-right:none}.table tbody td:last-of-type{border-right:none}.table tbody td:last{border-right:none}ul.messages{display:none}.product-description{margin-top:40px;padding-top:20px;border-top:1px #ddd solid}.order-data .radio{margin-left:15px}.well-large{padding:40px}.news-container .comment{overflow:auto}.news-container .media{background:#F5F7FA;padding:15px}.call-form,.order-form{background:#FFF;padding:20px 30px;text-align:left;max-width:500px;margin:40px auto;position:relative}.sale-percent-block{background:#E9573F;width:50px;height:50px;text-align:center;color:#fff;top:0;font-size:20px;line-height:50px}.radio img{margin-top:10px;margin-bottom:10px}.radio label{margin-left:0!important;padding-left:0!important}.radio label input{margin-left:0!important;position:relative!important}
\ No newline at end of file
+.navbar-container,.navbar-container.affix{z-index:5000;width:100%}.bg-navy{background-color:#001F3F}.bg-blue{background-color:#0074D9}.bg-aqua{background-color:#7FDBFF}.bg-teal{background-color:#39CCCC}.bg-olive{background-color:#3D9970}.bg-green{background-color:#2ECC40}.bg-lime{background-color:#01FF70}.bg-yellow{background-color:#FFDC00}.bg-orange{background-color:#FF851B}.bg-red{background-color:#FF4136}.bg-fuchsia{background-color:#F012BE}.bg-purple{background-color:#B10DC9}.bg-maroon{background-color:#85144B}.bg-white{background-color:#fff}.bg-gray{background-color:#aaa}.bg-silver{background-color:#ddd}.bg-black{background-color:#111}.navy{color:#001F3F}.blue{color:#0074D9}.aqua{color:#7FDBFF}.teal{color:#39CCCC}.olive{color:#3D9970}.green{color:#2ECC40}.lime{color:#01FF70}.yellow{color:#FFDC00}.orange{color:#FF851B}.red{color:#FF4136}.fuchsia{color:#F012BE}.purple{color:#B10DC9}.maroon{color:#85144B}.white{color:#fff}.silver{color:#ddd}.gray{color:#aaa}.black{color:#111}.border--navy{border-color:#001F3F}.border--blue{border-color:#0074D9}.border--aqua{border-color:#7FDBFF}.border--teal{border-color:#39CCCC}.border--olive{border-color:#3D9970}.border--green{border-color:#2ECC40}.border--lime{border-color:#01FF70}.border--yellow{border-color:#FFDC00}.border--orange{border-color:#FF851B}.border--red{border-color:#FF4136}.border--fuchsia{border-color:#F012BE}.border--purple{border-color:#B10DC9}.border--maroon{border-color:#85144B}.border--white{border-color:#fff}.border--gray{border-color:#aaa}.border--silver{border-color:#ddd}.border--black{border-color:#111}.fill-navy{fill:#001F3F}.fill-blue{fill:#0074D9}.fill-aqua{fill:#7FDBFF}.fill-teal{fill:#39CCCC}.fill-olive{fill:#3D9970}.fill-green{fill:#2ECC40}.fill-lime{fill:#01FF70}.fill-yellow{fill:#FFDC00}.fill-orange{fill:#FF851B}.fill-red{fill:#FF4136}.fill-fuchsia{fill:#F012BE}.fill-purple{fill:#B10DC9}.fill-maroon{fill:#85144B}.fill-white{fill:#fff}.fill-gray{fill:#aaa}.fill-silver{fill:#ddd}.fill-black{fill:#111}.stroke-navy{stroke:#001F3F}.stroke-blue{stroke:#0074D9}.stroke-aqua{stroke:#7FDBFF}.stroke-teal{stroke:#39CCCC}.stroke-olive{stroke:#3D9970}.stroke-green{stroke:#2ECC40}.stroke-lime{stroke:#01FF70}.stroke-yellow{stroke:#FFDC00}.stroke-orange{stroke:#FF851B}.stroke-red{stroke:#FF4136}.stroke-fuchsia{stroke:#F012BE}.stroke-purple{stroke:#B10DC9}.stroke-maroon{stroke:#85144B}.stroke-white{stroke:#fff}.stroke-gray{stroke:#aaa}.stroke-silver{stroke:#ddd}.stroke-black{stroke:#111}.yamm .collapse,.yamm .dropdown,.yamm .dropup,.yamm .nav{position:static}.yamm .container{position:relative}.yamm .dropdown-menu{left:auto}.yamm .nav.navbar-right .dropdown-menu{left:auto;right:0}.yamm .yamm-content{padding:10px 20px;text-transform:uppercase}.yamm .dropdown.yamm-fw .dropdown-menu{left:0;right:0}.navbar-item__roballen{background:#027BC1}.currency-menu,.header-top{background-color:#434a54}.navbar-item__currency{float:left;height:50px;font-size:14px!important;width:34px}.navbar-item__currency:after{clear:both;display:table;content:" "}.open .currency-icon{background-image:linear-gradient(to bottom,#080808 0,#0f0f0f 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff080808', endColorstr='#ff0f0f0f', GradientType=0);box-shadow:inset 0 3px 9px rgba(0,0,0,.25)}.currency-menu,.navbar .navbar-nav .open .dropdown-menu{position:absolute;box-shadow:0 6px 12px rgba(0,0,0,.175)}.currency-icon{display:block;margin-left:0;width:49px;text-align:center;line-height:50px}.header-top,.header-top .container{line-height:40px;height:40px}.currency-menu{width:50px;left:inherit!important;margin:0;float:left;color:#fff;border-width:0 1px 1px;border-radius:0 0 2px 2px}.header-top .container .top-left-links a,span.yellow{color:#fed000}.currency-menu .yamm-content{padding:10px}.currency-item{margin-bottom:15px;text-align:center}.currency-item:last-child{margin-bottom:0}.currency-item__link{display:block;padding:0!important;border:0!important;font-size:14px!important}.navbar,body{min-width:970px!important}.nav .lead{font-size:13px;text-transform:uppercase;font-weight:700}.container{width:970px!important;max-width:none!important}.header-top .container .top-left-links{float:left;text-align:left;color:#fed000;font-size:10pt}.header-top .container .top-right-links{float:right;text-align:right;color:#fff;font-weight:700;font-size:10pt}.header-top .container .top-right-links a{color:#fff}.header-middle{background-color:#fed000;height:130px}.header-middle .logo-container{line-height:130px;float:left;text-align:left}.header-middle .quick-access-container{float:right;text-align:right}.navbar-header,.navbar-nav>li{float:left}.header-middle .quick-access-container form{margin-top:30px}.header-middle .quick-access-container form input{background-color:#ffda32;border:1px solid #cba600;width:245px;height:30px;padding:5px}.header-middle .quick-access-container form button{background:0 0;border:none}.header-middle .quick-access-container .small-welcome{font-size:10pt;margin-top:10px}.header-middle .quick-access-container .quick-links{font-size:10pt;color:#434a54}.header-middle .quick-access-container .quick-links a{color:#434a54}.navbar-fixed-bottom,.navbar-static-top,body{min-width:970px}.lead{font-size:14px;font-weight:700}.page-header{margin-bottom:30px}.page-header .lead{margin-bottom:10px}.container .navbar-collapse,.container .navbar-header{margin-right:0;margin-left:0}.navbar-collapse{display:block!important;height:auto!important;padding-bottom:0;overflow:visible!important;visibility:visible!important;border-top:0}.navbar-toggle{display:none}.navbar-form .form-control-static,.navbar-form .form-group{display:inline-block}.navbar-brand{margin-left:-15px}.navbar-nav{float:left;margin:0}.navbar-nav>li>a{padding:15px}.navbar-nav.navbar-right{float:right}.navbar .navbar-nav .open .dropdown-menu{float:left;background-color:#434a54;color:#fff;border-width:0 1px 1px;border-radius:0 0 2px 2px}.navbar .navbar-nav .open .dropdown-menu ul{list-style-type:none;padding:0;margin:0 0 15px}.navbar-form .control-label,.navbar-form .form-group{margin-bottom:0;vertical-align:middle}.navbar .navbar-nav .open .dropdown-menu a{color:#fff;border:none;font-weight:700;font-size:11px}.navbar .navbar-nav .open .dropdown-menu a.title{color:#fed000!important;font-weight:700;font-size:12px;white-space:nowrap}.navbar .navbar-nav .open .dropdown-menu a:hover{text-decoration:underline;color:#fed000}a#order-call-link{color:#FC6E51}.navbar-default .navbar-nav .open .dropdown-menu>li>a{color:#333}.navbar .navbar-nav .open .dropdown-menu>.active>a,.navbar .navbar-nav .open .dropdown-menu>.active>a:focus,.navbar .navbar-nav .open .dropdown-menu>.active>a:hover,.navbar .navbar-nav .open .dropdown-menu>li>a:focus,.navbar .navbar-nav .open .dropdown-menu>li>a:hover{color:#fff!important;background-color:#428bca!important}.navbar .navbar-nav .open .dropdown-menu>.disabled>a,.navbar .navbar-nav .open .dropdown-menu>.disabled>a:focus,.navbar .navbar-nav .open .dropdown-menu>.disabled>a:hover{color:#999!important;background-color:transparent!important}.navbar-form{float:left;width:auto;padding-top:0;padding-bottom:0;margin-right:0;margin-left:0;border:0;box-shadow:none}.navbar-form .form-control{display:inline-block;width:auto;vertical-align:middle}.navbar-form .input-group{display:inline-table;vertical-align:middle}.navbar-form .input-group .form-control,.navbar-form .input-group .input-group-addon,.navbar-form .input-group .input-group-btn{width:auto}.navbar-form .input-group>.form-control{width:100%}.navbar-form .checkbox,.navbar-form .radio{display:inline-block;margin-top:0;margin-bottom:0;vertical-align:middle}.navbar-form .checkbox label,.navbar-form .radio label{padding-left:0}.navbar-form .checkbox input[type=checkbox],.navbar-form .radio input[type=radio]{position:relative;margin-left:0}.navbar-form .has-feedback .form-control-feedback{top:0}.navbar-container{padding:0}.dropdown-menu{min-width:720px!important}.navbar{margin-bottom:0!important}.main-container{padding:20px 0 100px}.index-goods{margin-top:20px}.index-goods .thumbnail{padding-bottom:10px!important;box-shadow:none;border:0}.index-goods .title{height:40px;overflow:hidden}.index-goods .title a{font-weight:700;color:#0074D9;font-size:12px}.index-goods .price{font-size:18px;font-weight:700;margin-bottom:5px}.index-goods .state-yes{color:#2ECC40;font-size:11px;margin-bottom:10px}.index-goods .state-no{color:#FF4136;font-size:11px;margin-bottom:10px}.index-goods a.cart-link{color:#111}.index-goods a.cart-link:hover{text-decoration:none;color:#111}footer .footer-col{margin-top:10px;background:0 0;border-left:1px #5e5e5e solid;height:100px}footer .footer-col.col-last{border-right:1px #5e5e5e solid}footer .footer-top{height:30px;margin-top:-40px;background-color:#fed000}footer .footer-bottom{height:330px;color:#fff;font-size:12px}footer .footer-bottom .title{color:#fed000;font-weight:700}footer .footer-bottom a{color:#fff}footer .footer-bottom a:hover{color:#fed000}html{position:relative!important;min-height:100%!important}body{font-family:"Open Sans",Arial,sans-serif;margin-bottom:360px!important;background-color:#f1f2f6}.footer{position:absolute!important;bottom:0!important;width:100%!important;height:360px!important}.navbar-inverse{background-image:linear-gradient(to bottom,#434a54 0,#535b68 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff434a54', endColorstr='#ff535b68', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.navbar-inverse a{color:#fff!important;border-right:1px #707c8d solid;font-weight:700;font-size:9pt}.navbar-inverse a:hover{color:#fed000!important;text-decoration:none}.navbar-inverse .navbar-nav>.active>a,.navbar-inverse .navbar-nav>.open>a{background-image:linear-gradient(to bottom,#080808 0,#0f0f0f 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff080808', endColorstr='#ff0f0f0f', GradientType=0);box-shadow:inset 0 3px 9px rgba(0,0,0,.25)}.navbar-inverse .navbar-brand,.navbar-inverse .navbar-nav>li>a{text-shadow:0 -1px 0 rgba(0,0,0,.25)}h1,h2,h3,h4,h5,h6{text-align:center}.well-lg form{margin:10px 0}.alert h4{text-align:left}.navbar-container.affix{top:0}.panel-filter ul{text-align:left;list-style-type:none;list-style-position:inherit;padding:0;margin:0}.panel-filter ul .icheckbox_square-blue{margin-right:5px}.panel-filter ul label{font-weight:400}hr.dashed{border:none;height:1px;width:100%;border-top:1px dashed #ccc}.category-filter-title{text-transform:uppercase;font-size:12px;font-weight:700;margin-bottom:15px}.category-paginator{font-size:12px;line-height:25px;background:#434a54;height:50px;color:#fff;margin-bottom:20px;border-radius:4px}.category-paginator .category-paginator-top{padding:0 10px;height:25px;border-bottom:1px #BDC3C7 solid}.category-paginator .category-paginator-bottom{height:20px;padding:0 10px}.category-paginator select{color:#000}.category-items{margin:0}.breadcrumb-arrow li a::before{border-left-color:#fed000}.breadcrumb-arrow li a::after{border-left:11px solid #e5bb00}.breadcrumb-arrow li a{background-color:#fed000;border:1px solid #e5bb00;color:#434a54}.breadcrumb-arrow li a:focus::before,.breadcrumb-arrow li a:hover::before{border-left-color:#fed000}.breadcrumb-arrow li a:focus,.breadcrumb-arrow li a:hover{background-color:#fed000;border:1px solid #fed000}.breadcrumb-arrow li a:active::after,.breadcrumb-arrow li a:active::before{border-left-color:#fed000}.breadcrumb-arrow li a:active{background-color:#fed000;border:1px solid #fed000}.category-paginator a,.category-paginator a:active,.category-paginator a:hover{color:#fed000}.product-min-thumbnails img{margin-bottom:10px}.product-big-thumbnail .product-big-thumbnail-container{width:400px;height:400px;min-width:400px;min-height:400px;max-width:400px;max-height:400px;background:#fff;border:1px solid #ddd;border-radius:4px;text-align:center;line-height:400px}.product-big-thumbnail .product-big-thumbnail-container img{width:396px;margin-top:2px}.product-short-description{padding-left:35px}.product-short-description h4{text-align:left;margin-top:0;padding-top:0}.product-short-description .product-detail-price{font-size:41px;font-weight:700}#cart-itogo,#cart-itogo-up,#order-itogo-amount,#order-itogo-amount-up,#order-itogo-delivery,#order-itogo-delivery-up,.product-in-stock .itogo,.table .table-cart-itogo{font-size:20px}.product-not-in-stock{color:#FF4136;font-style:italic;display:none}table.table-cart input{width:70px;text-align:left;float:right}table.table-cart tbody td{padding-top:45px}table.table-cart tbody td.table-cart-image{padding-top:8px}table.table-cart tbody td .form-control{margin-top:-8px}.breadcrumbs,ol.breadcrumb.breadcrumb-arrow{overflow:hidden!important}.table thead tr th{background:#434a54;color:#fff;border-right:1px gray solid}.table thead tr th:last-child{border-right:none}.table thead tr th:last-of-type{border-right:none}.table thead tr th:last{border-right:none}.table tbody td{border-right:1px #ddd solid}.table tbody td:last-child{border-right:none}.table tbody td:last-of-type{border-right:none}.table tbody td:last{border-right:none}ul.messages{display:none}.product-description{margin-top:40px;padding-top:20px;border-top:1px #ddd solid}.order-data .radio{margin-left:15px}.well-large{padding:40px}.news-container .comment{overflow:auto}.news-container .media{background:#F5F7FA;padding:15px}.call-form,.order-form{background:#FFF;padding:20px 30px;text-align:left;max-width:500px;margin:40px auto;position:relative}.sale-percent-block{background:#E9573F;width:50px;height:50px;text-align:center;color:#fff;top:0;font-size:20px;line-height:50px}.radio img{margin-top:10px;margin-bottom:10px}.radio label{margin-left:0!important;padding-left:0!important}.radio label input{margin-left:0!important;position:relative!important}
\ No newline at end of file
diff --git a/static/less/_brand.less b/static/less/_brand.less
deleted file mode 100644
index 0d9ba93..0000000
--- a/static/less/_brand.less
+++ /dev/null
@@ -1,8 +0,0 @@
-@brand-roballen: #027BC1;
-@brand-roballen-second: #A4A5A9;
-
-.navbar-item__roballen {
- background: @brand-roballen;
-}
-
-
diff --git a/static/less/components/_navbar.less b/static/less/components/_navbar.less
new file mode 100644
index 0000000..9551448
--- /dev/null
+++ b/static/less/components/_navbar.less
@@ -0,0 +1,71 @@
+@brand-roballen: #027BC1;
+@brand-roballen-second: #A4A5A9;
+
+.navbar-item__roballen {
+ background: @brand-roballen;
+}
+
+.open .navbar-item__currency {
+ //color: #fed000 !important;
+}
+
+.navbar-item__currency {
+ float: left;
+ height: 50px;
+ font-size: 14px!important;
+ width: 34px;
+
+ &:after {
+ clear: both;
+ display: table;
+ content: " ";
+ }
+}
+
+.open .currency-icon {
+ background-image: linear-gradient(to bottom, #080808 0%, #0f0f0f 100%);
+ background-repeat: repeat-x;
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff080808', endColorstr='#ff0f0f0f', GradientType=0);
+ box-shadow: inset 0 3px 9px rgba(0, 0, 0, 0.25);
+}
+
+.currency-icon {
+ display: block;
+ margin-left: 0;
+ width: 49px;
+ text-align: center;
+ line-height: 50px;
+}
+
+.currency-menu {
+ width: 50px;
+ left: inherit!important;
+ margin: 0;
+ position: absolute;
+ float: left;
+ background-color: #434a54;
+ color: #fff;
+ border-width: 0 1px 1px;
+ border-radius: 0 0 2px 2px;
+ box-shadow: 0 6px 12px rgba(0,0,0,.175);
+
+ & .yamm-content {
+ padding: 10px;
+ }
+}
+
+
+.currency-item {
+ &:last-child {
+ margin-bottom: 0;
+ }
+ margin-bottom:15px;
+ text-align: center;
+}
+
+.currency-item__link {
+ display: block;
+ padding: 0!important;
+ border: 0!important;
+ font-size: 14px!important;
+}
\ No newline at end of file
diff --git a/store/admin.py b/store/admin.py
index f5d3535..ad563ed 100644
--- a/store/admin.py
+++ b/store/admin.py
@@ -133,3 +133,8 @@ class ProductFeedbackAdmin(admin.ModelAdmin):
# class DogAdmin(admin.ModelAdmin):
# list_display = ('name', 'data')
#
+
+
+@admin.register(Currency)
+class CurrencyAdmin(admin.ModelAdmin):
+ list_display = ('title', 'exchange', 'ISO_letter_code')
diff --git a/store/currency.py b/store/currency.py
new file mode 100644
index 0000000..c9509d5
--- /dev/null
+++ b/store/currency.py
@@ -0,0 +1,20 @@
+#!/usr/bin/env python
+# -*- coding: utf-8 -*-
+from .models import Currency as CurrencyModel
+
+MAIN_CURRENCY_ID = '1'
+
+
+class Currency(object):
+ currency_id = ''
+
+ def __init__(self, request):
+ self.cart_id = request.session.get('currency_id', None)
+ if not self.currency_id:
+ self.currency_id = MAIN_CURRENCY_ID
+ request.session['currency_id'] = MAIN_CURRENCY_ID
+
+
+
+
+
diff --git a/store/migrations/0056_auto_20170306_1823.py b/store/migrations/0056_auto_20170306_1823.py
new file mode 100644
index 0000000..bafcfb7
--- /dev/null
+++ b/store/migrations/0056_auto_20170306_1823.py
@@ -0,0 +1,30 @@
+# -*- coding: utf-8 -*-
+# Generated by Django 1.9.3 on 2017-03-06 18:23
+from __future__ import unicode_literals
+
+from django.db import migrations, models
+
+
+class Migration(migrations.Migration):
+
+ dependencies = [
+ ('store', '0055_auto_20170224_1244'),
+ ]
+
+ operations = [
+ migrations.CreateModel(
+ name='Currency',
+ fields=[
+ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
+ ('title', models.CharField(max_length=25, verbose_name='Название')),
+ ('exchange', models.FloatField(verbose_name='Курс, KZT/ед.')),
+ ('abridgement', models.CharField(max_length=25, verbose_name='Сокращенное название')),
+ ('ISO_letter_code', models.CharField(help_text='Например: KZT, USD, RUB', max_length=3, verbose_name='Буквенный код')),
+ ('HTML_letter_code', models.CharField(help_text='Код в HTML для вывода в шаблонах', max_length=10, verbose_name='HTML код')),
+ ],
+ options={
+ 'verbose_name': 'валюта',
+ 'verbose_name_plural': 'валюты',
+ },
+ )
+ ]
diff --git a/store/migrations/0057_auto_20170306_1933.py b/store/migrations/0057_auto_20170306_1933.py
new file mode 100644
index 0000000..5d82487
--- /dev/null
+++ b/store/migrations/0057_auto_20170306_1933.py
@@ -0,0 +1,35 @@
+# -*- coding: utf-8 -*-
+from __future__ import unicode_literals
+
+from django.db import migrations
+
+
+def create_currency(apps, schema_editor):
+ Currency = apps.get_model("store", "Currency")
+ Currency.objects.get_or_create(title="Казахстанский тенге",
+ exchange=1.00,
+ abridgement="тенге",
+ ISO_letter_code="KZT",
+ HTML_letter_code="₸")
+ Currency.objects.get_or_create(title="Российский рубль",
+ exchange=0.18519,
+ abridgement="руб.",
+ ISO_letter_code="RUB",
+ HTML_letter_code="₽")
+ Currency.objects.get_or_create(title="Доллар США",
+ exchange=0.00315,
+ abridgement="доллар",
+ ISO_letter_code="USD",
+ HTML_letter_code="$")
+
+
+class Migration(migrations.Migration):
+
+ dependencies = [
+ ('store', '0056_auto_20170306_1823'),
+ ]
+
+ operations = [
+ migrations.RunPython(create_currency)
+ ]
+
diff --git a/store/models.py b/store/models.py
index 5c0e6ab..1a80d44 100644
--- a/store/models.py
+++ b/store/models.py
@@ -229,8 +229,11 @@ class Product(models.Model):
min_v = v
return min_v
- def min_price(self, profile=None):
- return self.min_price_variation().get_price(profile)
+ def min_price(self, profile=None, currency=None):
+ price = self.min_price_variation().get_price(profile)
+ if currency:
+ pass
+ return price
def is_discount(self):
return self.variations.filter(discount__gt=0).count() > 0
@@ -262,6 +265,22 @@ class Product(models.Model):
return retval
+class Currency(models.Model):
+ title = models.CharField('Название', max_length=25)
+ exchange = models.FloatField('Курс, KZT/ед.')
+ abridgement = models.CharField('Сокращенное название', max_length=25)
+ ISO_letter_code = models.CharField('Буквенный код', help_text='Например: KZT, USD, RUB', max_length=3)
+ HTML_letter_code = models.CharField('HTML код', help_text='Код в HTML для вывода в шаблонах', max_length=10)
+
+ class Meta:
+ verbose_name = 'валюта'
+ verbose_name_plural = 'валюты'
+ ordering = ['pk']
+
+ def __str__(self):
+ return self.title
+
+
class ProductVariation(models.Model):
product = models.ForeignKey(
Product, verbose_name='Товар', related_name='variations')