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 @@ Купить {{ product.title }} + 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