Update school data in user profile

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

@ -1,16 +1,25 @@
{% 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> Дата окончания:
<p>{{ school_payment.date_end }}</p>
</div>
<div class="school__month__subtitle">Осталось: {{ school_days_left | rupluralize:"день,дня,дней" }}</div>
<div class="school__month__image"> <div class="school__month__image">
<img class="school__month__image__pic" src="/static/img/order.jpg"> <img class="school__month__image__pic" src="{% static 'img/order.jpg' %}">
</div> </div>
</div> </div>
</div> </div>
<div class="school__btn"> <div class="school__btn">
<a class="buy__btn btn btn_md" href="#" {% if user.is_authenticated %} <a
class="buy__btn btn btn_md"
href="#"
{% if user.is_authenticated %}
data-popup=".js-popup-buy" data-popup=".js-popup-buy"
{% else %} {% else %}
data-popup=".js-popup-auth" data-popup=".js-popup-auth"
@ -21,14 +30,15 @@
</div> </div>
</div> </div>
<div class="school__block school__list"> <div class="school__block school__list">
{% for course in course_items %} {% for school_schedule in school_schedules %}
<div class="school__item"> <div class="school__item">
<div class="school__title">Понедельник</div> <div class="school__title">{{ school_schedule }}</div>
<div class="school__subtitle">Пластилиновая живопись.</div> <div class="school__subtitle">{{ school_schedule.title }}</div>
<div class="school__content"> <div class="school__content">
<p>Научимся смешивать цвета, получать красивые оттенки и создавать картины из пластилина разными техниками. Узнаем как хранить и ухаживать за такими работами.</p> <p>{{ school_schedule.description }}</p>
</div> </div>
</div> </div>
{% endfor %} {% endfor %}
</div> </div>
</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