From 9920ef5713a86fc7559b3359ad37d6936dd5005a Mon Sep 17 00:00:00 2001 From: gzbender Date: Sun, 2 Sep 2018 21:28:48 +0500 Subject: [PATCH] LIL-650 --- apps/payment/models.py | 37 ++++++++++++++++++++----------------- 1 file changed, 20 insertions(+), 17 deletions(-) diff --git a/apps/payment/models.py b/apps/payment/models.py index 4645b68d..21e6171f 100644 --- a/apps/payment/models.py +++ b/apps/payment/models.py @@ -123,26 +123,29 @@ class Payment(PolymorphicModel): if course: price = course.price else: - school_payments = SchoolPayment.objects.filter( - user=user, - date_start__lte=now().date(), - date_end__gte=now().date(), - add_days=False, - status__in=[ - Pingback.PINGBACK_TYPE_REGULAR, - Pingback.PINGBACK_TYPE_GOODWILL, - Pingback.PINGBACK_TYPE_RISK_REVIEWED_ACCEPTED, - ], - ) - school_schedules_purchased = school_payments.annotate( - joined_weekdays=Func(F('weekdays'), function='unnest', ) - ).values_list('joined_weekdays', flat=True).distinct() - weekdays = set(map(int, weekdays)) - set(school_schedules_purchased) + if user: + school_payments = SchoolPayment.objects.filter( + user=user, + date_start__lte=now().date(), + date_end__gte=now().date(), + add_days=False, + status__in=[ + Pingback.PINGBACK_TYPE_REGULAR, + Pingback.PINGBACK_TYPE_GOODWILL, + Pingback.PINGBACK_TYPE_RISK_REVIEWED_ACCEPTED, + ], + ) + school_schedules_purchased = school_payments.annotate( + joined_weekdays=Func(F('weekdays'), function='unnest', ) + ).values_list('joined_weekdays', flat=True).distinct() + weekdays = set(map(int, weekdays)) - set(school_schedules_purchased) + prev_school_payment = school_payments.last() + add_days = bool(prev_school_payment) + else: + add_days = False school_schedules = SchoolSchedule.objects.filter( weekday__in=weekdays, ) - prev_school_payment = school_payments.last() - add_days = bool(prev_school_payment) if add_days: weekdays_count = weekdays_in_date_range(now().date(), prev_school_payment.date_end) all_weekdays_count = weekdays_in_date_range(prev_school_payment.date_start, prev_school_payment.date_end)