diff --git a/apps/course/migrations/0005_course_from_author.py b/apps/course/migrations/0005_course_from_author.py new file mode 100644 index 00000000..cd9d330d --- /dev/null +++ b/apps/course/migrations/0005_course_from_author.py @@ -0,0 +1,18 @@ +# Generated by Django 2.0.1 on 2018-01-29 09:44 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('course', '0004_auto_20180128_1311'), + ] + + operations = [ + migrations.AddField( + model_name='course', + name='from_author', + field=models.TextField(default='', verbose_name='От автора'), + ), + ] diff --git a/apps/course/models.py b/apps/course/models.py index 1074bdd7..7c7ba259 100644 --- a/apps/course/models.py +++ b/apps/course/models.py @@ -24,6 +24,7 @@ class Course(models.Model): author = models.ForeignKey(User, on_delete=models.SET_NULL, null=True, blank=True) title = models.CharField("Название курса", max_length=100) short_description = models.TextField("Краткое описание курса") + from_author = models.TextField("От автора", default='') cover = models.ImageField("Фон курса", upload_to='courses') price = models.DecimalField("Цена курса", help_text="Если цены нету, то курс бесплатный", max_digits=10, decimal_places=2, null=True, blank=True) is_infinite = models.BooleanField(default=False) diff --git a/apps/course/templates/course/_items.html b/apps/course/templates/course/_items.html index c6df667b..1caf270b 100644 --- a/apps/course/templates/course/_items.html +++ b/apps/course/templates/course/_items.html @@ -1,6 +1,6 @@ {% load static %}
- +
Подробнее
{% if course.is_featured %} @@ -24,25 +24,25 @@
{% if course.author.photo %}
- +
{% else %}
- +
{% endif %}
-
{{ course.author.first_name }} {{ course.author.last_name }}
+
{{ course.author.get_full_name }}
{{ course.created_at_humanize }}
diff --git a/apps/course/templates/course/course.html b/apps/course/templates/course/course.html new file mode 100644 index 00000000..c6202d1d --- /dev/null +++ b/apps/course/templates/course/course.html @@ -0,0 +1,270 @@ +{% extends "templates/lilcity/index.html" %} +{% load static %} + +{% block content %} +
+
+
+ +
+
Вернуться
+
+
+
+
{{ course.category.title | upper }}
+ +
+
{{ course.title }}
+
{{ course.short_description }}
+
+ {% if course.author.photo %} +
+ {% else %} +
+ {% endif %} +
+
{{ course.author.get_full_name }}
+
+
{{ course.created_at_humanize }}
+
+
+
+
+
+
+
+
12 часов
+
+
+
+
15 ноября
+
+
+
+
{{ course.price|floatformat:"-2" }}$
+
+
+
+
+
+
5 уроков
+
+
+
+
12 видео
+
+
+
+
+ +
+ {% if course.from_author %} +
+
От автора
+
+ {% if course.author.photo %} +
+ {% else %} +
+ {% endif %} +
+
Привет всем!
+
+ {{ course.from_author }} +
{{ course.author.get_full_name }}
+
+
+
+ {% endif %} +
+
+
+
+
Содержание курса
+
+
+
1 УРОК
+
+
+
Выбираем сюжет, с которым мы будем работать на курсе и главного героя вашей истории. С этим героем мы будем работать на протяжении всего курса.
+
+
+
+
2 УРОК
+
+
+
+

Выделяем основные черты внешности и характера вашего персонажа. Вам нужно будет ответить на несколько ключевых вопросов:


+

– Кто он и как он выглядит?

+

– Где и в какое время он живет?

+

– Какой его характерный признак?

+
+
+
+
+
1 УРОК
+
+
+
+

Собираем материал и экспериментируем с образом героя, используя полученный список характерных особенностей персонажа. По каждому признаку нужно будет собрать «референсы». Рисуем элементы образа в своем стиле.

