LIL-94 Added model "Course"

remotes/origin/hasaccess
Sergey G 8 years ago
parent 62a8ad7e8b
commit 475cebbd8f
  1. 0
      apps/course/__init__.py
  2. 8
      apps/course/admin.py
  3. 6
      apps/course/apps.py
  4. 0
      apps/course/migrations/__init__.py
  5. 25
      apps/course/models.py
  6. 3
      apps/course/tests.py
  7. 9
      apps/course/views.py
  8. 1
      project/settings.py
  9. 42
      project/templates/lilcity/_courses_item.html
  10. 266
      project/templates/lilcity/courses.html
  11. 27
      project/templates/lilcity/index.html
  12. 9
      project/urls.py

@ -0,0 +1,8 @@
from django.contrib import admin
from .models import Course
@admin.register(Course)
class CourseAdmin(admin.ModelAdmin):
pass

@ -0,0 +1,6 @@
from django.apps import AppConfig
class CourseConfig(AppConfig):
name = 'apps.course'
label = 'lilcity_course'

@ -0,0 +1,25 @@
from django.db import models
class Course(models.Model):
title = models.CharField("Название курса", max_length=100)
short_description = models.TextField("Краткое описание курса")
background = models.ImageField("Фон курса", upload_to='courses')
price = models.DecimalField("Цена курса", help_text="Если цены нету, то курс бесплатный", max_digits=10, decimal_places=2, null=True, blank=True)
is_highlighted = models.BooleanField(default=False)
deferred_start = models.DateTimeField("Отложенный запуск курса", help_text="Заполнить если курс отложенный", null=True, blank=True)
# created_at
# update_at
# category
def is_free(self):
if self.price:
return False
return True
class Meta:
verbose_name = "Курс"
verbose_name_plural = "Курсы"

@ -0,0 +1,3 @@
from django.test import TestCase
# Create your tests here.

@ -0,0 +1,9 @@
from django.views.generic import ListView
from .models import Course
class CoursesView(ListView):
model = Course
context_object_name = "course_items"
template_name = "templates/lilcity/courses.html"

