сделать поле "продолжительность доступа" у курсов

remotes/origin/hotfix/users_in_admin_bonuses_9-02-19
gzbender 7 years ago
parent 9641c0deac
commit c8018451e4
  1. 81
      apps/course/templates/course/course.html
  2. 48
      apps/course/templates/course/course_only_lessons.html
  3. 5
      apps/payment/views.py
  4. 1
      web/src/components/CourseRedactor.vue

@ -126,7 +126,7 @@
<use xlink:href="{% static 'img/sprite.svg' %}#icon-time"></use> <use xlink:href="{% static 'img/sprite.svg' %}#icon-time"></use>
</svg> </svg>
</div> </div>
<div class="meta__title">{{ course.duration | rupluralize:"день,дня,дней" }}</div> <div class="meta__title">{{ course.access_duration | rupluralize:"день,дня,дней" }}</div>
</a> </a>
{% endif %} {% endif %}
<div class="meta__item" title="Цена{% if can_buy_again %} повторной покупки{% endif %}"> <div class="meta__item" title="Цена{% if can_buy_again %} повторной покупки{% endif %}">
@ -317,37 +317,64 @@
</a> </a>
<div class="course__info"> <div class="course__info">
<div class="course__meta meta meta_white"> <div class="course__meta meta meta_white">
<a class="meta__item" title="Продолжительность курса">
<div class="meta__icon">
<svg class="icon icon-time">
<use xlink:href="{% static 'img/sprite.svg' %}#icon-time"></use>
</svg>
</div>
<div class="meta__title">{{ course.duration | rupluralize:"день,дня,дней" }}</div>
</a>
{% if course.price %} {% if course.price %}
<div class="meta__item"> {% if paid %}
<div class="meta__icon"> <a class="meta__item" title="Осталось {{ access_duration | rupluralize:'день,дня,дней' }} доступа к курсу">
<svg class="icon icon-money"> <div class="meta__icon">
<use xlink:href="{% static 'img/sprite.svg' %}#icon-money"></use> <svg class="icon icon-time">
</svg> <use xlink:href="{% static 'img/sprite.svg' %}#icon-time"></use>
</svg>
</div>
<div class="meta__title">{{ access_duration | rupluralize:"день,дня,дней" }}</div>
</a>
{% else %}
<a class="meta__item" title="Продолжительность доступа к курсу">
<div class="meta__icon">
<svg class="icon icon-time">
<use xlink:href="{% static 'img/sprite.svg' %}#icon-time"></use>
</svg>
</div>
<div class="meta__title">{{ course.access_duration | rupluralize:"день,дня,дней" }}</div>
</a>
{% endif %}
<div class="meta__item" title="Цена{% if can_buy_again %} повторной покупки{% endif %}">
<div class="meta__icon">
<svg class="icon icon-money">
<use xlink:href="{% static 'img/sprite.svg' %}#icon-money"></use>
</svg>
</div>
<div class="meta__title">
{% if can_buy_again %}
<s>{{ course.price|floatformat:"-2" }}₽</s>
{% else %}
{% if course.old_price %}<s>{{ course.old_price|floatformat:"-2" }}₽</s>{% endif %}
{% endif %}
<span {% if can_buy_again or course.old_price %}style="color: red;"{% endif %}>{{ course_price|floatformat:"-2" }}₽</span>
</div>
</div> </div>
<div class="meta__title">{{ course.price|floatformat:"-2" }}₽</div>
</div>
{% endif %} {% endif %}
</div> </div>
{% if course.author != request.user and not paid and course.price %} {% if not is_owner and course.price %}
<a href="#" {% if not paid or can_buy_again %}
class="go__btn btn{% if pending %} btn_gray{% endif %} btn_md" <div>
{% if user.is_authenticated %} <a href="#"
{% if not pending %} class="btn{% if pending %} btn_gray{% endif %} btn_md"
data-course-buy {% if user.is_authenticated %}
data-popup=".js-popup-course-buy" {% if not pending %}
{% endif %} data-course-buy
{% else %} data-popup=".js-popup-course-buy"
data-popup=".js-popup-auth" {% endif %}
{% else %}
data-popup=".js-popup-auth"
{% endif %}
>{% if pending %}ОЖИДАЕТСЯ ПОДТВЕРЖДЕНИЕ ОПЛАТЫ{% else %}
{% if paid and can_buy_again %}ПРОДЛИТЬ ДОСТУП{% else %}КУПИТЬ КУРС{% endif %}
{% endif %}</a>
{% if not paid %}
<a class="main__btn btn btn_stroke-black" href="{% url 'gift-certificates' %}">Подарить другу</a>
{% endif %} {% endif %}
>{% if pending %}ОЖИДАЕТСЯ ПОДТВЕРЖДЕНИЕ ОПЛАТЫ{% else %}КУПИТЬ КУРС{% endif %}</a> </div>
{% endif %}
{% endif %} {% endif %}
</div> </div>
</div> </div>

