add dtys.tasks

master
Stepan Krapivin 8 years ago
parent 0d8a608da0
commit 4aa8633aae
  1. 3
      batiskaf/settings.py
  2. 2
      batiskaf/templates/jinja2/includes/dtys_product_thumb.jinja
  3. 10
      dtys/README.md
  4. 10
      dtys/tasks.py
  5. 11
      dtys/views.py
  6. 1
      requirements.txt

@ -290,3 +290,6 @@ DPD_ID = '1122000140'
DPD_KEY = '0599EDC793B39FA6C098C3A8A7B5C603BBD3BE56'
DPD_DEV_SERVER = 'http://wstest.dpd.ru'
DPD_SERVER = 'http://ws.dpd.ru'
RESUME_DTYS_DELAY_SECONDS = 60 * 3

@ -6,7 +6,7 @@
<a>
<img src="/static/{{ im.url|watermark('medium-photo') }}"
class="img-responsive" alt="Купить {{ product.title }}"
title="Купить {{ product.title }}" width="210" height="210"></a>
title="Купить {{ product.title }}" width="210" height="210">
</a>
<div class="caption">

@ -0,0 +1,10 @@
DTYS
Для возврата незаказанного товара нужно чтобы работал celery
Его нужно запустить со следующими параметрами:
celery -A dtys.tasks worker --loglevel=info
Выбранный (остановленный) товар возвращается на страницу после некоторого
количества секунд, указанного в settings.RESUME_DTYS_DELAY_SECONDS

@ -0,0 +1,10 @@
from celery import Celery
app = Celery('tasks', broker='redis://localhost:6379/0')
@app.task
def return_dtys(dtys_id):
from .models import DTYSModel
DTYSModel.objects.filter(id=dtys_id).update(is_stopped=False)

@ -1,4 +1,4 @@
from django.core.cache import cache
from django.conf import settings
from django.http import (
Http404,
HttpResponse,
@ -84,12 +84,14 @@ class DTYSBuyView(DetailView):
if obj.is_public and not obj.is_stopped:
from store.cart import Cart, CartItem
# from store.models import ProductVariation
from store.models import ProductVariation
from .tasks import return_dtys
# stop DTYS for this product
obj.stop()
# Let's copy obj.product
ProductVariation.objects.filter(id=obj.product.id)\
.update(price=obj.price_stopped)
obj.product.price = int(obj.price_stopped)
obj.product.save()
@ -98,6 +100,9 @@ class DTYSBuyView(DetailView):
cart.add_item(CartItem(obj.product, 1))
return_dtys.apply_async(
(obj.id, ), countdown=settings.RESUME_DTYS_DELAY_SECONDS)
return HttpResponseRedirect('/store/cart/')
return HttpResponseRedirect('/dtys/')

@ -1,6 +1,7 @@
awesome-slugify==1.6.5
cffi==1.1.2
cryptography==0.9.3
celery==4.1.0
Django==1.9.3
django-jinja==1.4.1
django-jinja-bootstrap-form==4.0.3

Loading…
Cancel
Save