@ -44,6 +44,7 @@ INSTALLED_APPS = [
'apps.user',
'apps.notification',
'apps.payment',
'apps.course',
]
MIDDLEWARE = [

@ -0,0 +1,42 @@
{% load static %}
<div class="courses__item"><a class="courses__preview" href="#"><img class="courses__pic" src="{% get_media_prefix %}{{ course.background }}"/>
<div class="courses__view">Подробнее</div>
{% if course.is_highlighted %}
<div class="courses__label courses__label_fav"></div>
{% endif %}
{% if course.deferred_start %}
<div class="courses__soon">
<div class="courses__left">До запуска курса осталось:</div>
<div class="courses__time">16 часов 13 минут</div>
</div>
<div class="courses__label courses__label_clock"></div>
{% endif %}
</a>
<div class="courses__details"><a class="courses__theme theme" href="#">АНИМАЦИЯ</a>
<div class="courses__price">30$</div>
</div>
<a class="courses__title" href="#">{{ course.title }}</a>
<div class="courses__content">{{ course.short_description }}
</div>
<div class="courses__user user">
<div class="user__ava ava"><img class="ava__pic" src={% static "img/user.jpg" %}/></div>
<div class="user__info">
<div class="user__name">Александра Неимоверноумная</div>
<div class="user__meta">
<div class="user__date">SEPT 12, 2017</div>
<a class="user__likes likes" href="#">
<div class="likes__counter">253</div>
<div class="likes__icon">
<svg class="icon icon-like">
<use xlink:href="{% get_static_prefix %}img/sprite.svg#icon-like"></use>
</svg>
<svg class="icon icon-like-fill">
<use xlink:href="{% get_static_prefix %}img/sprite.svg#icon-like-fill"></use>
</svg>
</div>
</a>
</div>
</div>
</div>
</div>

@ -0,0 +1,266 @@
{% extends "templates/lilcity/index.html" %}
{% load static %}
{% block content %}
<div class="main" style="background-image: url({% static "img/bg-1.jpg" %});">
<div class="main__center center">
<div class="main__title">Онлайн-курсы LilCity</div>
</div>
</div>
<div class="section">
<div class="section__center center">
<div class="text text_lg">
<p>Учите и развивайте креативное мышление когда и где угодно. Если вам не совсем удобно заниматься с нами в прямом эфире каждый день как в
нашей онлайн-школе, специально для вас мы делаем отдельные уроки в записи, которые вы можете проходить
когда вам будем удобно.</p><img class="text__curve text__curve_four" src={% static "img/curve-4.svg" %} width="155"></div>
<div class="head">
<div class="head__title title title_center">Курсы</div>
<div class="head__right">
<div class="head__field field">
<div class="field__wrap">
<div class="field__select select js-select">
<div class="select__head js-select-head">Категории</div>
<div class="select__drop js-select-drop">
<div class="select__option js-select-option">
<div class="select__title">Персонаж</div>
</div>
<div class="select__option js-select-option">
<div class="select__title">Акварель</div>
</div>
<div class="select__option js-select-option">
<div class="select__title">Иллюстрация</div>
</div>
<div class="select__option js-select-option">
<div class="select__title">Анимация</div>
</div>
<div class="select__option js-select-option">
<div class="select__title">Пастель</div>
</div>
<div class="select__option js-select-option">
<div class="select__title">Пластилин</div>
</div>
<div class="select__option js-select-option">
<div class="select__title">Креативное мышление</div>
</div>
<div class="select__option js-select-option">
<div class="select__title">Моторика</div>
</div>
<div class="select__option js-select-option">
<div class="select__title">Живопись</div>
</div>
</div>
<input class="select__input" type="hidden"></div>
</div>
</div>
</div>
</div>
<div class="courses">
<div class="courses__list">
{% for course in course_items %}
{% include "templates/lilcity/_courses_item.html" %}
{% endfor %}
<div class="courses__item"><a class="courses__preview" href="#"><img class="courses__pic" src={% static "img/pic-1.jpg" %}/>
<div class="courses__view">Подробнее</div>
<div class="courses__label courses__label_fav"></div>
</a>
<div class="courses__details"><a class="courses__theme theme" href="#">АНИМАЦИЯ</a>
<div class="courses__price">30$</div>
</div>
<a class="courses__title" href="#">Базовый курс для детей по основам иллюстрации</a>
<div class="courses__content">Этот курс поможет детям узнать о том как из простых форм создавать веселый и харизматичных персонажей.
</div>
<div class="courses__user user">
<div class="user__ava ava"><img class="ava__pic" src={% static "img/user.jpg" %}/></div>
<div class="user__info">
<div class="user__name">Александра Неимоверноумная</div>
<div class="user__meta">
<div class="user__date">SEPT 12, 2017</div>
<a class="user__likes likes" href="#">
<div class="likes__counter">253</div>
<div class="likes__icon">
<svg class="icon icon-like">
<use xlink:href={% static "img/sprite.svg#icon-like" %}></use>
</svg>
<svg class="icon icon-like-fill">
<use xlink:href={% static "img/sprite.svg#icon-like-fill" %}></use>
</svg>
</div>
</a>
</div>
</div>
</div>
</div>
<div class="courses__item"><a class="courses__preview" href="#"><img class="courses__pic" src={% static "img/pic-1.jpg" %}/>
<div class="courses__view">Подробнее</div>
<div class="courses__soon">
<div class="courses__left">До запуска курса осталось:</div>
<div class="courses__time">16 часов 13 минут</div>
</div>
<div class="courses__label courses__label_clock"></div>
</a>
<div
class="courses__details"><a class="courses__theme theme theme_green" href="#">АНИМАЦИЯ</a>
<div class="courses__price">30$</div>
</div>
<a class="courses__title" href="#">Базовый курс для детей по основам иллюстрации</a>
<div class="courses__content">Этот курс поможет детям узнать о том как из простых форм создавать веселый и харизматичных персонажей.
</div>
<div class="courses__user user">
<div class="user__ava ava"><img class="ava__pic" src={% static "img/user.jpg" %}/></div>
<div class="user__info">
<div class="user__name">Александра Неимоверноумная</div>
<div class="user__meta">
<div class="user__date">SEPT 12, 2017</div>
<a class="user__likes likes" href="#">
<div class="likes__counter">253</div>
<div class="likes__icon">
<svg class="icon icon-like">
<use xlink:href="img/sprite.svg#icon-like"></use>
</svg>
<svg class="icon icon-like-fill">
<use xlink:href="img/sprite.svg#icon-like-fill"></use>
</svg>
</div>
</a>
</div>
</div>
</div>
</div>
<div class="courses__item"><a class="courses__preview" href="#"><img class="courses__pic" src={% static "img/pic-1.jpg" %}/>
<div class="courses__view">Подробнее</div>
</a>
<div class="courses__details"><a class="courses__theme theme theme_violet" href="#">АНИМАЦИЯ</a>
<div class="courses__price">30$</div>
</div>
<a class="courses__title" href="#">Базовый курс для детей по основам иллюстрации</a>
<div class="courses__content">Этот курс поможет детям узнать о том как из простых форм создавать веселый и харизматичных персонажей.
</div>
<div class="courses__user user">
<div class="user__ava ava"><img class="ava__pic" src={% static "img/user.jpg" %}/></div>
<div class="user__info">
<div class="user__name">Александра Неимоверноумная</div>
<div class="user__meta">
<div class="user__date">SEPT 12, 2017</div>
<a class="user__likes likes" href="#">
<div class="likes__counter">253</div>
<div class="likes__icon">
<svg class="icon icon-like">
<use xlink:href="img/sprite.svg#icon-like"></use>
</svg>
<svg class="icon icon-like-fill">
<use xlink:href="img/sprite.svg#icon-like-fill"></use>
</svg>
</div>
</a>
</div>
</div>
</div>
</div>
<div class="courses__item"><a class="courses__preview" href="#"><img class="courses__pic" src={% static "img/pic-1.jpg" %}/>
<div class="courses__view">Подробнее</div>
</a>
<div class="courses__details"><a class="courses__theme theme" href="#">АНИМАЦИЯ</a>
<div class="courses__price">30$</div>
</div>
<a class="courses__title" href="#">Базовый курс для детей по основам иллюстрации</a>
<div class="courses__content">Этот курс поможет детям узнать о том как из простых форм создавать веселый и харизматичных персонажей.
</div>
<div class="courses__user user">
<div class="user__ava ava"><img class="ava__pic" src={% static "img/user.jpg" %}/></div>
<div class="user__info">
<div class="user__name">Александра Неимоверноумная</div>
<div class="user__meta">
<div class="user__date">SEPT 12, 2017</div>
<a class="user__likes likes" href="#">
<div class="likes__counter">253</div>
<div class="likes__icon">
<svg class="icon icon-like">
<use xlink:href="img/sprite.svg#icon-like"></use>
</svg>
<svg class="icon icon-like-fill">
<use xlink:href="img/sprite.svg#icon-like-fill"></use>
</svg>
</div>
</a>
</div>
</div>
</div>
</div>
<div class="courses__item"><a class="courses__preview" href="#"><img class="courses__pic" src={% static "img/pic-1.jpg" %}/>
<div class="courses__view">Подробнее</div>
</a>
<div class="courses__details"><a class="courses__theme theme theme_green" href="#">АНИМАЦИЯ</a>
<div class="courses__price">30$</div>
</div>
<a class="courses__title" href="#">Базовый курс для детей по основам иллюстрации</a>
<div class="courses__content">Этот курс поможет детям узнать о том как из простых форм создавать веселый и харизматичных персонажей.
</div>
<div class="courses__user user">
<div class="user__ava ava"><img class="ava__pic" src={% static "img/user.jpg" %}/></div>
<div class="user__info">
<div class="user__name">Александра Неимоверноумная</div>
<div class="user__meta">
<div class="user__date">SEPT 12, 2017</div>
<a class="user__likes likes" href="#">
<div class="likes__counter">253</div>
<div class="likes__icon">
<svg class="icon icon-like">
<use xlink:href="img/sprite.svg#icon-like"></use>
</svg>
<svg class="icon icon-like-fill">
<use xlink:href="img/sprite.svg#icon-like-fill"></use>
</svg>
</div>
</a>
</div>
</div>
</div>
</div>
<div class="courses__item"><a class="courses__preview" href="#"><img class="courses__pic" src={% static "img/pic-1.jpg" %}/>
<div class="courses__view">Подробнее</div>
</a>
<div class="courses__details"><a class="courses__theme theme theme_violet" href="#">АНИМАЦИЯ</a>
<div class="courses__price">30$</div>
</div>
<a class="courses__title" href="#">Базовый курс для детей по основам иллюстрации</a>
<div class="courses__content">Этот курс поможет детям узнать о том как из простых форм создавать веселый и харизматичных персонажей.
</div>
<div class="courses__user user">
<div class="user__ava ava"><img class="ava__pic" src={% static "img/user.jpg" %}/></div>
<div class="user__info">
<div class="user__name">Александра Неимоверноумная</div>
<div class="user__meta">
<div class="user__date">SEPT 12, 2017</div>
<a class="user__likes likes" href="#">
<div class="likes__counter">253</div>
<div class="likes__icon">
<svg class="icon icon-like">
<use xlink:href={% static "img/sprite.svg#icon-like" %}></use>
</svg>
<svg class="icon icon-like-fill">
<use xlink:href={% static "img/sprite.svg#icon-like-fill" %}></use>
</svg>
</div>
</a>
</div>
</div>
</div>
</div>
</div>
<div class="courses__load load">
<button class="load__btn btn">Подгрузить еще</button>
</div>
</div>
</div>
</div>
<div class="game">
<div class="game__center center">
<div class="game__wrap">
<div class="game__theme">LILCITY</div>
<div class="game__title">Приложения, развивающие игры и интерактивные книги от Lil City.</div>
<a class="game__btn btn btn_dark" href="#">УЗНАТЬ БОЛЬШЕ</a></div>
</div>
<div class="game__preview"><img class="game__pic" src={% static "img/icons.png" %}></div>
</div>
{% endblock content %}

@ -125,32 +125,7 @@
</div>
</header>
<div class="container">
<div class="center" style="padding-top: 50px; padding-bottom: 50px;">
<div><a href="email/index.html">email.html</a></div><br>
<div><a href="ui-kit.html">ui-kit.html</a></div><br>
<div><a href="main.html">main.html</a></div>
<div><a href="main-online.html">main-online.html</a></div>
<div><a href="main-online-soon.html">main-online-soon.html</a></div>
<div><a href="courses.html">courses.html</a></div>
<div><a href="result.html">result.html</a></div>
<div><a href="result-empty.html">result-empty.html</a></div>
<div><a href="course.html">course.html</a></div>
<div><a href="course-v2.html">course-v2.html</a></div>
<div><a href="course-soon.html">course-soon.html</a></div>
<div><a href="course-lock.html">course-lock.html</a></div>
<div><a href="course-bought.html">course-bought.html</a></div>
<div><a href="lesson.html">lesson.html</a></div>
<div><a href="profile.html">profile.html</a></div>
<div><a href="profile-settings.html">profile-settings.html</a></div>
<div><a href="profile-alerts.html">profile-alerts.html</a></div>
<div><a href="become-author.html">become-author.html</a></div>
<div><a href="history-transactions.html">history-transactions.html</a></div>
<div><a href="success-payment.html">success-payment.html</a></div>
<div><a href="success-application.html">success-application.html</a></div><br>
<div><a href="course-add.html">course-add.html</a></div>
<div><a href="course-add-lessons.html">course-add-lessons.html</a></div>
<div><a href="lesson-add.html">lesson-add.html</a></div>
</div>
{% block content %}{% endblock content %}
</div>
<footer class="footer">
<div class="footer__center center">

@ -16,9 +16,18 @@ Including another URLconf
from django.contrib import admin
from django.urls import path, include
from django.views.generic import TemplateView
from django.conf import settings
from apps.course.views import CoursesView
urlpatterns = [
path('admin/', admin.site.urls),
path('auth/', include(('apps.auth.urls', 'lilcity'))),
path('courses/', CoursesView.as_view()),
path('', TemplateView.as_view(template_name="templates/lilcity/index.html")),
]
if settings.DEBUG:
from django.conf.urls.static import static
urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
Loading…
Cancel
Save