@ -95,23 +95,41 @@
</a> </a>
<div class="course__metas"> <div class="course__metas">
<div class="course__meta meta"> <div class="course__meta meta">
<a class="meta__item" title="Продолжительность курса">
<div class="meta__icon">
<svg class="icon icon-time">
<use xlink:href="{% static 'img/sprite.svg' %}#icon-time"></use>
</svg>
</div>
<div class="meta__title">{{ course.duration | rupluralize:"день,дня,дней" }}</div>
</a>
{% if course.price %} {% if course.price %}
<div class="meta__item"> {% if paid %}
<div class="meta__icon"> <a class="meta__item" title="Осталось {{ access_duration | rupluralize:'день,дня,дней' }} доступа к курсу">
<svg class="icon icon-money"> <div class="meta__icon">
<use xlink:href="{% static 'img/sprite.svg' %}#icon-money"></use> <svg class="icon icon-time">
</svg> <use xlink:href="{% static 'img/sprite.svg' %}#icon-time"></use>
</svg>
</div>
<div class="meta__title">{{ access_duration | rupluralize:"день,дня,дней" }}</div>
</a>
{% else %}
<a class="meta__item" title="Продолжительность доступа к курсу">
<div class="meta__icon">
<svg class="icon icon-time">
<use xlink:href="{% static 'img/sprite.svg' %}#icon-time"></use>
</svg>
</div>
<div class="meta__title">{{ course.access_duration | rupluralize:"день,дня,дней" }}</div>
</a>
{% endif %}
<div class="meta__item" title="Цена{% if can_buy_again %} повторной покупки{% endif %}">
<div class="meta__icon">
<svg class="icon icon-money">
<use xlink:href="{% static 'img/sprite.svg' %}#icon-money"></use>
</svg>
</div>
<div class="meta__title">
{% if can_buy_again %}
<s>{{ course.price|floatformat:"-2" }}₽</s>
{% else %}
{% if course.old_price %}<s>{{ course.old_price|floatformat:"-2" }}₽</s>{% endif %}
{% endif %}
<span {% if can_buy_again or course.old_price %}style="color: red;"{% endif %}>{{ course_price|floatformat:"-2" }}₽</span>
</div>
</div> </div>
<div class="meta__title">{{ course.price|floatformat:"-2" }}₽</div>
</div>
{% endif %} {% endif %}
<div class="meta__item"> <div class="meta__item">
<div class="meta__icon"> <div class="meta__icon">

@ -69,8 +69,9 @@ class CourseBuyView(TemplateView):
return redirect(reverse_lazy('course', args=[course.id])) return redirect(reverse_lazy('course', args=[course.id]))
prev_payment = CoursePayment.objects.filter(user=request.user, course=course, prev_payment = CoursePayment.objects.filter(user=request.user, course=course,
status__in=Payment.PW_PAID_STATUSES).order_by('-access_expire').first() status__in=Payment.PW_PAID_STATUSES).order_by('-access_expire').first()
access_expire = prev_payment.access_expire + timedelta(days=course.access_duration) if prev_payment \ access_duration = course.access_duration or 90
else now().date() + timedelta(days=course.access_duration - 1) access_expire = prev_payment.access_expire + timedelta(days=access_duration) if prev_payment \
else now().date() + timedelta(days=access_duration - 1)
course_payment = CoursePayment.objects.create( course_payment = CoursePayment.objects.create(
user=request.user, user=request.user,
course=course, course=course,

@ -424,6 +424,7 @@
required required
}, },
access_duration: { access_duration: {
required: this.course.is_paid ? required : false,
numeric, numeric,
minValue: minValue(1) minValue: minValue(1)
}, },

Loading…
Cancel
Save