commit
c1e84a4ce5
24 changed files with 422 additions and 22 deletions
@ -0,0 +1,21 @@ |
|||||||
|
root = true |
||||||
|
|
||||||
|
[*] |
||||||
|
charset = utf-8 |
||||||
|
end_of_line = lf |
||||||
|
insert_final_newline = true |
||||||
|
trim_trailing_whitespace = true |
||||||
|
|
||||||
|
[*.{py,rst,ini,ino}] |
||||||
|
indent_style = space |
||||||
|
indent_size = 4 |
||||||
|
|
||||||
|
[*.{html,css,scss,js,json,yml,vue}] |
||||||
|
indent_style = space |
||||||
|
indent_size = 2 |
||||||
|
|
||||||
|
[*.md] |
||||||
|
trim_trailing_whitespace = false |
||||||
|
|
||||||
|
[Makefile] |
||||||
|
indent_style = tab |
||||||
@ -0,0 +1,22 @@ |
|||||||
|
from rest_framework import serializers |
||||||
|
|
||||||
|
from apps.school.models import SchoolSchedule |
||||||
|
|
||||||
|
|
||||||
|
class SchoolScheduleSerializer(serializers.ModelSerializer): |
||||||
|
|
||||||
|
class Meta: |
||||||
|
model = SchoolSchedule |
||||||
|
fields = ( |
||||||
|
'id', |
||||||
|
'weekday', |
||||||
|
'title', |
||||||
|
'description', |
||||||
|
'materials', |
||||||
|
'age', |
||||||
|
'month_price', |
||||||
|
) |
||||||
|
|
||||||
|
read_only_fields = ( |
||||||
|
'id', |
||||||
|
) |
||||||
@ -0,0 +1,19 @@ |
|||||||
|
import json |
||||||
|
from time import sleep |
||||||
|
from project.celery import app |
||||||
|
from constance import config |
||||||
|
from InstagramAPI import InstagramAPI |
||||||
|
|
||||||
|
|
||||||
|
@app.task |
||||||
|
def retrieve_photos(): |
||||||
|
instagram = InstagramAPI( |
||||||
|
config.INSTAGRAM_CLIENT_LOGIN, |
||||||
|
config.INSTAGRAM_CLIENT_PASSWORD, |
||||||
|
) |
||||||
|
instagram.login() |
||||||
|
sleep(1) |
||||||
|
if instagram.isLoggedIn and instagram.getHashtagFeed(config.INSTAGRAM_RESULTS_TAG): |
||||||
|
with open('s.json', 'w') as f: |
||||||
|
f.write(json.dumps(instagram.LastJson)) |
||||||
|
return instagram.LastJson |
||||||
@ -0,0 +1,34 @@ |
|||||||
|
<div class="school__page"> |
||||||
|
<div class="school__block"> |
||||||
|
<div class="school__month"> |
||||||
|
<div class="school__month__wrap"> |
||||||
|
<div class="school__month__title">Январь</div> |
||||||
|
<div class="school__month__subtitle">Осталось 14 дней</div> |
||||||
|
<div class="school__month__image"> |
||||||
|
<img class="school__month__image__pic" src="/static/img/order.jpg"> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
<div class="school__btn"> |
||||||
|
<a class="buy__btn btn btn_md" href="#" {% if user.is_authenticated %} |
||||||
|
data-popup=".js-popup-buy" |
||||||
|
{% else %} |
||||||
|
data-popup=".js-popup-auth" |
||||||
|
{% endif %}>ПРОДЛИТЬ ШКОЛУ</a> |
||||||
|
</div> |
||||||
|
<div class="school__btn__prev"> |
||||||
|
<a class="school__prev__btn btn" href="#">ПОСМОТРЕТЬ ПРЕДЫДУЩИЕ УРОКИ</a> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
<div class="school__block school__list"> |
||||||
|
{% for course in course_items %} |
||||||
|
<div class="school__item"> |
||||||
|
<div class="school__title">Понедельник</div> |
||||||
|
<div class="school__subtitle">Пластилиновая живопись.</div> |
||||||
|
<div class="school__content"> |
||||||
|
<p>Научимся смешивать цвета, получать красивые оттенки и создавать картины из пластилина разными техниками. Узнаем как хранить и ухаживать за такими работами.</p> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
{% endfor %} |
||||||
|
</div> |
||||||
|
</div> |
||||||
@ -0,0 +1,12 @@ |
|||||||
|
from django.contrib import admin |
||||||
|
|
||||||
|
from .models import SchoolSchedule |
||||||
|
|
||||||
|
|
||||||
|
@admin.register(SchoolSchedule) |
||||||
|
class SchoolScheduleAdmin(admin.ModelAdmin): |
||||||
|
list_display = ( |
||||||
|
'weekday', |
||||||
|
'title', |
||||||
|
'month_price', |
||||||
|
) |
||||||
@ -0,0 +1,5 @@ |
|||||||
|
from django.apps import AppConfig |
||||||
|
|
||||||
|
|
||||||
|
class SchoolConfig(AppConfig): |
||||||
|
name = 'school' |
||||||
@ -0,0 +1,30 @@ |
|||||||
|
# Generated by Django 2.0.2 on 2018-02-20 14:21 |
||||||
|
|
||||||
|
from django.db import migrations, models |
||||||
|
|
||||||
|
|
||||||
|
class Migration(migrations.Migration): |
||||||
|
|
||||||
|
initial = True |
||||||
|
|
||||||
|
dependencies = [ |
||||||
|
] |
||||||
|
|
||||||
|
operations = [ |
||||||
|
migrations.CreateModel( |
||||||
|
name='SchoolSchedule', |
||||||
|
fields=[ |
||||||
|
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), |
||||||
|
('weekday', models.PositiveSmallIntegerField(choices=[(1, 'понедельник'), (2, 'вторник'), (3, 'среда'), (4, 'четверг'), (5, 'пятница'), (6, 'суббота'), (7, 'воскресенье')], verbose_name='День недели')), |
||||||
|
('title', models.CharField(db_index=True, default='', max_length=100, verbose_name='Заголовок')), |
||||||
|
('description', models.TextField(verbose_name='Описание')), |
||||||
|
('materials', models.TextField(verbose_name='Материалы')), |
||||||
|
('month_price', models.DecimalField(decimal_places=2, default=0, max_digits=8, verbose_name='Цена')), |
||||||
|
], |
||||||
|
options={ |
||||||
|
'verbose_name': 'Рассписание', |
||||||
|
'verbose_name_plural': 'Рассписания', |
||||||
|
'ordering': ('weekday',), |
||||||
|
}, |
||||||
|
), |
||||||
|
] |
||||||
@ -0,0 +1,18 @@ |
|||||||
|
# Generated by Django 2.0.2 on 2018-02-21 08:22 |
||||||
|
|
||||||
|
from django.db import migrations, models |
||||||
|
|
||||||
|
|
||||||
|
class Migration(migrations.Migration): |
||||||
|
|
||||||
|
dependencies = [ |
||||||
|
('school', '0001_initial'), |
||||||
|
] |
||||||
|
|
||||||
|
operations = [ |
||||||
|
migrations.AddField( |
||||||
|
model_name='schoolschedule', |
||||||
|
name='age', |
||||||
|
field=models.PositiveSmallIntegerField(default=0, verbose_name='Возраст'), |
||||||
|
), |
||||||
|
] |
||||||
@ -0,0 +1,17 @@ |
|||||||
|
# Generated by Django 2.0.2 on 2018-02-21 09:01 |
||||||
|
|
||||||
|
from django.db import migrations |
||||||
|
|
||||||
|
|
||||||
|
class Migration(migrations.Migration): |
||||||
|
|
||||||
|
dependencies = [ |
||||||
|
('school', '0002_schoolschedule_age'), |
||||||
|
] |
||||||
|
|
||||||
|
operations = [ |
||||||
|
migrations.AlterModelOptions( |
||||||
|
name='schoolschedule', |
||||||
|
options={'ordering': ('weekday',), 'verbose_name': 'Расписание', 'verbose_name_plural': 'Расписания'}, |
||||||
|
), |
||||||
|
] |
||||||
@ -0,0 +1,24 @@ |
|||||||
|
from django.db import models |
||||||
|
|
||||||
|
|
||||||
|
class SchoolSchedule(models.Model): |
||||||
|
WEEKDAY_CHOICES = ( |
||||||
|
(1, 'понедельник'), |
||||||
|
(2, 'вторник'), |
||||||
|
(3, 'среда'), |
||||||
|
(4, 'четверг'), |
||||||
|
(5, 'пятница'), |
||||||
|
(6, 'суббота'), |
||||||
|
(7, 'воскресенье'), |
||||||
|
) |
||||||
|
weekday = models.PositiveSmallIntegerField('День недели', choices=WEEKDAY_CHOICES) |
||||||
|
title = models.CharField('Заголовок', default='', max_length=100, db_index=True) |
||||||
|
description = models.TextField('Описание') |
||||||
|
materials = models.TextField('Материалы') |
||||||
|
age = models.PositiveSmallIntegerField('Возраст', default=0) |
||||||
|
month_price = models.DecimalField('Цена', max_digits=8, decimal_places=2, default=0) |
||||||
|
|
||||||
|
class Meta: |
||||||
|
ordering = ('weekday',) |
||||||
|
verbose_name = 'Расписание' |
||||||
|
verbose_name_plural = 'Расписания' |
||||||
@ -0,0 +1,3 @@ |
|||||||
|
from django.shortcuts import render |
||||||
|
|
||||||
|
# Create your views here. |
||||||
@ -1,3 +0,0 @@ |
|||||||
broker_url = 'redis://redis:6379/0' |
|
||||||
result_backend = 'redis://redis:6379/1' |
|
||||||
task_serializer = 'json' |
|
||||||
Loading…
Reference in new issue