LIL-246. Lesson list

remotes/origin/hasaccess
Ivlev Denis 8 years ago
parent ccbc63ade0
commit ac572abc9a
  1. 36
      apps/course/templates/course/course.html
  2. 273
      apps/course/templates/course/course_only_lessons.html
  3. 7
      project/urls.py

@ -131,15 +131,25 @@
</div>
</div>
<div class="course__actions">
<button class="course__action btn btn_lg btn_stroke">Описание курса</button>
<a href="{% url 'course' course.id %}" class="course__action btn btn_lg btn_stroke">Описание курса</a>
{% if request.user.role == request.user.AUTHOR_ROLE or request.user.role == request.user.ADMIN_ROLE %}
<a href="{% url 'course-only-lessons' course.id %}"
class="course__action btn btn_lg btn_gray"
{% if not user.is_authenticated %}data-popup=".js-popup-auth"{% endif %}
>УРОКИ
{% comment %} <svg class="icon icon-lock">
<use xlink:href="{% static 'img/sprite.svg' %}#icon-lock"></use>
</svg> {% endcomment %}
</a>
{% else %}
<button
class="course__action btn btn_lg btn_gray"
{% if not user.is_authenticated %}data-popup=".js-popup-auth"{% endif %}
>УРОКИ
<svg class="icon icon-lock">
<use xlink:href="{% static 'img/sprite.svg' %}#icon-lock"></use>
</svg>
class="course__action btn btn_lg btn_gray"
>УРОКИ
<svg class="icon icon-lock">
<use xlink:href="{% static 'img/sprite.svg' %}#icon-lock"></use>
</svg>
</button>
{% endif %}
</div>
<a class="course__video video" href="#">
{% if course.cover %}
@ -231,7 +241,11 @@
<div class="lessons__title title">Содержание курса</div>
<div class="lessons__list">
{% for lesson in course.lessons.all %}
<a href="{% if request.user.role == request.user.AUTHOR_ROLE or request.user.role == request.user.ADMIN_ROLE %}{% url 'lesson' pk=lesson.id %}{% else %}#{% endif %}">
{% if request.user.role == request.user.AUTHOR_ROLE or request.user.role == request.user.ADMIN_ROLE %}
<a href="{% url 'lesson' pk=lesson.id %}">
{% else %}
<div>
{% endif %}
<div class="lessons__item">
<div class="lessons__subtitle subtitle">{{ lesson.title }}</div>
<div class="lessons__row">
@ -247,7 +261,11 @@
<div class="lessons__content">{{ lesson.short_description | safe }}</div>
</div>
</div>
</a>
{% if request.user.role == request.user.AUTHOR_ROLE or request.user.role == request.user.ADMIN_ROLE %}
<a href="{% url 'lesson' pk=lesson.id %}">
{% else %}
<div>
{% endif %}
{% endfor %}
</div>
{% comment %} <div class="lessons__load load">

