diff --git a/apps/school/views.py b/apps/school/views.py index bac97f5a..bdb3a848 100644 --- a/apps/school/views.py +++ b/apps/school/views.py @@ -63,30 +63,23 @@ class LiveLessonsDetailView(DetailView): template_name = 'school/livelesson_detail.html' def get(self, request, pk=None): - response = super().get(request, pk=pk) - # ??? где проверка? - #try: - # school_payment = SchoolPayment.objects.get( - # user=request.user, - # add_days=False, - # date_start__lte=now(), - # date_end__gte=now(), - # status__in=[ - # Pingback.PINGBACK_TYPE_REGULAR, - # Pingback.PINGBACK_TYPE_GOODWILL, - # Pingback.PINGBACK_TYPE_RISK_REVIEWED_ACCEPTED, - # ], - # ) - #except SchoolPayment.DoesNotExist: - # school_payment = None - #if request.user.role not in [User.ADMIN_ROLE, User.TEACHER_ROLE] and not ( - # request.user.role == User.USER_ROLE and - # school_payment and - # school_payment.is_deliverable() - #): - # raise Http404 - - return response + self.object = self.get_object() + is_purchased = SchoolPayment.objects.filter( + user=request.user, + date_start__lte=now(), + date_end__gte=now(), + status__in=[ + Pingback.PINGBACK_TYPE_REGULAR, + Pingback.PINGBACK_TYPE_GOODWILL, + Pingback.PINGBACK_TYPE_RISK_REVIEWED_ACCEPTED, + ], + weekdays__contains=[self.object.date.weekday() + 1], + ).exists() + if not is_purchased and request.user.role not in [User.ADMIN_ROLE, User.TEACHER_ROLE]: + raise Http404 + + context = self.get_context_data(object=self.object) + return self.render_to_response(context) @method_decorator([login_required, is_admin_or_teacher], name='dispatch')