From 7d372f1ad3a9ba7bd58ae7131997fd47106108e3 Mon Sep 17 00:00:00 2001 From: Stepan Krapivin Date: Thu, 2 Nov 2017 15:20:43 +0500 Subject: [PATCH] exclude stopped dtys in DTYSBuyView --- dtys/models.py | 4 ++-- dtys/views.py | 15 +++++++++++++++ 2 files changed, 17 insertions(+), 2 deletions(-) diff --git a/dtys/models.py b/dtys/models.py index 7dfe218..9d7d694 100644 --- a/dtys/models.py +++ b/dtys/models.py @@ -20,7 +20,7 @@ class DTYSModel(models.Model): price_start = models.IntegerField(verbose_name="Начальная цена") price_end = models.IntegerField(verbose_name="Конечная цена (минимальная)") - price_stopped = models.IntegerField(default=0) + price_stopped = models.IntegerField(verbose_name="Прайс заказа", default=0) start_date = models.DateField(verbose_name='Дата начала') start_time = models.TimeField(verbose_name='Время начала') @@ -75,7 +75,7 @@ class DTYSModel(models.Model): """Stop this DTYS""" self.is_stopped = True - if not self.price_stopped: + if self.price_stopped == 0: self.price_stopped = max(self.price_end, self.get_current_price()) self.save() diff --git a/dtys/views.py b/dtys/views.py index 6920747..e2d7d39 100644 --- a/dtys/views.py +++ b/dtys/views.py @@ -62,6 +62,21 @@ class DTYSListView(ListView): class DTYSBuyView(DetailView): model = DTYSModel + def get_queryset(self, *args, **kwargs): + qs = super(DTYSBuyView, self).get_queryset(*args, **kwargs) + qs = qs.filter( + is_public=True, + start_date__lte=timezone.now().date(), + end_date__gte=timezone.now().date(), + start_time__lte=timezone.now().time(), + end_time__gte=timezone.now().time() + ) + + if qs.count() == 0: + raise Http404() + + return qs + def get(self, request, *args, **kwargs): obj = self.get_object()