start add currency tag on tamplate

remotes/origin/mitri4
Dmitriy Shesterkin 9 years ago
parent 4929c78e47
commit 1e5a6a11f7
  1. 2
      batiskaf/jinja2.py
  2. 8
      batiskaf/templates/jinja2/base.jinja
  3. 6
      batiskaf/templates/jinja2/index.jinja
  4. 3
      batiskaf/urls.py
  5. 4
      static/less/components/_navbar.less
  6. 44
      store/currency.py
  7. 13
      store/views.py

@ -16,7 +16,7 @@ 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(),
'currencies': Currency.objects.all(),
})
env.filters['linebreaks'] = linebreaks
env.filters['thumbnail'] = thumbnail

@ -146,14 +146,14 @@
</ul>
<div class="navbar-header dropdown yamm-fw">
<a style="border: none;" class="dropdown-toggle navbar-item__currency" href="#" data-toggle="dropdown">
<span class="currency-icon">&#36;</span>
{# {{ (request|currency) }}#}
<span class="currency-icon">{{ (request|currency).get_symbol() }}</span>
</a>
<ul class="dropdown-menu currency-menu" style="min-width: 50px!important;">
<div class="yamm-content">
{% for item in all_currency %}
{% for item in currencies %}
<li class="currency-item">
<a class="currency-item__link" href="#">{{ item.HTML_letter_code|safe}}</a>
<a class="currency-item__link" href="/currencies/{{ item.ISO_letter_code }}">{{ item.HTML_letter_code|safe}}</a>
</li>
{% endfor %}
</div>

@ -47,11 +47,7 @@
</a>
</div>
<div class="price">
Валюта &#8376; &#8381; &#36;
{{ product.min_price(request.user) }} ₸
{{ (request|currency).get_price(product.min_price(request.user)) }}
</div>
{% if product.in_stock() %}
<div class="state-yes">

@ -4,7 +4,7 @@ from django.http import HttpResponse
from api.views import call_order
from news.views import NewsSitemap
from promo.views import PromoSitemap
from store.views import order_view, order_print, ProductSitemap, CategorySitemap, order_kkb, kkb_result
from store.views import order_view, order_print, ProductSitemap, CategorySitemap, order_kkb, kkb_result, set_currency
from main.views import *
from rest_framework import routers
# from api.urls import router
@ -124,5 +124,6 @@ urlpatterns = (
url(r'^faq/$', faq, name='faq'),
url(r'^fest/$', fest, name='fest'),
url(r'^fest_success/$', fest_success, name='fest_success'),
url(r'^currencies/(?P<currency_code>.+)/$', set_currency, name='set_currency'),
url(r'^admin2517_garpun/', include(admin.site.urls)),
)

@ -5,10 +5,6 @@
background: @brand-roballen;
}
.open .navbar-item__currency {
//color: #fed000 !important;
}
.navbar-item__currency {
float: left;
height: 50px;

@ -1,20 +1,48 @@
#!/usr/bin/env python
# -*- coding: utf-8 -*-
from markupsafe import Markup
from .models import Currency as CurrencyModel
MAIN_CURRENCY_ID = '1'
MAIN_CURRENCY_ID = 1
DEFAULT_SYMBOL = '&#8376;' # Тенге
class Currency(object):
currency_id = ''
id = ''
exchange = ''
symbol = ''
def __init__(self, request):
self.cart_id = request.session.get('currency_id', None)
if not self.currency_id:
self.currency_id = MAIN_CURRENCY_ID
self.id = request.session.get('currency_id', None)
if self.id:
try:
_currency = CurrencyModel.objects.get(pk=self.id)
self.exchange = _currency.exchange
self.symbol = _currency.HTML_letter_code
except CurrencyModel.DoesNotExist:
pass
else:
self.id = MAIN_CURRENCY_ID
self.symbol = DEFAULT_SYMBOL
self.exchange = 1
request.session['currency_id'] = MAIN_CURRENCY_ID
def set_currency(self, c_id, request):
self.id = c_id
try:
_currency = CurrencyModel.objects.get(pk=self.id)
self.symbol = _currency.HTML_letter_code
self.exchange = _currency.exchange
except CurrencyModel.DoesNotExist:
self.symbol = DEFAULT_SYMBOL
request.session['currency_id'] = c_id
def get_symbol(self):
return Markup(self.symbol)
def get_price(self, price):
_price = int(price * self.exchange)
return Markup('{price} {code}'.format(price=_price, code=self.symbol))

@ -12,6 +12,7 @@ from main.models import ProductsUpdate
from .models import *
from store.alemtat import AlemTat
from store.cart import Cart, CartItem
from store.currency import Currency as _Currency
from django.contrib import messages
from store.forms import OrderForm, ProductFeedbackForm
from django.http import JsonResponse
@ -469,3 +470,15 @@ class CategorySitemap(Sitemap):
def items(self):
return Category.objects.all()
def set_currency(request, currency_code):
current_url = request.META.get('HTTP_REFERER', '/')
_currency = _Currency(request)
try:
current_currency = Currency.objects.get(ISO_letter_code=currency_code)
except Currency.DoesNotExist:
current_currency = Currency.objects.get(pk=1)
_currency.set_currency(current_currency.id, request)
return redirect(current_url)

Loading…
Cancel
Save