Update school data in user profile

remotes/origin/hasaccess
Ivlev Denis 8 years ago
parent 052ac0fb0e
commit 3c1242cbb8
  1. 68
      apps/course/templates/course/school.html
  2. 20
      apps/payment/views.py
  3. 31
      apps/user/views.py

@ -1,34 +1,44 @@
{% load static %}
{% load rupluralize from plural %}
{% if school_payment %}
<div class="school__page">
<div class="school__block">
<div class="school__month">
<div class="school__month__wrap">
<div class="school__month__title">Январь</div>
<div class="school__month__subtitle">Осталось 14 дней</div>
<div class="school__month__image">
<img class="school__month__image__pic" src="/static/img/order.jpg">
</div>
</div>
<div class="school__block">
<div class="school__month">
<div class="school__month__wrap">
<div class="school__month__title">
Дата окончания:
<p>{{ school_payment.date_end }}</p>
</div>
<div class="school__btn">
<a class="buy__btn btn btn_md" href="#" {% if user.is_authenticated %}
data-popup=".js-popup-buy"
{% else %}
data-popup=".js-popup-auth"
{% endif %}>ПРОДЛИТЬ ШКОЛУ</a>
</div>
<div class="school__btn__prev">
<a class="school__prev__btn btn" href="#">ПОСМОТРЕТЬ ПРЕДЫДУЩИЕ УРОКИ</a>
<div class="school__month__subtitle">Осталось: {{ school_days_left | rupluralize:"день,дня,дней" }}</div>
<div class="school__month__image">
<img class="school__month__image__pic" src="{% static 'img/order.jpg' %}">
</div>
</div>
</div>
<div class="school__block school__list">
{% for course in course_items %}
<div class="school__item">
<div class="school__title">Понедельник</div>
<div class="school__subtitle">Пластилиновая живопись.</div>
<div class="school__content">
<p>Научимся смешивать цвета, получать красивые оттенки и создавать картины из пластилина разными техниками. Узнаем как хранить и ухаживать за такими работами.</p>
</div>
</div>
{% endfor %}
<div class="school__btn">
<a
class="buy__btn btn btn_md"
href="#"
{% if user.is_authenticated %}
data-popup=".js-popup-buy"
{% else %}
data-popup=".js-popup-auth"
{% endif %}>ПРОДЛИТЬ ШКОЛУ</a>
</div>
<div class="school__btn__prev">
<a class="school__prev__btn btn" href="#">ПОСМОТРЕТЬ ПРЕДЫДУЩИЕ УРОКИ</a>
</div>
</div>
<div class="school__block school__list">
{% for school_schedule in school_schedules %}
<div class="school__item">
<div class="school__title">{{ school_schedule }}</div>
<div class="school__subtitle">{{ school_schedule.title }}</div>
<div class="school__content">
<p>{{ school_schedule.description }}</p>
</div>
</div>
</div>
{% endfor %}
</div>
</div>
{% endif %}

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

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

Loading…
Cancel
Save