Merge remote-tracking branch 'origin/dev' into dev

remotes/origin/hasaccess
Vitaly Baev 8 years ago
commit d7c4404dc3
  1. 18
      apps/auth/templates/auth/success-verification.html
  2. 1
      apps/auth/urls.py
  3. 9
      apps/auth/views.py
  4. 4
      apps/course/templates/course/_items.html
  5. 97
      apps/course/templates/course/course.html
  6. 4
      apps/course/templates/course/lesson.html
  7. 23
      project/templates/lilcity/index.html
  8. 40
      project/templates/lilcity/main.html

@ -0,0 +1,18 @@
{% extends "templates/lilcity/index.html" %}
{% block content %}
<div class="section">
<div class="section__center center center_xs">
<div class="done">
<div class="done__title title">Email подтверждён!</div>
<div class="done__content">
<p>Через несколько секунд Вас перенаправят на главную страницу.</p>
<p>Или нажмите кнопку ниже.</p>
</div>
<div class="done__foot">
<a class="done__btn btn btn_md btn_stroke" href="/">ПЕРЕЙТИ НА ГЛАВНУЮ</a>
</div>
</div>
</div>
</div>
{% endblock content %}

@ -7,6 +7,7 @@ urlpatterns = [
path('logout/', views.LogoutView.as_view(), name="logout"),
path('login/', views.LoginView.as_view(), name="login"),
path('verification-email/<slug:token>/', views.VerificationEmailView.as_view(), name="verification-email"),
path('success-verification-email/', views.SuccessVerificationEmailView.as_view(), name="success-verification-email"),
path('facebook_login/', views.FacebookLoginOrRegistration.as_view(), name="facebook_login"),
path('password_reset/', views.PasswordResetView.as_view(), name="password_reset"),

@ -9,7 +9,7 @@ from django.http import JsonResponse
from django.urls import reverse_lazy
from django.utils.decorators import method_decorator
from django.views.decorators.csrf import csrf_exempt
from django.views.generic import FormView, View
from django.views.generic import FormView, View, TemplateView
from django.views.generic.edit import BaseFormView
from django.shortcuts import redirect
@ -83,11 +83,16 @@ class VerificationEmailView(View):
if is_valid_token:
request.user.is_email_proved = True
request.user.save()
return JsonResponse({"success": True})
login(request, request.user)
return redirect(reverse_lazy('lilcity:success-verification-email'))
else:
return JsonResponse({"success": False}, status=400)
class SuccessVerificationEmailView(TemplateView):
template_name = 'auth/success-verification.html'
class PasswordResetView(views.PasswordContextMixin, BaseFormView):
email_template_name = "auth/password_reset.html"
subject_template_name = "auth/password_reset_subject.txt"

@ -42,7 +42,9 @@
{% endif %}
</a>
<div class="user__info">
<div class="user__name">{{ course.author.get_full_name }}</div>
<a href="{% url 'user' course.author.id %}">
<div class="user__name">{{ course.author.get_full_name }}</div>
</a>
<div class="user__meta">
<div class="user__date">{{ course.created_at_humanize }}</div>
{% data_liked user course as liked %}

@ -15,7 +15,14 @@
</div>
<div class="go__title">Вернуться</div>
</a>
<button class="go__btn btn btn_md" data-popup=".js-popup-buy">КУПИТЬ КУРС</button>
<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"
@ -48,23 +55,25 @@
</div>
<div class="course__title title">{{ course.title }}</div>
<div class="course__content">{{ course.short_description }}</div>
<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>
<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>
</div>
</a>
<div class="course__metas">
<div class="course__meta meta">
<div class="meta__item">
@ -113,7 +122,10 @@
</div>
<div class="course__actions">
<button class="course__action btn btn_lg btn_stroke">Описание курса</button>
<button class="course__action btn btn_lg btn_gray">УРОКИ
<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>
@ -183,6 +195,7 @@
</div>
{% endif %}
</div>
{% if user.is_authenticated %}
<div class="section">
<div class="section__center center center_sm">
<div class="lessons">
@ -238,6 +251,7 @@
</div>
</div>
</div>
{% endif %}
<div class="section section_gradient">
<div class="section__center center center_sm">
<div class="title">Галерея итогов обучения</div>
@ -309,23 +323,25 @@
</div>
<div class="course__title title">Как просто научиться рисовать простых персонажей.</div>
<div class="course__content">Этот курс поможет детям узнать о том как из простых форм создавать веселый и харизматичных персонажей.</div>
<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.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>
<a href="{% url 'user' course.author.id %}">
<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.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>
</div>
</a>
<div class="course__info">
<div class="course__meta meta meta_white">
<div class="meta__item">
@ -353,7 +369,14 @@
<div class="meta__title">{{ course.price|floatformat:"-2" }}₽</div>
</div>
</div>
<button class="course__buy btn btn_md" data-popup=".js-popup-buy">КУПИТЬ КУРС</button>
<button
class="course__buy btn btn_md"
{% if user.is_authenticated %}
data-popup=".js-popup-buy"
{% else %}
data-popup=".js-popup-auth"
{% endif %}
>КУПИТЬ КУРС</button>
</div>
</div>
</div>
@ -362,13 +385,13 @@
<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">
{% if user.is_authenticated %}
<div class="questions__reply-info">В ответ на
<a href="" class="questions__reply-anchor">этот комментарий</a>.
<a href="#" class="questions__reply-cancel grey-link">Отменить</a>
@ -377,11 +400,11 @@
<textarea class="questions__textarea" placeholder="Спросите автора курса интересующие вас вопросы"></textarea>
</div>
<button class="questions__btn btn btn_light">ОТПРАВИТЬ</button>
{% else %}
<div>Только зарегистрированные пользователи могут оставлять комментарии.</div>
{% endif %}
</div>
</form>
{% else %}
<div>Только зарегистрированные пользователи могут оставлять комментарии.</div>
{% endif %}
<div class="questions__list">
{% include "./blocks/comments.html" with object=course %}
</div>

@ -82,6 +82,7 @@
<div class="section__center center center_sm">
<div class="title">Задавайте вопросы:</div>
<div class="questions">
{% if user.is_authenticated %}
<div class="questions__form">
<div class="questions__ava ava">
<img class="ava__pic" src="{% static 'img/user.jpg' %}">
@ -93,6 +94,9 @@
<button class="questions__btn btn btn_light">ОТПРАВИТЬ</button>
</div>
</div>
{% else %}
<div>Только зарегистрированные пользователи могут оставлять комментарии.</div>
{% endif %}
<div class="questions__list">
{% include "./blocks/comments.html" with object=lesson %}
</div>

@ -85,9 +85,9 @@
<a class="header__link" data-scroll href="/#about">
<div class="header__title">О школе</div>
</a>
<a class="header__link" href="/">
{% comment %} <a class="header__link" href="/">
<div class="header__title">Процесс</div>
</a>
</a> {% endcomment %}
<a class="header__link" href="/#advantages">
<div class="header__title">Преимущества</div>
</a>
@ -97,21 +97,24 @@
<a class="header__link" href="/#gallery">
<div class="header__title">Галерея</div>
</a>
<a class="header__link" href="/#teachers">
<div class="header__title">Преподаватели</div>
</a>
<a class="header__link active" href="/#schedule">
<div class="header__title">Расписание</div>
</a>
<a class="header__link" href="/#teachers">
<div class="header__title">Преподаватели</div>
<a class="header__link" href="/#partners">
<div class="header__title">Партнеры</div>
</a>
<a class="header__link" href="/#">
{% comment %} <a class="header__link" href="/#">
<div class="header__title">Частые вопросы</div>
</a>
<a class="header__link" href="/#">
</a> {% endcomment %}
{% comment %} <a class="header__link" href="/#">
<div class="header__title">Оплата</div>
</a>
<a class="header__link" href="/#">
</a> {% endcomment %}
{% comment %} <a class="header__link" href="/#">
<div class="header__title">Контакты</div>
</a>
</a> {% endcomment %}
</div>
</div>
<div class="header__group"><a class="header__section header__section_sub js-header-section {% active_link 'courses' %}" href="{% url 'courses' %}">ВИДЕО-КУРСЫ</a>

@ -5,7 +5,7 @@
<div class="main" style="background-image: url({% static 'img/bg-1.jpg' %});">
<div class="main__center center">
<div class="main__title">Первая онлайн-школа креативного мышления для детей! 5+</div>
<a class="main__btn btn" href="#">КУПИТЬ ДОСУП ЗА 2000р. в мес.</a>
<a class="main__btn btn" href="#">КУПИТЬ ДОСТУП ОТ 2000р. в мес.</a>
</div>
</div>
<div class="section">
@ -418,6 +418,40 @@
</div>
</div>
</div>
<div class="schedule__item">
<div class="schedule__day">Суббота</div>
<div class="schedule__wrap">
<div class="schedule__title">Персонаж.</div>
<div class="schedule__content">Учимся создавать персонажей из простых форм. Изучаем характеры и эмоции.</div>
<div class="schedule__toggle toggle">
<button class="toggle__head js-toggle-head">Материалы
<svg class="icon icon-arrow-down">
<use xlink:href="{% static 'img/sprite.svg' %}#icon-arrow-down"></use>
</svg>
</button>
<div class="toggle__body">Cамое главное - иметь альбом или блокнот с пустыми страницами (без линий и клеток) плотной гладкой бумагой, формат
А4. Рисовать будем цветными карандашами, а также простым, мягкостью B2. Иногда пригодятся вырезки из журналов
и клей-карандаш.</div>
</div>
</div>
</div>
<div class="schedule__item">
<div class="schedule__day">Воскресенье</div>
<div class="schedule__wrap">
<div class="schedule__title">Персонаж.</div>
<div class="schedule__content">Учимся создавать персонажей из простых форм. Изучаем характеры и эмоции.</div>
<div class="schedule__toggle toggle">
<button class="toggle__head js-toggle-head">Материалы
<svg class="icon icon-arrow-down">
<use xlink:href="{% static 'img/sprite.svg' %}#icon-arrow-down"></use>
</svg>
</button>
<div class="toggle__body">Cамое главное - иметь альбом или блокнот с пустыми страницами (без линий и клеток) плотной гладкой бумагой, формат
А4. Рисовать будем цветными карандашами, а также простым, мягкостью B2. Иногда пригодятся вырезки из журналов
и клей-карандаш.</div>
</div>
</div>
</div>
</div>
<div class="text text_mb0">
<a href='#'>Распечатать расписание</a> чтобы не забыть</div>
@ -559,7 +593,9 @@
</div>
<div class="section">
<div class="section__center center">
<div class="title title_center">Наши партнеры</div>
<a id="partners" name="partners">
<div class="title title_center">Наши партнеры</div>
</a>
<div class="partners">
<a class="partners__item" href="#">
<img class="partners__pic" src="{% static 'img/box.jpg' %}">

Loading…
Cancel
Save