-
-
Январь
-
Осталось 14 дней
-
-

-
-
+
+
+
+
+ Дата окончания:
+
{{ school_payment.date_end }}
-
-
-
- {% for course in course_items %}
-
-
Понедельник
-
Пластилиновая живопись.
-
-
Научимся смешивать цвета, получать красивые оттенки и создавать картины из пластилина разными техниками. Узнаем как хранить и ухаживать за такими работами.
-
-
- {% endfor %}
+
+
+
+
+ {% for school_schedule in school_schedules %}
+
+
{{ school_schedule }}
+
{{ school_schedule.title }}
+
+
{{ school_schedule.description }}
+
-
\ No newline at end of file
+ {% endfor %}
+
+
+{% endif %}
diff --git a/apps/payment/views.py b/apps/payment/views.py
index fbc6cba2..66b3fe03 100644
--- a/apps/payment/views.py
+++ b/apps/payment/views.py
@@ -129,8 +129,24 @@ class PaymentwallCallbackView(View):
payment.status = pingback.get_type()
payment.data = payment_raw_data
if pingback.is_deliverable() and product_type_name == 'school':
- payment.date_start = now()
- payment.date_end = now() + timedelta(days=30)
+ school_payment = SchoolPayment.objects.filter(
+ user=self.object,
+ date_start__lte=now(),
+ date_end__gt=now(),
+ status__in=[
+ Pingback.PINGBACK_TYPE_REGULAR,
+ Pingback.PINGBACK_TYPE_GOODWILL,
+ Pingback.PINGBACK_TYPE_RISK_REVIEWED_ACCEPTED,
+ ],
+ ).last()
+ if school_payment:
+ 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)
+ payment.date_start = date_start
+ payment.date_end = date_end
payment.save()
author_balance = getattr(payment, 'author_balance', None)
diff --git a/apps/user/views.py b/apps/user/views.py
index 6d959069..533d19ad 100644
--- a/apps/user/views.py
+++ b/apps/user/views.py
@@ -1,7 +1,10 @@
+import arrow
+
from io import BytesIO
from PIL import Image
from os.path import splitext
from datetime import timedelta
+from paymentwall import Pingback
from django.contrib.auth import login
from django.core.exceptions import ValidationError
@@ -18,8 +21,9 @@ from django.utils.timezone import now
from apps.auth.tokens import verification_email_token
from apps.course.models import Course
-from apps.payment.models import AuthorBalance, CoursePayment
from apps.notification.utils import send_email
+from apps.school.models import SchoolSchedule
+from apps.payment.models import AuthorBalance, CoursePayment, SchoolPayment
from .forms import UserEditForm, WithdrawalForm
@@ -52,8 +56,31 @@ class UserView(DetailView):
author=self.object, status=Course.DRAFT
)
context['paid'] = Course.objects.filter(
- payments__in=CoursePayment.objects.filter(user=self.object),
+ payments__in=CoursePayment.objects.filter(
+ user=self.object,
+ status__in=[
+ Pingback.PINGBACK_TYPE_REGULAR,
+ Pingback.PINGBACK_TYPE_GOODWILL,
+ Pingback.PINGBACK_TYPE_RISK_REVIEWED_ACCEPTED,
+ ],
+ ),
).distinct()
+ school_payment = SchoolPayment.objects.filter(
+ user=self.object,
+ date_start__lte=now(),
+ date_end__gt=now(),
+ status__in=[
+ Pingback.PINGBACK_TYPE_REGULAR,
+ Pingback.PINGBACK_TYPE_GOODWILL,
+ Pingback.PINGBACK_TYPE_RISK_REVIEWED_ACCEPTED,
+ ],
+ ).last()
+ context['school_payment'] = school_payment
+ if school_payment and school_payment.date_end:
+ context['school_days_left'] = (school_payment.date_end - now().date()).days
+ context['school_schedules'] = SchoolSchedule.objects.filter(
+ weekday__in=school_payment.weekdays if school_payment else [],
+ )
return context