@ -0,0 +1,273 @@
{% 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 }}{% 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 %}
{% if course.cover %}
{% block ogimage %}{{ request.build_absolute_uri }}{{ course.cover.url }}{% endblock ogimage %}
{% endif %}
{% block ogdescription %}{{ course.short_description }}{% endblock ogdescription %}
{% block content %}
<div class="section section_border">
<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>
<button
class="go__btn btn btn_md"
{% if user.is_authenticated %}
data-popup=".js-popup-buy"
{% else %}
data-popup=".js-popup-auth"
{% endif %}
>КУПИТЬ КУРС</button>
</div>
<div
class="course"
data-course data-course-id={{ course.id }}
data-likes-count={{ course.likes.count }}
>
<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 }}</div>
<a href="{% url 'user' course.author.id %}">
<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.jpg' %}">
</div>
{% endif %}
<div class="user__info">
<div class="user__name">{{ course.author.get_full_name }}</div>
<div class="user__meta">
<div class="user__date">{{ course.created_at_humanize }}</div>
</div>
</div>
</div>
</a>
<div class="course__metas">
<div class="course__meta meta">
<div class="meta__item">
<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>
</div>
<div class="meta__item">
<div class="meta__icon">
<svg class="icon icon-date">
<use xlink:href="{% static 'img/sprite.svg' %}#icon-date"></use>
</svg>
</div>
<div class="meta__title">{{ course.created_at | date:"d F Yг." }}</div>
</div>
<div class="meta__item">
<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">{{ course.price|floatformat:"-2" }}₽</div>
</div>
</div>
<div class="course__meta meta">
<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>
<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>
</div>
</div>
<div class="course__actions">
<a href="{% url 'course' course.id %}" class="course__action btn btn_lg btn_gray">Описание курса</a>
<a href="{% url 'course-only-lessons' course.id %}"
class="course__action btn btn_lg btn_stroke"
{% if not user.is_authenticated %}data-popup=".js-popup-auth"{% endif %}
>УРОКИ
{% comment %} <svg class="icon icon-lock">
<use xlink:href="{% static 'img/sprite.svg' %}#icon-lock"></use>
</svg> {% endcomment %}
</a>
</div>
</div>
</div>
{% if user.is_authenticated and course.lessons.exists %}
<div class="section">
<div class="section__center center center_sm">
<div class="lessons">
<div class="lessons__title title">Содержание курса</div>
<div class="lessons__list">
{% for lesson in course.lessons.all %}
<a href="{% if request.user.role == request.user.AUTHOR_ROLE or request.user.role == request.user.ADMIN_ROLE %}{% url 'lesson' pk=lesson.id %}{% else %}#{% endif %}">
<div class="lessons__item">
<div class="lessons__subtitle subtitle">{{ lesson.title }}</div>
<div class="lessons__row">
{% if lesson.cover %}
<div class="lessons__preview">
<img class="lessons__pic" src="{{ lesson.cover.url }}">
</div>
{% else %}
<div class="lessons__preview">
<img class="lessons__pic" src="{% static 'img/pic-3.jpg' %}">
</div>
{% endif %}
<div class="lessons__content">{{ lesson.short_description | safe }}</div>
</div>
</div>
</a>
{% endfor %}
</div>
{% comment %} <div class="lessons__load load">
<button class="load__btn btn">еще</button>
</div> {% endcomment %}
</div>
</div>
</div>
{% comment %} <div class="section">
<div class="section__center center center_sm">
<div class="title">Материалы, которые понадобятся</div>
<div class="materials">
{% for material in course.materials.all %}
<div class="materials__item">
{% if material.cover %}
<div class="materials__preview">
<img class="materials__pic" src="{{ material.cover.url }}">
</div>
{% else %}
<div class="materials__preview">
<img class="materials__pic" src="{% static 'img/pic-3.jpg' %}">
</div>
{% endif %}
<div class="materials__wrap">
<div class="materials__title">{{ material.title }}</div>
<div class="materials__content">{{ material.short_description }}</div>
</div>
</div>
{% endfor %}
</div>
</div>
</div> {% endcomment %}
{% endif %}
{% if course.gallery %}
<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="section section_gray">
<div class="section__center center center_sm">
<div class="title">Задавайте вопросы:</div>
<div class="questions">
{% if user.is_authenticated %}
<form class="questions__form" method="post" action="{% url 'coursecomment' course_id=course.id %}">
<input type="hidden" name="reply_id">
<div class="questions__ava ava">
<img class="ava__pic" src="{% static 'img/user.jpg' %}">
</div>
<div class="questions__wrap">
<div class="questions__reply-info">В ответ на
<a href="" class="questions__reply-anchor">этот комментарий</a>.
<a href="#" class="questions__reply-cancel grey-link">Отменить</a>
</div>
<div class="questions__field">
<textarea class="questions__textarea" placeholder="Спросите автора курса интересующие вас вопросы"></textarea>
</div>
<button class="questions__btn btn btn_light">ОТПРАВИТЬ</button>
</div>
</form>
{% else %}
<div>Только зарегистрированные пользователи могут оставлять комментарии.</div>
{% endif %}
<div class="questions__list">
{% include "./blocks/comments.html" with object=course %}
</div>
</div>
</div>
</div>
<div class="section">
<div class="section__center center center_sm">
<div class="share">
<div class="share__title">Поделиться курсом</div>
<div class="share__list likely">
<!--<a class="share__item vkontakte" href="#">-->
<!--<svg class="icon icon-share-facebook">-->
<!--<use xlink:href="{% static 'img/sprite.svg' %}#icon-share-vkontakte"></use>-->
<!--</svg>-->
<!--</a>-->
<a class="share__item facebook" href="#">
<svg class="icon icon-share-facebook">
<use xlink:href="{% static 'img/sprite.svg' %}#icon-share-facebook"></use>
</svg>
</a>
<a class="share__item twitter" href="#">
<svg class="icon icon-share-twitter">
<use xlink:href="{% static 'img/sprite.svg' %}#icon-share-twitter"></use>
</svg>
</a>
<a class="share__item gplus" href="#">
<svg class="icon icon-share-google">
<use xlink:href="{% static 'img/sprite.svg' %}#icon-share-google"></use>
</svg>
</a>
<a class="share__item pinterest" href="#">
<svg class="icon icon-share-pinterest">
<use xlink:href="{% static 'img/sprite.svg' %}#icon-share-pinterest"></use>
</svg>
</a>
</div>
</div>
</div>
</div>
{% endblock content %}

@ -34,12 +34,13 @@ urlpatterns = [
path('admin/', admin.site.urls),
path('auth/', include(('apps.auth.urls', 'lilcity'))),
path('courses/', CoursesView.as_view(), name='courses'),
path('course/<int:pk>/', CourseView.as_view(), name='course'),
path('course/<str:slug>/', CourseView.as_view(), name='course'),
path('course/<int:course_id>/like', likes, name='likes'),
path('course/create', CourseEditView.as_view(), name='course_create'),
path('course/on-moderation', CourseOnModerationView.as_view(), name='course-on-moderation'),
path('course/<int:pk>/', CourseView.as_view(), name='course'),
path('course/<str:slug>/', CourseView.as_view(), name='course'),
path('course/<int:pk>/edit', CourseEditView.as_view(), name='course_edit'),
path('course/<int:pk>/lessons', CourseView.as_view(template_name='course/course_only_lessons.html'), name='course-only-lessons'),
path('course/<int:course_id>/like', likes, name='likes'),
path('course/<int:course_id>/comment', coursecomment, name='coursecomment'),
path('lesson/<int:pk>/', LessonView.as_view(), name='lesson'),
path('lesson/<int:lesson_id>/comment', lessoncomment, name='lessoncomment'),

Loading…
Cancel
Save