+

Собираем из них нашего персонажа. Выбираем самые удачные элементы, объединяем их в одном наброске.

+
+
+
+
+
1 УРОК
+
+
+
+

Попробуем оживить персонажа. Выбираем 5 характерных действий для вашего героя и того сюжета, в котором он принимает участие, рисуем эскизы вашего персонажа в разных характерных для него позах и движении.

+

Выделяем 5 характерных эмоций для героя, над которым работаем. По эмоциям подбираем референсы и стилизуем их в своем стиле.

+
+
+
+
+
1 УРОК
+
+
+
Адаптируем вашего героя в соответствии с целевой аудиторией. Рассматриваем, как люди разных возрастов по разному воспринимают образы, героев и их эмоции. Выделяем 3 основные группы — дети, подростки и взрослые люди.
+
+
+
+
+
+
+
+
+
+
Материалы, которые понадобятся
+
+
+
+
+
Бумага акварельная
+
Этот курс поможет детям узнать о том как из простых форм создавать веселый и харизматичных персонажей.
+
+
+
+
+
+
Бумага акварельная
+
Этот курс поможет детям узнать о том как из простых форм создавать веселый и харизматичных персонажей.
+
+
+
+
+
+
+
+
Галерея итогов обучения
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
ПЕРСОНАЖИ
+ +
+
Как просто научиться рисовать простых персонажей.
+
Этот курс поможет детям узнать о том как из простых форм создавать веселый и харизматичных персонажей.
+
+ {% if course.author.photo %} +
+ {% else %} +
+ {% endif %} +
+
{{ course.author.get_full_name }}
+
+
{{ course.created_at_humanize }}
+
+
+
+
+
+
+
+
12 часов
+
+
+
+
15 ноября
+
+
+
+
{{ course.price|floatformat:"-2" }}$
+
+
+
+
+
+
+
Задавайте вопросы:
+
+
+
+
+
+
+
+
+
+
+
+
Богиня Недалекая16 Сен, 16:52
+
А можно ли заниматься если у меня нет интернета и компьютера. Можно ли запустить видео на моей микроволновке?
+
+
+
+
+
+
+
+
+
Богиня Недалекая16 Сен, 16:52
+
А можно ли заниматься если у меня нет интернета и компьютера. Можно ли запустить видео на моей микроволновке?
+
+
+
+
+
+
+
+
+
+
+ +
+
+{% endblock content %} diff --git a/apps/course/views.py b/apps/course/views.py index 21973429..0718d003 100644 --- a/apps/course/views.py +++ b/apps/course/views.py @@ -1,7 +1,7 @@ from django.contrib.auth.decorators import login_required from django.http import JsonResponse from django.template import loader -from django.views.generic import View, ListView +from django.views.generic import View, DetailView, ListView from django.views.decorators.csrf import csrf_exempt from django.views.decorators.http import require_http_methods from .models import Course, Like @@ -37,6 +37,12 @@ def likes(request, course_id): }) +class CourseView(DetailView): + model = Course + context_object_name = 'course' + template_name = 'course/course.html' + + class CoursesView(ListView): model = Course context_object_name = 'course_items' diff --git a/project/urls.py b/project/urls.py index c5f5b11a..8bf2d905 100644 --- a/project/urls.py +++ b/project/urls.py @@ -18,12 +18,13 @@ from django.urls import path, include from django.views.generic import TemplateView from django.conf import settings -from apps.course.views import CoursesView, likes +from apps.course.views import CoursesView, likes, CourseView urlpatterns = [ path('admin/', admin.site.urls), path('auth/', include(('apps.auth.urls', 'lilcity'))), path('courses/', CoursesView.as_view(), name='courses'), + path('course//', CourseView.as_view(), name='course'), path('course//like', likes, name='likes'), path('', TemplateView.as_view(template_name="templates/lilcity/main.html"), name='index'), ]