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