diff --git a/batiskaf/settings.py b/batiskaf/settings.py
index 31b7196..3d021c6 100644
--- a/batiskaf/settings.py
+++ b/batiskaf/settings.py
@@ -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
diff --git a/batiskaf/templates/jinja2/includes/dtys_product_thumb.jinja b/batiskaf/templates/jinja2/includes/dtys_product_thumb.jinja
index db46a39..da741af 100644
--- a/batiskaf/templates/jinja2/includes/dtys_product_thumb.jinja
+++ b/batiskaf/templates/jinja2/includes/dtys_product_thumb.jinja
@@ -6,7 +6,7 @@
+ title="Купить {{ product.title }}" width="210" height="210">
diff --git a/dtys/README.md b/dtys/README.md
new file mode 100644
index 0000000..b818fa8
--- /dev/null
+++ b/dtys/README.md
@@ -0,0 +1,10 @@
+DTYS
+
+Для возврата незаказанного товара нужно чтобы работал celery
+Его нужно запустить со следующими параметрами:
+
+celery -A dtys.tasks worker --loglevel=info
+
+
+Выбранный (остановленный) товар возвращается на страницу после некоторого
+количества секунд, указанного в settings.RESUME_DTYS_DELAY_SECONDS
diff --git a/dtys/tasks.py b/dtys/tasks.py
new file mode 100644
index 0000000..0e3479d
--- /dev/null
+++ b/dtys/tasks.py
@@ -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)
diff --git a/dtys/views.py b/dtys/views.py
index e2d7d39..12eb478 100644
--- a/dtys/views.py
+++ b/dtys/views.py
@@ -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/')
diff --git a/requirements.txt b/requirements.txt
index 95f8501..56070b9 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -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
@@ -33,4 +34,4 @@ virtualenvwrapper==4.6.0
wcwidth==0.1.4
wheel==0.24.0
xmljson==0.1.5
-django-resized==0.3.5
\ No newline at end of file
+django-resized==0.3.5