|
|
|
|
@ -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) |
|
|
|
|
|