You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
400 lines
17 KiB
400 lines
17 KiB
{% extends "templates/lilcity/index.html" %}
|
|
{% load static %}
|
|
{% load data_liked from data_liked %}
|
|
{% load rupluralize from plural %}
|
|
{% block title %}{{ course.title }} - {{ block.super }}{% endblock title %}
|
|
{% comment %} seo tags {% endcomment %}
|
|
{% block description %}{{ course.short_description | striptags }}{% endblock description%}
|
|
{% block twurl %}{{ request.build_absolute_uri }}{% endblock twurl %}
|
|
{% block ogtitle %}{{ course.title }} - {{ block.super }}{% endblock ogtitle %}
|
|
{% block ogurl %}{{ request.build_absolute_uri }}{% endblock ogurl %}
|
|
|
|
{% block ogimage %}
|
|
http://{{request.META.HTTP_HOST}}{% if course.cover and course.cover.image %}{{ course.cover.image.url }}{% else %}{% static 'img/og_courses.jpg' %}{% endif %}
|
|
{% endblock ogimage %}
|
|
{% block ogimage-width %}
|
|
{% if course.cover and course.cover.image %}{{ course.cover.image.width }}{% else %}1024{% endif %}
|
|
{% endblock ogimage-width %}
|
|
{% block ogimage-height %}
|
|
{% if course.cover and course.cover.image %}{{ course.cover.image.height }}{% else %}512{% endif %}
|
|
{% endblock ogimage-height %}
|
|
|
|
|
|
{% block ogdescription %}{{ course.short_description | striptags }}{% endblock ogdescription %}
|
|
|
|
{% block content %}
|
|
<div class="section section_course section_border course">
|
|
<div class="section__center center center_sm">
|
|
<div class="go">
|
|
<a class="go__item" href="{% if next %}{{next}}{% else %}{% url 'courses' %}{% endif %}">
|
|
<div class="go__arrow">
|
|
<svg class="icon icon-arrow-left">
|
|
<use xlink:href="{% static 'img/sprite.svg' %}#icon-arrow-left"></use>
|
|
</svg>
|
|
</div>
|
|
<div class="go__title">Вернуться</div>
|
|
</a>
|
|
{% if has_full_access %}
|
|
<a class="btn btn_light-gray" href="{% url 'course_edit' course.id %}">Редактировать</a>
|
|
{% endif %}
|
|
{% if not is_owner and course.price %}
|
|
{% if not paid or can_buy_again %}
|
|
<div class="section__course-buttons">
|
|
<a href="#"
|
|
class="btn{% if pending %} btn_gray{% endif %}"
|
|
{% 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="btn btn_stroke-black" href="{% url 'gift-certificates' %}">Подарить другу</a>
|
|
{% endif %}
|
|
</div>
|
|
{% endif %}
|
|
{% endif %}
|
|
</div>
|
|
<div
|
|
class="course"
|
|
data-course data-course-id={{ course.id }}
|
|
data-likes-count={{ course.likes.count }}
|
|
{% if course.is_deferred_start %}data-future-course data-future-course-time={{ course.deferred_start_at.timestamp }}{% endif %}
|
|
>
|
|
<div class="course__head">
|
|
<div class="course__theme theme theme_green">{{ course.category.title | upper }}</div>
|
|
{% data_liked user course as liked %}
|
|
<a
|
|
class="course__likes likes{% if liked %} active{% endif %}"
|
|
{% if not user.is_authenticated %}data-popup=".js-popup-auth"{% endif %}
|
|
data-course-likes
|
|
{% if liked %} data-liked=1 {% else %} data-liked=0 {% endif %}
|
|
data-course-likes-count="{{ course.likes.count }}"
|
|
data-course-id="{{ course.id }}"
|
|
href="#"
|
|
>
|
|
<div class="likes__counter">{{ course.likes.count }}</div>
|
|
<div class="likes__icon">
|
|
<svg class="icon icon-like-bold">
|
|
<use xlink:href="{% static 'img/sprite.svg' %}#icon-like-bold"></use>
|
|
</svg>
|
|
<svg class="icon icon-like-fill-bold">
|
|
<use xlink:href="{% static 'img/sprite.svg' %}#icon-like-fill-bold"></use>
|
|
</svg>
|
|
</div>
|
|
</a>
|
|
</div>
|
|
<div class="course__title title">{{ course.title }}</div>
|
|
<div class="course__content">{{ course.short_description | safe | linebreaks }}</div>
|
|
<a href="{{ course.author.url }}">
|
|
<div class="course__user user">
|
|
{% if course.author.photo %}
|
|
<div class="user__ava ava">
|
|
<img class="ava__pic" src="{{ course.author.photo.url }}">
|
|
</div>
|
|
{% else %}
|
|
<div class="user__ava ava">
|
|
<img class="ava__pic" src="{% static 'img/user_default.jpg' %}">
|
|
</div>
|
|
{% endif %}
|
|
<div class="user__info">
|
|
<div class="user__name">{{ course.author.get_full_name }}</div>
|
|
</div>
|
|
</div>
|
|
</a>
|
|
<div class="course__metas">
|
|
<div class="course__meta meta">
|
|
{% if course.price %}
|
|
{% 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>
|
|
{% endif %}
|
|
<div class="meta__item">
|
|
<div class="meta__icon">
|
|
<svg class="icon icon-showcase">
|
|
<use xlink:href="{% static 'img/sprite.svg' %}#icon-showcase"></use>
|
|
</svg>
|
|
</div>
|
|
<div class="meta__title">{{ course.lessons.count | rupluralize:"урок,урока,уроков" }}</div>
|
|
</div>
|
|
{% if not request.user_agent.is_mobile %}
|
|
<div class="meta__item">
|
|
<div class="meta__icon">
|
|
<svg class="icon icon-video">
|
|
<use xlink:href="{% static 'img/sprite.svg' %}#icon-video"></use>
|
|
</svg>
|
|
</div>
|
|
<div class="meta__title">{{ course.count_videos_in_lessons }} видео</div>
|
|
</div>
|
|
{% endif %}
|
|
</div>
|
|
</div>
|
|
<div class="course__actions">
|
|
<a href="{{ course.url }}" class="course__action btn btn_lg{% if not only_lessons %} btn_stroke-green{% else %} btn_gray{% endif %}">Описание курса</a>
|
|
{% if request.user.is_authenticated %}
|
|
{% if course.author == request.user and request.user.role >= request.user.AUTHOR_ROLE %}
|
|
<a
|
|
href="{% url 'course-only-lessons' course.id %}"
|
|
class="course__action btn btn_lg{% if only_lessons %} btn_stroke-green{% else %} btn_gray{% endif %}"
|
|
{% if not user.is_authenticated %}data-popup=".js-popup-auth"{% endif %}
|
|
>УРОКИ
|
|
</a>
|
|
{% elif request.user.role == request.user.ADMIN_ROLE %}
|
|
<a
|
|
href="{% url 'course-only-lessons' course.id %}"
|
|
class="course__action btn btn_lg{% if only_lessons %} btn_stroke-green{% else %} btn_gray{% endif %}"
|
|
{% if not user.is_authenticated %}data-popup=".js-popup-auth"{% endif %}
|
|
>УРОКИ
|
|
</a>
|
|
{% else %}
|
|
<a
|
|
class="course__action btn btn_lg{% if only_lessons %} btn_stroke-green{% else %} btn_gray{% endif %}"
|
|
{% if paid or not course.price %}
|
|
href="{% url 'course-only-lessons' course.id %}"
|
|
{% else %}
|
|
data-course-buy
|
|
data-popup=".js-popup-course-buy"
|
|
data-course-lock="1"
|
|
href="#"
|
|
{% endif %}
|
|
>УРОКИ
|
|
{% if not paid and course.price %}
|
|
<svg class="icon icon-lock">
|
|
<use xlink:href="{% static 'img/sprite.svg' %}#icon-lock"></use>
|
|
</svg>
|
|
{% endif %}
|
|
</a>
|
|
{% endif %}
|
|
{% else %}
|
|
<a
|
|
class="course__action btn btn_lg{% if only_lessons %} btn_stroke-green{% else %} btn_gray{% endif %}"
|
|
data-popup=".js-popup-auth">УРОКИ
|
|
<svg class="icon icon-lock">
|
|
<use xlink:href="{% static 'img/sprite.svg' %}#icon-lock"></use>
|
|
</svg>
|
|
</a>
|
|
{% endif %}
|
|
</div>
|
|
<a class="course__video video" href="#">
|
|
{% if course.cover %}
|
|
<img class="video__pic" src="{{ course.cover.image.url }}"/>
|
|
{% else %}
|
|
|
|
{% endif %}
|
|
{% if course.is_deferred_start %}
|
|
<div class="video__soon">
|
|
<div class="video__title">Курс начнется:</div>
|
|
<div class="video__time" data-future>{{ course.deferred_start_at_humanize }}</div>
|
|
</div>
|
|
{% else %}
|
|
{% comment %} <svg class="icon icon-play">
|
|
<use xlink:href="{% static 'img/sprite.svg' %}#icon-play"></use>
|
|
</svg> {% endcomment %}
|
|
{% endif %}
|
|
</a>
|
|
{% include 'templates/blocks/share.html' %}
|
|
</div>
|
|
{% if course.from_author %}
|
|
<div class="author">
|
|
<div class="author__title title">От автора</div>
|
|
<div class="author__row">
|
|
{% if course.author.photo %}
|
|
<div class="author__ava ava">
|
|
<img class="ava__pic" src="{{ course.author.photo.url }}">
|
|
</div>
|
|
{% else %}
|
|
<div class="author__ava ava">
|
|
<img class="ava__pic" src="{% static 'img/user_default.jpg' %}">
|
|
</div>
|
|
{% endif %}
|
|
<div class="author__wrap">
|
|
<div class="author__hi">Привет всем!</div>
|
|
<div class="author__content">
|
|
{{ course.from_author }}
|
|
</div>
|
|
<a class="author__name" href="#">{{ course.author.get_full_name }}</a>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
{% endif %}
|
|
</div>
|
|
{% for content in course.content.all %}
|
|
|
|
{% with template="content/blocks/"|add:content.ctype|add:".html" %}
|
|
{% include template %}
|
|
{% endwith %}
|
|
|
|
{% endfor %}
|
|
|
|
{% if False %}
|
|
<div class="section section_gradient">
|
|
<div class="section__center center center_sm">
|
|
{% include "course/content/gallery.html" with results=True %}
|
|
</div>
|
|
</div>
|
|
{% endif %}
|
|
<div
|
|
class="course course_promo"
|
|
style="background-image: url({% if course.cover %}{{ course.cover.image.url }}{% else %}{% static 'img/no_cover.png' %}{% endif %});"
|
|
>
|
|
<div class="course__center center center_sm">
|
|
<div class="course__head">
|
|
<div class="course__theme theme theme_green">ПЕРСОНАЖИ</div>
|
|
<a class="course__likes likes{% if liked %} active{% endif %}"
|
|
{% if not user.is_authenticated %}data-popup=".js-popup-auth"{% endif %}
|
|
data-course-likes
|
|
{% if liked %}
|
|
data-liked=1
|
|
{% else %}
|
|
data-liked=0
|
|
{% endif %}
|
|
data-course-likes-count="{{ course.likes.count }}"
|
|
data-course-id="{{ course.id }}"
|
|
href="#">
|
|
<div class="likes__counter">{{ course.likes.count }}</div>
|
|
<div class="likes__icon">
|
|
<svg class="icon icon-like-bold">
|
|
<use xlink:href="{% static 'img/sprite.svg' %}#icon-like-bold"></use>
|
|
</svg>
|
|
<svg class="icon icon-like-fill-bold">
|
|
<use xlink:href="{% static 'img/sprite.svg' %}#icon-like-fill-bold"></use>
|
|
</svg>
|
|
</div>
|
|
</a>
|
|
</div>
|
|
<div class="course__title title">{{ course.title }}</div>
|
|
<div class="course__content">{{ course.short_description | safe | linebreaks }}</div>
|
|
<a href="{{ course.author.url }}">
|
|
<div class="course__user user user_white">
|
|
{% if course.author.photo %}
|
|
<div class="user__ava ava">
|
|
<img class="ava__pic" src="{{ course.author.photo.url }}">
|
|
</div>
|
|
{% else %}
|
|
<div class="user__ava ava">
|
|
<img class="ava__pic" src="{% static 'img/user_default.jpg' %}">
|
|
</div>
|
|
{% endif %}
|
|
<div class="user__info">
|
|
<div class="user__name">{{ course.author.get_full_name }}</div>
|
|
</div>
|
|
</div>
|
|
</a>
|
|
<div class="course__info">
|
|
<div class="course__meta meta meta_white">
|
|
{% if course.price %}
|
|
{% 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>
|
|
{% endif %}
|
|
</div>
|
|
{% if not is_owner and course.price %}
|
|
{% if not paid or can_buy_again %}
|
|
<div {% if request.user_agent.is_mobile %}style="margin-top: 20px;"{% endif %}>
|
|
<a href="#"
|
|
class="btn{% if pending %} btn_gray{% endif %}"
|
|
{% 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 %}
|
|
</div>
|
|
{% endif %}
|
|
{% endif %}
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="section section_gray">
|
|
<div class="section__center center center_sm">
|
|
<div class="title">{% if request.user.is_authenticated %}Задавайте вопросы:{% else %}Комментарии:{% endif %}</div>
|
|
<comments obj-type="course" obj-id="{{ course.id }}"></comments>
|
|
</div>
|
|
</div>
|
|
<div class="section">
|
|
<div class="section__center center center_sm">
|
|
{% include 'templates/blocks/share.html' %}
|
|
</div>
|
|
</div>
|
|
{% endblock content %}
|
|
|
|
{% block foot %}
|
|
{% include "templates/blocks/popup_course_buy.html" %}
|
|
<script type="text/javascript" src="{% static 'course.js' %}"></script>
|
|
{% endblock foot %}
|
|
|