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

@ -129,8 +129,24 @@ class PaymentwallCallbackView(View):
payment.status = pingback.get_type() payment.status = pingback.get_type()
payment.data = payment_raw_data payment.data = payment_raw_data
if pingback.is_deliverable() and product_type_name == 'school': if pingback.is_deliverable() and product_type_name == 'school':
payment.date_start = now() school_payment = SchoolPayment.objects.filter(
payment.date_end = now() + timedelta(days=30) 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() payment.save()
author_balance = getattr(payment, 'author_balance', None) author_balance = getattr(payment, 'author_balance', None)

@ -1,7 +1,10 @@
import arrow
from io import BytesIO from io import BytesIO
from PIL import Image from PIL import Image
from os.path import splitext from os.path import splitext
from datetime import timedelta from datetime import timedelta
from paymentwall import Pingback
from django.contrib.auth import login from django.contrib.auth import login
from django.core.exceptions import ValidationError 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.auth.tokens import verification_email_token
from apps.course.models import Course from apps.course.models import Course
from apps.payment.models import AuthorBalance, CoursePayment
from apps.notification.utils import send_email 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 from .forms import UserEditForm, WithdrawalForm
@ -52,8 +56,31 @@ class UserView(DetailView):
author=self.object, status=Course.DRAFT author=self.object, status=Course.DRAFT
) )
context['paid'] = Course.objects.filter( 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() ).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 return context

Loading…
Cancel
Save