Merge branch 'feature/course_access_duration_7-02-19' into 'master'

Feature/course access duration 7 02 19

See merge request lilschool/site!262
remotes/origin/hotfix/users_in_admin_bonuses_9-02-19
Danil 7 years ago
commit 98085a850d
  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>
</svg>
</div>
<div class="meta__title">{{ course.duration | rupluralize:"день,дня,дней" }}</div>
<div class="meta__title">{{ course.access_duration | rupluralize:"день,дня,дней" }}</div>
</a>
{% endif %}
<div class="meta__item" title="Цена{% if can_buy_again %} повторной покупки{% endif %}">
@ -317,37 +317,64 @@
</a>
<div class="course__info">
<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 %}
<div class="meta__item">
<div class="meta__icon">
<svg class="icon icon-money">
<use xlink:href="{% static 'img/sprite.svg' %}#icon-money"></use>
</svg>
{% if paid %}
<a class="meta__item" title="Осталось {{ access_duration | rupluralize:'день,дня,дней' }} доступа к курсу">
<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">{{ 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 class="meta__title">{{ course.price|floatformat:"-2" }}₽</div>
</div>
{% endif %}
</div>
{% if course.author != request.user and not paid and course.price %}
<a href="#"
class="go__btn btn{% if pending %} btn_gray{% endif %} btn_md"
{% if user.is_authenticated %}
{% if not pending %}
data-course-buy
data-popup=".js-popup-course-buy"
{% endif %}
{% else %}
data-popup=".js-popup-auth"
{% if not is_owner and course.price %}
{% if not paid or can_buy_again %}
<div>
<a href="#"
class="btn{% if pending %} btn_gray{% endif %} btn_md"
{% if user.is_authenticated %}
{% if not pending %}
data-course-buy
data-popup=".js-popup-course-buy"
{% 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 %}
>{% if pending %}ОЖИДАЕТСЯ ПОДТВЕРЖДЕНИЕ ОПЛАТЫ{% else %}КУПИТЬ КУРС{% endif %}</a>
</div>
{% endif %}
{% endif %}
</div>
</div>

@ -95,23 +95,41 @@
</a>
<div class="course__metas">
<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 %}
<div class="meta__item">
<div class="meta__icon">
<svg class="icon icon-money">
<use xlink:href="{% static 'img/sprite.svg' %}#icon-money"></use>
</svg>
{% if paid %}
<a class="meta__item" title="Осталось {{ access_duration | rupluralize:'день,дня,дней' }} доступа к курсу">
<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">{{ 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 class="meta__title">{{ course.price|floatformat:"-2" }}₽</div>
</div>
{% endif %}
<div class="meta__item">
<div class="meta__icon">

@ -69,8 +69,9 @@ class CourseBuyView(TemplateView):
return redirect(reverse_lazy('course', args=[course.id]))
prev_payment = CoursePayment.objects.filter(user=request.user, course=course,
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 \
else now().date() + timedelta(days=course.access_duration - 1)
access_duration = course.access_duration or 90
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(
user=request.user,
course=course,

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

Loading…
Cancel
Save