|
|
|
|
@ -87,18 +87,32 @@ class SchoolBuyView(TemplateView): |
|
|
|
|
host = urlsplit(self.request.META.get('HTTP_REFERER')) |
|
|
|
|
host = str(host[0]) + '://' + str(host[1]) |
|
|
|
|
weekdays = set(request.GET.getlist('weekdays', [])) |
|
|
|
|
add_days = 'add_days' in request.GET |
|
|
|
|
if not weekdays: |
|
|
|
|
messages.error(request, 'Выберите несколько дней недели.') |
|
|
|
|
return redirect('index') |
|
|
|
|
return redirect('school:school') |
|
|
|
|
try: |
|
|
|
|
weekdays = [int(weekday) for weekday in weekdays] |
|
|
|
|
except ValueError: |
|
|
|
|
messages.error(request, 'Ошибка выбора дней недели.') |
|
|
|
|
return redirect('index') |
|
|
|
|
school_payment = SchoolPayment.objects.create( |
|
|
|
|
user=request.user, |
|
|
|
|
weekdays=weekdays, |
|
|
|
|
) |
|
|
|
|
return redirect('school:school') |
|
|
|
|
if add_days: |
|
|
|
|
_school_payment = SchoolPayment.objects.get( |
|
|
|
|
user=request.user, |
|
|
|
|
date_start__lte=now().date(), |
|
|
|
|
date_end__gte=now().date(), |
|
|
|
|
add_days=False, |
|
|
|
|
) |
|
|
|
|
school_payment = SchoolPayment.objects.create( |
|
|
|
|
user=request.user, |
|
|
|
|
weekdays=weekdays, |
|
|
|
|
add_days=True, |
|
|
|
|
) |
|
|
|
|
else: |
|
|
|
|
school_payment = SchoolPayment.objects.create( |
|
|
|
|
user=request.user, |
|
|
|
|
weekdays=weekdays, |
|
|
|
|
) |
|
|
|
|
product = Product( |
|
|
|
|
f'school_{school_payment.id}', |
|
|
|
|
school_payment.amount, |
|
|
|
|
@ -166,8 +180,9 @@ class PaymentwallCallbackView(View): |
|
|
|
|
if product_type_name == 'school': |
|
|
|
|
school_payment = SchoolPayment.objects.filter( |
|
|
|
|
user=payment.user, |
|
|
|
|
date_start__lte=now(), |
|
|
|
|
date_end__gt=now(), |
|
|
|
|
add_days=False, |
|
|
|
|
date_start__lte=now().date(), |
|
|
|
|
date_end__gte=now().date(), |
|
|
|
|
status__in=[ |
|
|
|
|
Pingback.PINGBACK_TYPE_REGULAR, |
|
|
|
|
Pingback.PINGBACK_TYPE_GOODWILL, |
|
|
|
|
@ -175,8 +190,12 @@ class PaymentwallCallbackView(View): |
|
|
|
|
], |
|
|
|
|
).last() |
|
|
|
|
if school_payment: |
|
|
|
|
date_start = school_payment.date_end + timedelta(days=1) |
|
|
|
|
date_end = date_start + timedelta(days=30) |
|
|
|
|
if payment.add_days: |
|
|
|
|
date_start = now().date(), |
|
|
|
|
date_end = school_payment.date_end, |
|
|
|
|
else: |
|
|
|
|
date_start = school_payment.date_end + timedelta(days=1) |
|
|
|
|
date_end = date_start + timedelta(days=30) |
|
|
|
|
else: |
|
|
|
|
date_start = now() |
|
|
|
|
date_end = now() + timedelta(days=30) |
|
|
|
|
@ -197,6 +216,7 @@ class PaymentwallCallbackView(View): |
|
|
|
|
'amount': payment.amount, |
|
|
|
|
'status': payment.status, |
|
|
|
|
'weekdays': payment.weekdays, |
|
|
|
|
'add_days': payment.add_days, |
|
|
|
|
'date_start': payment.date_start, |
|
|
|
|
'date_end': payment.date_end, |
|
|
|
|
'created_at': payment.created_at, |
|
|
|
|
|