Compare commits
1 Commits
| Author | SHA1 | Date |
|---|---|---|
|
|
aace6dd8df | 7 years ago |
370 changed files with 13198 additions and 10038 deletions
@ -0,0 +1 @@ |
|||||||
|
[{"model": "accounts_ext.user", "pk": 1, "fields": {"password": "pbkdf2_sha256$100000$AAP4DpqYKrFB$mQRKz7qi/1va3Zoh2O3g9j7wYKCBaMLz5LFrbszDNLA=", "last_login": "2018-08-12T20:46:54Z", "create_at": "2018-08-12T20:46:44.961Z", "updated_at": "2018-08-12T20:47:05.733Z", "status": 25, "is_superuser": true, "username": "dimkasp", "email": "dimkasp@mail.ru", "referral_user": null, "confirmed_at": null, "groups": [], "user_permissions": []}}] |
||||||
@ -1,5 +1,6 @@ |
|||||||
from django.forms import forms |
from django.forms import forms |
||||||
from django.utils.translation import ugettext_lazy as _ |
from django.utils.translation import ugettext_lazy as _ |
||||||
|
|
||||||
from pinax.blog.forms import AdminPostForm as BaseAdminPostForm |
from pinax.blog.forms import AdminPostForm as BaseAdminPostForm |
||||||
|
|
||||||
from blog_ext.models import Post |
from blog_ext.models import Post |
||||||
@ -1,7 +1,7 @@ |
|||||||
from django.urls import re_path |
from django.urls import re_path |
||||||
|
|
||||||
from . import views |
from . import views |
||||||
|
|
||||||
|
|
||||||
urlpatterns = [ |
urlpatterns = [ |
||||||
re_path(r"^$", views.BlogIndexView.as_view(), name="blog"), |
re_path(r"^$", views.BlogIndexView.as_view(), name="blog"), |
||||||
|
|
||||||
@ -1,19 +1,24 @@ |
|||||||
import uuid |
import uuid |
||||||
from decimal import Decimal |
|
||||||
|
|
||||||
|
from decimal import Decimal |
||||||
from autoslug import AutoSlugField |
from autoslug import AutoSlugField |
||||||
from django.contrib.auth import get_user_model |
|
||||||
from django.core.validators import MinValueValidator, MaxValueValidator, RegexValidator |
from django.core.validators import MinValueValidator, MaxValueValidator, RegexValidator |
||||||
from django.db import models |
from django.db import models |
||||||
|
from django.contrib.auth import get_user_model |
||||||
from django.db.models import Avg |
from django.db.models import Avg |
||||||
from django.utils.timezone import now, timedelta |
from django.db.models.signals import post_save |
||||||
|
from django.dispatch import receiver |
||||||
from django.utils.translation import ugettext_lazy as _ |
from django.utils.translation import ugettext_lazy as _ |
||||||
|
from django.utils.timezone import now, timedelta |
||||||
|
|
||||||
|
|
||||||
# Create your models here. |
# Create your models here. |
||||||
from core.models import ( |
from core.models import ( |
||||||
AbstractStatusModel, AbstractDateTimeModel, |
AbstractStatusModel, AbstractDateTimeModel, |
||||||
ActiveOnlyManager, |
ActiveOnlyManager, |
||||||
City, Currency) |
City, Currency) |
||||||
|
|
||||||
from products.models import Product |
from products.models import Product |
||||||
|
|
||||||
|
|
||||||
@ -1,15 +1,14 @@ |
|||||||
from io import BytesIO |
|
||||||
|
|
||||||
import celery |
import celery |
||||||
import pytils |
|
||||||
import weasyprint |
import weasyprint |
||||||
|
import pytils |
||||||
|
from io import BytesIO |
||||||
|
|
||||||
from django.conf import settings |
from django.conf import settings |
||||||
from django.core.mail import EmailMessage, EmailMultiAlternatives |
|
||||||
from django.template.loader import render_to_string, get_template |
from django.template.loader import render_to_string, get_template |
||||||
|
from django.core.mail import EmailMessage, EmailMultiAlternatives |
||||||
|
|
||||||
from cart.models import Order |
from cart.models import Order |
||||||
|
|
||||||
|
|
||||||
@celery.task() |
@celery.task() |
||||||
def send_user_order_notification(context): |
def send_user_order_notification(context): |
||||||
""" |
""" |
||||||
@ -1,3 +1,4 @@ |
|||||||
|
from django.conf.urls import url |
||||||
from django.urls import re_path |
from django.urls import re_path |
||||||
|
|
||||||
from . import views |
from . import views |
||||||
File diff suppressed because it is too large
Load Diff
@ -1,93 +0,0 @@ |
|||||||
|
|
||||||
.br-theme-css-stars .br-widget { |
|
||||||
height: 28px; |
|
||||||
white-space: nowrap |
|
||||||
} |
|
||||||
|
|
||||||
.br-theme-css-stars .br-widget a { |
|
||||||
text-decoration: none; |
|
||||||
height: 18px; |
|
||||||
width: 18px; |
|
||||||
float: left; |
|
||||||
font-size: 23px; |
|
||||||
margin-right: 5px |
|
||||||
} |
|
||||||
|
|
||||||
.br-theme-css-stars .br-widget a:after { |
|
||||||
content: "\2605"; |
|
||||||
color: #d2d2d2 |
|
||||||
} |
|
||||||
|
|
||||||
.br-theme-css-stars .br-widget a.br-active:after { |
|
||||||
color: #edb867 |
|
||||||
} |
|
||||||
|
|
||||||
.br-theme-css-stars .br-widget a.br-selected:after { |
|
||||||
color: #edb867 |
|
||||||
} |
|
||||||
|
|
||||||
.br-theme-css-stars .br-widget .br-current-rating { |
|
||||||
display: none |
|
||||||
} |
|
||||||
|
|
||||||
.br-theme-css-stars .br-readonly a { |
|
||||||
cursor: default |
|
||||||
} |
|
||||||
|
|
||||||
@media print { |
|
||||||
.br-theme-css-stars .br-widget a:after { |
|
||||||
content: "\2606"; |
|
||||||
color: #000 |
|
||||||
} |
|
||||||
|
|
||||||
.br-theme-css-stars .br-widget a.br-active:after, .br-theme-css-stars .br-widget a.br-selected:after { |
|
||||||
content: "\2605"; |
|
||||||
color: #000 |
|
||||||
} |
|
||||||
} |
|
||||||
|
|
||||||
.br-theme-fontawesome-stars .br-widget { |
|
||||||
height: 28px; |
|
||||||
white-space: nowrap |
|
||||||
} |
|
||||||
|
|
||||||
.br-theme-fontawesome-stars .br-widget a { |
|
||||||
font: normal normal normal 20px/1 FontAwesome; |
|
||||||
text-rendering: auto; |
|
||||||
-webkit-font-smoothing: antialiased; |
|
||||||
text-decoration: none; |
|
||||||
margin-right: 2px |
|
||||||
} |
|
||||||
|
|
||||||
.br-theme-fontawesome-stars .br-widget a:after { |
|
||||||
content: '\f005'; |
|
||||||
color: #d2d2d2 |
|
||||||
} |
|
||||||
|
|
||||||
.br-theme-fontawesome-stars .br-widget a.br-active:after { |
|
||||||
color: #edb867 |
|
||||||
} |
|
||||||
|
|
||||||
.br-theme-fontawesome-stars .br-widget a.br-selected:after { |
|
||||||
color: #edb867 |
|
||||||
} |
|
||||||
|
|
||||||
.br-theme-fontawesome-stars .br-widget .br-current-rating { |
|
||||||
display: none |
|
||||||
} |
|
||||||
|
|
||||||
.br-theme-fontawesome-stars .br-readonly a { |
|
||||||
cursor: default |
|
||||||
} |
|
||||||
|
|
||||||
@media print { |
|
||||||
.br-theme-fontawesome-stars .br-widget a:after { |
|
||||||
content: '\f006'; |
|
||||||
color: #000 |
|
||||||
} |
|
||||||
|
|
||||||
.br-theme-fontawesome-stars .br-widget a.br-active:after, .br-theme-fontawesome-stars .br-widget a.br-selected:after { |
|
||||||
content: '\f005'; |
|
||||||
color: #000 |
|
||||||
} |
|
||||||
} |
|
||||||
@ -1,16 +0,0 @@ |
|||||||
import "./asserts/css/main.css"; |
|
||||||
import './node_modules/jquery-ui-dist/jquery-ui.min.css'; |
|
||||||
import "./node_modules/bootstrap/dist/css/bootstrap.min.css"; |
|
||||||
|
|
||||||
import './node_modules/jquery/dist/jquery.js'; |
|
||||||
import './node_modules/jquery-ui-dist/jquery-ui.js'; |
|
||||||
import './node_modules/magnific-popup/dist/jquery.magnific-popup.js'; |
|
||||||
import './node_modules/jquery-bar-rating/dist/jquery.barrating.min.js'; |
|
||||||
import './node_modules/bootstrap/dist/js/bootstrap.js'; |
|
||||||
import './node_modules/jquery-autocomplete/jquery.autocomplete.js'; |
|
||||||
|
|
||||||
import "./asserts/js/ajax.js"; |
|
||||||
import "./asserts/js/basket.tools.js"; |
|
||||||
import "./asserts/js/common.js"; |
|
||||||
import "./asserts/js/our_search_code.js"; |
|
||||||
|
|
||||||
@ -1,29 +0,0 @@ |
|||||||
{ |
|
||||||
"name": "eshop", |
|
||||||
"version": "1.0.0", |
|
||||||
"description": "", |
|
||||||
"main": "index.js", |
|
||||||
"scripts": { |
|
||||||
"test": "echo \"Error: no test specified\" && exit 1", |
|
||||||
"dev": "webpack --mode=development --watch", |
|
||||||
"build": "webpack --mode=production" |
|
||||||
}, |
|
||||||
"author": "FUNNYDMAN", |
|
||||||
"license": "ISC", |
|
||||||
"devDependencies": { |
|
||||||
"webpack": "^4.25.1", |
|
||||||
"webpack-cli": "^3.1.2", |
|
||||||
"css-loader": "^1.0.1", |
|
||||||
"extract-text-webpack-plugin": "^4.0.0-beta.0", |
|
||||||
"file-loader": "^2.0.0", |
|
||||||
"style-loader": "^0.23.1" |
|
||||||
}, |
|
||||||
"dependencies": { |
|
||||||
"bootstrap": "3.3.7", |
|
||||||
"jquery": "^3.3.1", |
|
||||||
"jquery-autocomplete": "^1.2.8", |
|
||||||
"jquery-bar-rating": "^1.2.2", |
|
||||||
"jquery-ui-dist": "1.12.1", |
|
||||||
"magnific-popup": "^1.1.0" |
|
||||||
} |
|
||||||
} |
|
||||||
@ -1,48 +0,0 @@ |
|||||||
const path = require('path'); |
|
||||||
const ExtractTextPlugin = require('extract-text-webpack-plugin'); |
|
||||||
const webpack = require('webpack'); |
|
||||||
|
|
||||||
module.exports = { |
|
||||||
entry: './index.js', |
|
||||||
output: { |
|
||||||
filename: './js/build-min.js', |
|
||||||
path: path.resolve(__dirname, 'dist') |
|
||||||
}, |
|
||||||
module: { |
|
||||||
rules: [{ |
|
||||||
test: /\.(css)$/, |
|
||||||
use: ExtractTextPlugin.extract({ |
|
||||||
fallback: 'style-loader', |
|
||||||
use: ['css-loader'] |
|
||||||
}) |
|
||||||
}, |
|
||||||
{ |
|
||||||
test: /\.(png|svg|jpg|gif|jpeg)$/, |
|
||||||
use: [ |
|
||||||
{ |
|
||||||
loader: 'file-loader', |
|
||||||
options: {outputPath: 'img/'} |
|
||||||
} |
|
||||||
] |
|
||||||
}, { |
|
||||||
test: /\.(woff(2)?|ttf|eot)(\?v=\d+\.\d+\.\d+)?$/, |
|
||||||
use: [ |
|
||||||
{ |
|
||||||
loader: 'file-loader', |
|
||||||
options: { |
|
||||||
name: '[name].[ext]', |
|
||||||
outputPath: 'fonts/' |
|
||||||
} |
|
||||||
} |
|
||||||
] |
|
||||||
} |
|
||||||
] |
|
||||||
}, |
|
||||||
plugins: [ |
|
||||||
new ExtractTextPlugin("css/build.css"), |
|
||||||
new webpack.ProvidePlugin({ |
|
||||||
$: "jquery", |
|
||||||
jQuery: "jquery" |
|
||||||
}) |
|
||||||
] |
|
||||||
}; |
|
||||||
@ -1,7 +1,13 @@ |
|||||||
|
import os |
||||||
|
from django.conf import settings |
||||||
|
from django.contrib.auth import get_user_model |
||||||
from django.core.validators import RegexValidator |
from django.core.validators import RegexValidator |
||||||
from django.db import models |
from django.db import models |
||||||
from django.utils.translation import ugettext_lazy as _ |
from django.utils.translation import ugettext_lazy as _ |
||||||
|
|
||||||
|
# Create your models here. |
||||||
|
from core.models import AbstractStatusModel, STATUS_DELETED |
||||||
|
|
||||||
# --------------------- REQUEST STATUS LIST -------------------- |
# --------------------- REQUEST STATUS LIST -------------------- |
||||||
|
|
||||||
STATUS_NEW = 0 |
STATUS_NEW = 0 |
||||||
@ -1,4 +1,4 @@ |
|||||||
from django.core.management.base import BaseCommand |
from django.core.management.base import BaseCommand, CommandError |
||||||
import django.apps |
import django.apps |
||||||
|
|
||||||
from core.models import AbstractStatusModel |
from core.models import AbstractStatusModel |
||||||
@ -1,7 +1,6 @@ |
|||||||
from django.core.management.base import BaseCommand |
from django.core.management.base import BaseCommand |
||||||
from django.core.cache import cache |
from django.core.cache import cache |
||||||
|
|
||||||
|
|
||||||
class Command(BaseCommand): |
class Command(BaseCommand): |
||||||
def handle(self, *args, **kwargs): |
def handle(self, *args, **kwargs): |
||||||
cache.clear() |
cache.clear() |
||||||
@ -1,11 +0,0 @@ |
|||||||
server { |
|
||||||
server_name name_or_ip; |
|
||||||
listen 80; |
|
||||||
location / { |
|
||||||
proxy_pass http://localhost:8000; |
|
||||||
} |
|
||||||
|
|
||||||
location /static/ { |
|
||||||
root path_to_static_files; |
|
||||||
} |
|
||||||
} |
|
||||||
@ -1,20 +0,0 @@ |
|||||||
[ |
|
||||||
{ |
|
||||||
"model": "accounts_ext.user", |
|
||||||
"pk": 1, |
|
||||||
"fields": { |
|
||||||
"password": "pbkdf2_sha256$100000$AAP4DpqYKrFB$mQRKz7qi/1va3Zoh2O3g9j7wYKCBaMLz5LFrbszDNLA=", |
|
||||||
"last_login": "2018-08-12T20:46:54Z", |
|
||||||
"create_at": "2018-08-12T20:46:44.961Z", |
|
||||||
"updated_at": "2018-08-12T20:47:05.733Z", |
|
||||||
"status": 25, |
|
||||||
"is_superuser": true, |
|
||||||
"username": "dimkasp", |
|
||||||
"email": "dimkasp@mail.ru", |
|
||||||
"referral_user": null, |
|
||||||
"confirmed_at": null, |
|
||||||
"groups": [], |
|
||||||
"user_permissions": [] |
|
||||||
} |
|
||||||
} |
|
||||||
] |
|
||||||
@ -1,110 +0,0 @@ |
|||||||
# Generated by Django 2.0.7 on 2018-10-25 15:27 |
|
||||||
|
|
||||||
from django.conf import settings |
|
||||||
import django.contrib.auth.models |
|
||||||
import django.core.validators |
|
||||||
from django.db import migrations, models |
|
||||||
import django.db.models.deletion |
|
||||||
|
|
||||||
|
|
||||||
class Migration(migrations.Migration): |
|
||||||
|
|
||||||
initial = True |
|
||||||
|
|
||||||
dependencies = [ |
|
||||||
('auth', '0009_alter_user_last_name_max_length'), |
|
||||||
('core', '0001_initial'), |
|
||||||
] |
|
||||||
|
|
||||||
operations = [ |
|
||||||
migrations.CreateModel( |
|
||||||
name='User', |
|
||||||
fields=[ |
|
||||||
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), |
|
||||||
('password', models.CharField(max_length=128, verbose_name='password')), |
|
||||||
('last_login', models.DateTimeField(blank=True, null=True, verbose_name='last login')), |
|
||||||
('create_at', models.DateTimeField(auto_now_add=True, verbose_name='создан в')), |
|
||||||
('updated_at', models.DateTimeField(auto_now=True, verbose_name='обновлен')), |
|
||||||
('status', models.SmallIntegerField(choices=[(0, 'Новый'), (25, 'Активный'), (50, 'Удаленный')], default=0, verbose_name='статус')), |
|
||||||
('is_superuser', models.BooleanField(default=False, help_text='Designates that this user has all permissions without explicitly assigning them.', verbose_name='superuser status')), |
|
||||||
('username', models.CharField(max_length=255, verbose_name='username')), |
|
||||||
('email', models.EmailField(error_messages={'unique': 'A user with that email already exists.'}, max_length=254, unique=True, verbose_name='email')), |
|
||||||
('confirmed_at', models.DateTimeField(blank=True, null=True, verbose_name='подвтержден в')), |
|
||||||
], |
|
||||||
options={ |
|
||||||
'verbose_name': 'пользователь', |
|
||||||
'verbose_name_plural': 'пользователи', |
|
||||||
}, |
|
||||||
), |
|
||||||
migrations.CreateModel( |
|
||||||
name='Company', |
|
||||||
fields=[ |
|
||||||
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), |
|
||||||
('create_at', models.DateTimeField(auto_now_add=True, verbose_name='создан в')), |
|
||||||
('updated_at', models.DateTimeField(auto_now=True, verbose_name='обновлен')), |
|
||||||
('status', models.SmallIntegerField(choices=[(0, 'Новый'), (25, 'Активный'), (50, 'Удаленный')], default=0, verbose_name='статус')), |
|
||||||
('company_name', models.CharField(blank=True, max_length=255, null=True, verbose_name='компания')), |
|
||||||
('address', models.TextField(blank=True, null=True, verbose_name='адрес')), |
|
||||||
('inn', models.CharField(blank=True, max_length=12, null=True, verbose_name='ИНН')), |
|
||||||
('ogrn', models.CharField(blank=True, max_length=13, null=True, verbose_name='ОГРН')), |
|
||||||
('type', models.SmallIntegerField(blank=True, choices=[(25, 'Компания'), (50, 'Физ лицо')], default=25, null=True, verbose_name='тип')), |
|
||||||
('city', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, to='core.City')), |
|
||||||
('user', models.OneToOneField(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL, verbose_name='username')), |
|
||||||
], |
|
||||||
options={ |
|
||||||
'verbose_name': 'компания', |
|
||||||
'verbose_name_plural': 'компании', |
|
||||||
}, |
|
||||||
), |
|
||||||
migrations.CreateModel( |
|
||||||
name='Profile', |
|
||||||
fields=[ |
|
||||||
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), |
|
||||||
('create_at', models.DateTimeField(auto_now_add=True, verbose_name='создан в')), |
|
||||||
('updated_at', models.DateTimeField(auto_now=True, verbose_name='обновлен')), |
|
||||||
('status', models.SmallIntegerField(choices=[(0, 'Новый'), (25, 'Активный'), (50, 'Удаленный')], default=0, verbose_name='статус')), |
|
||||||
('first_name', models.CharField(blank=True, max_length=100, null=True, verbose_name='first name')), |
|
||||||
('last_name', models.CharField(blank=True, max_length=100, null=True, verbose_name='last name')), |
|
||||||
('patronymic', models.CharField(blank=True, max_length=100, null=True, verbose_name='отчество')), |
|
||||||
('birthday', models.DateField(blank=True, null=True, verbose_name='дата рождения')), |
|
||||||
('phone', models.CharField(blank=True, max_length=12, null=True, validators=[django.core.validators.RegexValidator(message="Phone number must be entered in the format: '+99999999999'. Up to 12 digits allowed.", regex='^\\((+7)|8)?\\d{10}$')], verbose_name='телефон')), |
|
||||||
('address', models.TextField(verbose_name='aдрес')), |
|
||||||
('city', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, to='core.City', verbose_name='город')), |
|
||||||
('user', models.OneToOneField(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL, verbose_name='username')), |
|
||||||
], |
|
||||||
options={ |
|
||||||
'verbose_name': 'профиль', |
|
||||||
'verbose_name_plural': 'профили', |
|
||||||
}, |
|
||||||
), |
|
||||||
migrations.CreateModel( |
|
||||||
name='Group', |
|
||||||
fields=[ |
|
||||||
], |
|
||||||
options={ |
|
||||||
'verbose_name': 'группа', |
|
||||||
'verbose_name_plural': 'группы', |
|
||||||
'proxy': True, |
|
||||||
'indexes': [], |
|
||||||
}, |
|
||||||
bases=('auth.group',), |
|
||||||
managers=[ |
|
||||||
('objects', django.contrib.auth.models.GroupManager()), |
|
||||||
], |
|
||||||
), |
|
||||||
migrations.AddField( |
|
||||||
model_name='user', |
|
||||||
name='groups', |
|
||||||
field=models.ManyToManyField(blank=True, help_text='The groups this user belongs to. A user will get all permissions granted to each of their groups.', related_name='user_set', related_query_name='user', to='auth.Group', verbose_name='groups'), |
|
||||||
), |
|
||||||
migrations.AddField( |
|
||||||
model_name='user', |
|
||||||
name='referral_user', |
|
||||||
field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, to=settings.AUTH_USER_MODEL, verbose_name='Реферальный пользователь'), |
|
||||||
), |
|
||||||
migrations.AddField( |
|
||||||
model_name='user', |
|
||||||
name='user_permissions', |
|
||||||
field=models.ManyToManyField(blank=True, help_text='Specific permissions for this user.', related_name='user_set', related_query_name='user', to='auth.Permission', verbose_name='user permissions'), |
|
||||||
), |
|
||||||
] |
|
||||||
@ -1,93 +0,0 @@ |
|||||||
# Generated by Django 2.0.7 on 2018-10-25 15:27 |
|
||||||
|
|
||||||
import blog_ext.models |
|
||||||
from django.db import migrations, models |
|
||||||
import django.db.models.deletion |
|
||||||
|
|
||||||
|
|
||||||
class Migration(migrations.Migration): |
|
||||||
|
|
||||||
initial = True |
|
||||||
|
|
||||||
dependencies = [ |
|
||||||
('blog', '0001_initial'), |
|
||||||
('pinax_images', '0001_initial'), |
|
||||||
] |
|
||||||
|
|
||||||
operations = [ |
|
||||||
migrations.CreateModel( |
|
||||||
name='ImageSet', |
|
||||||
fields=[ |
|
||||||
('imageset_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='pinax_images.ImageSet')), |
|
||||||
('create_at', models.DateTimeField(auto_now_add=True, verbose_name='создан в')), |
|
||||||
('updated_at', models.DateTimeField(auto_now=True, verbose_name='обновлен')), |
|
||||||
], |
|
||||||
options={ |
|
||||||
'verbose_name': 'Коллаж', |
|
||||||
'verbose_name_plural': 'Коллажи', |
|
||||||
}, |
|
||||||
bases=('pinax_images.imageset', models.Model), |
|
||||||
), |
|
||||||
migrations.CreateModel( |
|
||||||
name='Post', |
|
||||||
fields=[ |
|
||||||
('post_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='blog.Post')), |
|
||||||
('create_at', models.DateTimeField(auto_now_add=True, verbose_name='создан в')), |
|
||||||
('updated_at', models.DateTimeField(auto_now=True, verbose_name='обновлен')), |
|
||||||
('status', models.SmallIntegerField(choices=[(0, 'Новый'), (25, 'Активный'), (50, 'Удаленный')], default=0, verbose_name='статус')), |
|
||||||
('preview_image', models.FileField(blank=True, null=True, upload_to=blog_ext.models.Post.upload_file_to, verbose_name='Превью изображение')), |
|
||||||
], |
|
||||||
options={ |
|
||||||
'verbose_name': 'Пост', |
|
||||||
'verbose_name_plural': 'Посты', |
|
||||||
}, |
|
||||||
bases=('blog.post', models.Model), |
|
||||||
), |
|
||||||
migrations.CreateModel( |
|
||||||
name='ReviewComment', |
|
||||||
fields=[ |
|
||||||
('reviewcomment_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='blog.ReviewComment')), |
|
||||||
], |
|
||||||
options={ |
|
||||||
'verbose_name': 'Комментарий', |
|
||||||
'verbose_name_plural': 'Комментарий', |
|
||||||
}, |
|
||||||
bases=('blog.reviewcomment',), |
|
||||||
), |
|
||||||
migrations.CreateModel( |
|
||||||
name='Revision', |
|
||||||
fields=[ |
|
||||||
('revision_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='blog.Revision')), |
|
||||||
], |
|
||||||
options={ |
|
||||||
'verbose_name': 'Ревизия', |
|
||||||
'verbose_name_plural': 'Ревизии', |
|
||||||
}, |
|
||||||
bases=('blog.revision',), |
|
||||||
), |
|
||||||
migrations.CreateModel( |
|
||||||
name='Section', |
|
||||||
fields=[ |
|
||||||
('section_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='blog.Section')), |
|
||||||
('create_at', models.DateTimeField(auto_now_add=True, verbose_name='создан в')), |
|
||||||
('updated_at', models.DateTimeField(auto_now=True, verbose_name='обновлен')), |
|
||||||
], |
|
||||||
options={ |
|
||||||
'verbose_name': 'Секция', |
|
||||||
'verbose_name_plural': 'Секции', |
|
||||||
}, |
|
||||||
bases=('blog.section', models.Model), |
|
||||||
), |
|
||||||
migrations.CreateModel( |
|
||||||
name='PostImageSet', |
|
||||||
fields=[ |
|
||||||
], |
|
||||||
options={ |
|
||||||
'verbose_name': 'Изображение', |
|
||||||
'verbose_name_plural': 'Изображения', |
|
||||||
'proxy': True, |
|
||||||
'indexes': [], |
|
||||||
}, |
|
||||||
bases=('blog_ext.imageset',), |
|
||||||
), |
|
||||||
] |
|
||||||
@ -1,195 +0,0 @@ |
|||||||
# Generated by Django 2.0.7 on 2018-10-25 15:27 |
|
||||||
|
|
||||||
import autoslug.fields |
|
||||||
import cart.models |
|
||||||
import datetime |
|
||||||
from django.conf import settings |
|
||||||
import django.core.validators |
|
||||||
from django.db import migrations, models |
|
||||||
import django.db.models.deletion |
|
||||||
import django.db.models.manager |
|
||||||
from django.utils.timezone import utc |
|
||||||
|
|
||||||
|
|
||||||
class Migration(migrations.Migration): |
|
||||||
|
|
||||||
initial = True |
|
||||||
|
|
||||||
dependencies = [ |
|
||||||
('products', '0001_initial'), |
|
||||||
('core', '0001_initial'), |
|
||||||
migrations.swappable_dependency(settings.AUTH_USER_MODEL), |
|
||||||
] |
|
||||||
|
|
||||||
operations = [ |
|
||||||
migrations.CreateModel( |
|
||||||
name='Buying', |
|
||||||
fields=[ |
|
||||||
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), |
|
||||||
('create_at', models.DateTimeField(auto_now_add=True, verbose_name='создан в')), |
|
||||||
('updated_at', models.DateTimeField(auto_now=True, verbose_name='обновлен')), |
|
||||||
('bonus_points', models.IntegerField(validators=[django.core.validators.MinValueValidator(0)], verbose_name='бонусы')), |
|
||||||
('status', models.SmallIntegerField(choices=[(25, 'В корзине'), (50, 'Обрабатываеться'), (75, 'Оплаченно')], default=25, verbose_name='статус')), |
|
||||||
('amount', models.SmallIntegerField(default=0, verbose_name='колличество')), |
|
||||||
('total_price', models.DecimalField(decimal_places=2, max_digits=10, verbose_name='цена')), |
|
||||||
], |
|
||||||
options={ |
|
||||||
'verbose_name': 'Покупка', |
|
||||||
'verbose_name_plural': 'Покупки', |
|
||||||
}, |
|
||||||
managers=[ |
|
||||||
('active', django.db.models.manager.Manager()), |
|
||||||
], |
|
||||||
), |
|
||||||
migrations.CreateModel( |
|
||||||
name='Cashback', |
|
||||||
fields=[ |
|
||||||
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), |
|
||||||
('create_at', models.DateTimeField(auto_now_add=True, verbose_name='создан в')), |
|
||||||
('updated_at', models.DateTimeField(auto_now=True, verbose_name='обновлен')), |
|
||||||
('cashback', models.DecimalField(decimal_places=2, default=0, max_digits=7, verbose_name='Сумма')), |
|
||||||
('status', models.SmallIntegerField(choices=[(0, 'заработанный'), (100, 'потраченный')], default=0, verbose_name='статус')), |
|
||||||
('user', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)), |
|
||||||
], |
|
||||||
options={ |
|
||||||
'verbose_name': 'cashback', |
|
||||||
'verbose_name_plural': 'cashback', |
|
||||||
}, |
|
||||||
), |
|
||||||
migrations.CreateModel( |
|
||||||
name='Client', |
|
||||||
fields=[ |
|
||||||
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), |
|
||||||
('create_at', models.DateTimeField(auto_now_add=True, verbose_name='создан в')), |
|
||||||
('updated_at', models.DateTimeField(auto_now=True, verbose_name='обновлен')), |
|
||||||
('status', models.SmallIntegerField(choices=[(0, 'Новый'), (25, 'Активный'), (50, 'Удаленный')], default=0, verbose_name='статус')), |
|
||||||
('name', models.CharField(max_length=255, verbose_name='Название')), |
|
||||||
('image', models.FileField(upload_to=cart.models.Client.upload_file_to, verbose_name='Изображение')), |
|
||||||
('preview', models.FileField(upload_to=cart.models.Client.upload_file_to, verbose_name='Миниатюрка')), |
|
||||||
], |
|
||||||
options={ |
|
||||||
'verbose_name': 'Клиент', |
|
||||||
'verbose_name_plural': 'Клиенты', |
|
||||||
}, |
|
||||||
), |
|
||||||
migrations.CreateModel( |
|
||||||
name='Discount', |
|
||||||
fields=[ |
|
||||||
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), |
|
||||||
('create_at', models.DateTimeField(auto_now_add=True, verbose_name='создан в')), |
|
||||||
('updated_at', models.DateTimeField(auto_now=True, verbose_name='обновлен')), |
|
||||||
('name', models.CharField(max_length=255, verbose_name='Имя')), |
|
||||||
('image', models.FileField(blank=True, null=True, upload_to=cart.models.Discount.upload_file_to, verbose_name='Изображение')), |
|
||||||
('code', models.CharField(blank=True, default='f09d1c83-a6f8-40b5-a980-c7e69f7f585c', max_length=50, unique=True, verbose_name='Код')), |
|
||||||
('valid_from', models.DateTimeField(auto_now_add=True, verbose_name='Начало')), |
|
||||||
('valid_to', models.DateTimeField(blank=True, default=datetime.datetime(2018, 11, 1, 15, 27, 27, 195955, tzinfo=utc), verbose_name='Конец')), |
|
||||||
('value', models.IntegerField(default=0, help_text='Указываем целым числом. Пример: 30 = 30%', validators=[django.core.validators.MinValueValidator(0), django.core.validators.MaxValueValidator(100)], verbose_name='Процент')), |
|
||||||
('active', models.BooleanField(default=True, verbose_name='Активная')), |
|
||||||
], |
|
||||||
options={ |
|
||||||
'verbose_name': 'Дисконт', |
|
||||||
'verbose_name_plural': 'Дисконт', |
|
||||||
}, |
|
||||||
), |
|
||||||
migrations.CreateModel( |
|
||||||
name='Offer', |
|
||||||
fields=[ |
|
||||||
('create_at', models.DateTimeField(auto_now_add=True, verbose_name='создан в')), |
|
||||||
('updated_at', models.DateTimeField(auto_now=True, verbose_name='обновлен')), |
|
||||||
('status', models.SmallIntegerField(choices=[(0, 'Новый'), (25, 'Активный'), (50, 'Удаленный')], default=0, verbose_name='статус')), |
|
||||||
('product', models.OneToOneField(on_delete=django.db.models.deletion.CASCADE, primary_key=True, serialize=False, to='products.Product', verbose_name='Продукт')), |
|
||||||
('vendor_code', models.CharField(help_text='Должен быть уникальным', max_length=255, unique=True, verbose_name='Артикул')), |
|
||||||
('price', models.DecimalField(decimal_places=2, help_text='Цена за продукт', max_digits=10, validators=[django.core.validators.MinValueValidator(1.0)], verbose_name='цена')), |
|
||||||
('amount', models.IntegerField(default=1, validators=[django.core.validators.MinValueValidator(1)], verbose_name='Колличество')), |
|
||||||
('cashback', models.DecimalField(decimal_places=2, default=0, help_text='Указаная сумма будет отображаться в выбранной валюте позиции', max_digits=6, verbose_name='Кешбек')), |
|
||||||
('note', models.TextField(blank=True, null=True, verbose_name='Пометка')), |
|
||||||
('account_nds', models.BooleanField(default=False, verbose_name='с учетом НДС')), |
|
||||||
('currency', models.ForeignKey(help_text='Цена по умолчанию в рублях', on_delete=django.db.models.deletion.PROTECT, to='core.Currency', verbose_name='Валюта')), |
|
||||||
('discount', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, to='cart.Discount', verbose_name='Дисконт')), |
|
||||||
], |
|
||||||
options={ |
|
||||||
'verbose_name': 'Позиция', |
|
||||||
'verbose_name_plural': 'Позиции', |
|
||||||
}, |
|
||||||
), |
|
||||||
migrations.CreateModel( |
|
||||||
name='Order', |
|
||||||
fields=[ |
|
||||||
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), |
|
||||||
('create_at', models.DateTimeField(auto_now_add=True, verbose_name='создан в')), |
|
||||||
('updated_at', models.DateTimeField(auto_now=True, verbose_name='обновлен')), |
|
||||||
('order_code', models.CharField(max_length=255, verbose_name='код заказа')), |
|
||||||
('customer_name', models.CharField(max_length=255, verbose_name='имя')), |
|
||||||
('customer_email', models.EmailField(blank=True, default=None, max_length=254, null=True, verbose_name='email')), |
|
||||||
('phone', models.CharField(max_length=12, validators=[django.core.validators.RegexValidator(message="Phone number must be entered in the format: '+99999999999'. Up to 12 digits allowed.", regex='^((\\+7)|8)?\\d{10}$')], verbose_name='телефон')), |
|
||||||
('customer_address', models.TextField(verbose_name='адрес')), |
|
||||||
('total_price', models.DecimalField(decimal_places=2, default=0, max_digits=10, verbose_name='стоимость')), |
|
||||||
('comment', models.TextField(blank=True, default=None, null=True, verbose_name='комментарий')), |
|
||||||
('status', models.SmallIntegerField(choices=[(0, 'Новый'), (50, 'Обрабатывается'), (100, 'Оплаченно')], default=0, verbose_name='статус')), |
|
||||||
('city', models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, to='core.City', verbose_name='Город')), |
|
||||||
('customer_user', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, to=settings.AUTH_USER_MODEL, verbose_name='пользователь')), |
|
||||||
], |
|
||||||
options={ |
|
||||||
'verbose_name': 'Заказ', |
|
||||||
'verbose_name_plural': 'Заказы', |
|
||||||
'ordering': ('-create_at',), |
|
||||||
}, |
|
||||||
), |
|
||||||
migrations.CreateModel( |
|
||||||
name='SupplyTarget', |
|
||||||
fields=[ |
|
||||||
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), |
|
||||||
('create_at', models.DateTimeField(auto_now_add=True, verbose_name='создан в')), |
|
||||||
('updated_at', models.DateTimeField(auto_now=True, verbose_name='обновлен')), |
|
||||||
('name', models.CharField(max_length=255, verbose_name='Назначение')), |
|
||||||
('slug', autoslug.fields.AutoSlugField(editable=False, populate_from='name', unique=True)), |
|
||||||
('status', models.PositiveSmallIntegerField(help_text='Необходимо указать числовой код статус', verbose_name='статус')), |
|
||||||
], |
|
||||||
options={ |
|
||||||
'verbose_name': 'Лицензия', |
|
||||||
'verbose_name_plural': 'Лицензии', |
|
||||||
}, |
|
||||||
), |
|
||||||
migrations.CreateModel( |
|
||||||
name='SupplyType', |
|
||||||
fields=[ |
|
||||||
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), |
|
||||||
('create_at', models.DateTimeField(auto_now_add=True, verbose_name='создан в')), |
|
||||||
('updated_at', models.DateTimeField(auto_now=True, verbose_name='обновлен')), |
|
||||||
('name', models.CharField(max_length=255, verbose_name='Тип')), |
|
||||||
('slug', autoslug.fields.AutoSlugField(editable=False, populate_from='name', unique=True)), |
|
||||||
('min_term', models.IntegerField(help_text='Минимальный срок поставки', verbose_name='от')), |
|
||||||
('max_term', models.IntegerField(help_text='Максимальный срок поставки', verbose_name='до')), |
|
||||||
('term_dimension', models.SmallIntegerField(choices=[(0, 'Час'), (0, 'День'), (0, 'Неделя'), (0, 'Месяц')], default=0, verbose_name='размерность')), |
|
||||||
], |
|
||||||
options={ |
|
||||||
'verbose_name': 'Тип поставки', |
|
||||||
'verbose_name_plural': 'Тип поставки', |
|
||||||
}, |
|
||||||
), |
|
||||||
migrations.AddField( |
|
||||||
model_name='offer', |
|
||||||
name='supply_target', |
|
||||||
field=models.ForeignKey(blank=True, default=None, null=True, on_delete=django.db.models.deletion.SET_NULL, to='cart.SupplyTarget', verbose_name='Лицензия'), |
|
||||||
), |
|
||||||
migrations.AddField( |
|
||||||
model_name='offer', |
|
||||||
name='supply_type', |
|
||||||
field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, to='cart.SupplyType', verbose_name='Поставка'), |
|
||||||
), |
|
||||||
migrations.AddField( |
|
||||||
model_name='buying', |
|
||||||
name='offer', |
|
||||||
field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='cart.Offer', verbose_name='позиция'), |
|
||||||
), |
|
||||||
migrations.AddField( |
|
||||||
model_name='buying', |
|
||||||
name='order', |
|
||||||
field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='cart.Order', verbose_name='пользователь'), |
|
||||||
), |
|
||||||
migrations.AddField( |
|
||||||
model_name='buying', |
|
||||||
name='user', |
|
||||||
field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL, verbose_name='пользователь'), |
|
||||||
), |
|
||||||
] |
|
||||||
@ -1,25 +0,0 @@ |
|||||||
# Generated by Django 2.0.7 on 2018-10-27 16:53 |
|
||||||
|
|
||||||
import datetime |
|
||||||
from django.db import migrations, models |
|
||||||
from django.utils.timezone import utc |
|
||||||
|
|
||||||
|
|
||||||
class Migration(migrations.Migration): |
|
||||||
|
|
||||||
dependencies = [ |
|
||||||
('cart', '0001_initial'), |
|
||||||
] |
|
||||||
|
|
||||||
operations = [ |
|
||||||
migrations.AlterField( |
|
||||||
model_name='discount', |
|
||||||
name='code', |
|
||||||
field=models.CharField(blank=True, default='866872fd-bf5a-48bc-8e22-c3581eb7a307', max_length=50, unique=True, verbose_name='Код'), |
|
||||||
), |
|
||||||
migrations.AlterField( |
|
||||||
model_name='discount', |
|
||||||
name='valid_to', |
|
||||||
field=models.DateTimeField(blank=True, default=datetime.datetime(2018, 11, 3, 16, 53, 38, 906817, tzinfo=utc), verbose_name='Конец'), |
|
||||||
), |
|
||||||
] |
|
||||||
@ -1,33 +0,0 @@ |
|||||||
# Generated by Django 2.0.7 on 2018-10-25 15:27 |
|
||||||
|
|
||||||
import django.core.validators |
|
||||||
from django.db import migrations, models |
|
||||||
|
|
||||||
|
|
||||||
class Migration(migrations.Migration): |
|
||||||
|
|
||||||
initial = True |
|
||||||
|
|
||||||
dependencies = [ |
|
||||||
] |
|
||||||
|
|
||||||
operations = [ |
|
||||||
migrations.CreateModel( |
|
||||||
name='Request', |
|
||||||
fields=[ |
|
||||||
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), |
|
||||||
('create_at', models.DateTimeField(auto_now_add=True, verbose_name='создан в')), |
|
||||||
('updated_at', models.DateTimeField(auto_now=True, verbose_name='обновлен')), |
|
||||||
('name', models.CharField(max_length=255, verbose_name='Name')), |
|
||||||
('email', models.EmailField(max_length=254, verbose_name='Email')), |
|
||||||
('subject', models.CharField(max_length=500, verbose_name='Subject')), |
|
||||||
('message', models.TextField(blank=True, null=True)), |
|
||||||
('phone', models.CharField(blank=True, max_length=12, null=True, validators=[django.core.validators.RegexValidator(message="Phone number must be entered in the format: '+99999999999'. Up to 12 digits allowed.", regex='^((\\+7)|8)?\\d{10}$')])), |
|
||||||
('status', models.SmallIntegerField(choices=[(0, 'Новый'), (10, 'Обрабатывается'), (20, 'Обработан'), (50, 'Удаленный')], default=0, verbose_name='статус')), |
|
||||||
], |
|
||||||
options={ |
|
||||||
'verbose_name': 'Запрос', |
|
||||||
'verbose_name_plural': 'Запросы', |
|
||||||
}, |
|
||||||
), |
|
||||||
] |
|
||||||
@ -1,60 +0,0 @@ |
|||||||
# Generated by Django 2.0.7 on 2018-10-25 15:27 |
|
||||||
|
|
||||||
import core.models |
|
||||||
from django.db import migrations, models |
|
||||||
|
|
||||||
|
|
||||||
class Migration(migrations.Migration): |
|
||||||
|
|
||||||
initial = True |
|
||||||
|
|
||||||
dependencies = [ |
|
||||||
] |
|
||||||
|
|
||||||
operations = [ |
|
||||||
migrations.CreateModel( |
|
||||||
name='Certificate', |
|
||||||
fields=[ |
|
||||||
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), |
|
||||||
('create_at', models.DateTimeField(auto_now_add=True, verbose_name='создан в')), |
|
||||||
('updated_at', models.DateTimeField(auto_now=True, verbose_name='обновлен')), |
|
||||||
('status', models.SmallIntegerField(choices=[(0, 'Новый'), (25, 'Активный'), (50, 'Удаленный')], default=0, verbose_name='статус')), |
|
||||||
('name', models.CharField(max_length=255, verbose_name='Название')), |
|
||||||
('image', models.FileField(blank=True, null=True, upload_to=core.models.Certificate.upload_file_to, verbose_name='Изображение')), |
|
||||||
('preview', models.FileField(upload_to=core.models.Certificate.upload_file_to, verbose_name='Миниатюрка')), |
|
||||||
], |
|
||||||
options={ |
|
||||||
'verbose_name': 'Сертификат', |
|
||||||
'verbose_name_plural': 'Сертификаты', |
|
||||||
}, |
|
||||||
), |
|
||||||
migrations.CreateModel( |
|
||||||
name='City', |
|
||||||
fields=[ |
|
||||||
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), |
|
||||||
('create_at', models.DateTimeField(auto_now_add=True, verbose_name='создан в')), |
|
||||||
('updated_at', models.DateTimeField(auto_now=True, verbose_name='обновлен')), |
|
||||||
('name', models.CharField(max_length=255, verbose_name='Город')), |
|
||||||
], |
|
||||||
options={ |
|
||||||
'verbose_name': 'Город', |
|
||||||
'verbose_name_plural': 'Города', |
|
||||||
}, |
|
||||||
), |
|
||||||
migrations.CreateModel( |
|
||||||
name='Currency', |
|
||||||
fields=[ |
|
||||||
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), |
|
||||||
('create_at', models.DateTimeField(auto_now_add=True, verbose_name='создан в')), |
|
||||||
('updated_at', models.DateTimeField(auto_now=True, verbose_name='обновлен')), |
|
||||||
('name', models.CharField(max_length=255, verbose_name='название')), |
|
||||||
('code', models.CharField(max_length=64, verbose_name='код валюты')), |
|
||||||
('sign', models.CharField(blank=True, max_length=10, null=True, verbose_name='символ валюты')), |
|
||||||
('value', models.DecimalField(decimal_places=2, help_text='Указывается в рублях', max_digits=6, verbose_name='Курс')), |
|
||||||
], |
|
||||||
options={ |
|
||||||
'verbose_name': 'Валюта', |
|
||||||
'verbose_name_plural': 'Валюта', |
|
||||||
}, |
|
||||||
), |
|
||||||
] |
|
||||||
@ -1,5 +0,0 @@ |
|||||||
from django.test import TestCase |
|
||||||
|
|
||||||
|
|
||||||
class BehaviourTestCaseMixin: |
|
||||||
pass |
|
||||||
@ -1,18 +0,0 @@ |
|||||||
try: |
|
||||||
from .base import * |
|
||||||
except ImportError: |
|
||||||
raise ImportError("Oops,can't find base settings") |
|
||||||
|
|
||||||
# configurations for django debug toolbar |
|
||||||
INTERNAL_IPS = ('127.0.0.1',) |
|
||||||
|
|
||||||
MIDDLEWARE = [ |
|
||||||
'debug_toolbar.middleware.DebugToolbarMiddleware' |
|
||||||
] + MIDDLEWARE |
|
||||||
INSTALLED_APPS = INSTALLED_APPS + ['debug_toolbar'] |
|
||||||
DEBUG_TOOLBAR_CONFIG = { |
|
||||||
'RESULTS_CACHE_SIZE': 50 |
|
||||||
} |
|
||||||
DEFAULT_FROM_EMAIL = 'order@russian-programms.ru' |
|
||||||
CELERY_ALWAYS_EAGER = True |
|
||||||
|
|
||||||
@ -1,47 +0,0 @@ |
|||||||
from django.urls import re_path, path, include |
|
||||||
from django.contrib import admin |
|
||||||
from django.conf import settings |
|
||||||
from django.conf.urls.static import static |
|
||||||
|
|
||||||
from core import views |
|
||||||
|
|
||||||
admin.autodiscover() |
|
||||||
|
|
||||||
urlpatterns = [ |
|
||||||
re_path(r'^jet/', include('jet.urls', 'jet')), |
|
||||||
re_path(r'^jet/dashboard/', include('jet.dashboard.urls', 'jet-dashboard')), |
|
||||||
re_path(r'^admin/', admin.site.urls), |
|
||||||
|
|
||||||
re_path(r'^ckeditor/', include('ckeditor_uploader.urls')), |
|
||||||
|
|
||||||
re_path('pages/', include('django.contrib.flatpages.urls')), |
|
||||||
|
|
||||||
re_path('accounts/', include(('accounts_ext.urls', 'accounts_ext'), namespace='accounts_ext')), |
|
||||||
re_path('accounts/', include('registration.backends.default.urls')), |
|
||||||
re_path('accounts/', |
|
||||||
include(('django.contrib.auth.urls', 'django.contrib.auth'), namespace='accounts')), |
|
||||||
|
|
||||||
re_path(r'', include(('index.urls', 'index'), namespace='index')), |
|
||||||
re_path(r'^contact-us/', include(('contact_us.urls', 'contact_us'), namespace='contact_us')), |
|
||||||
|
|
||||||
re_path(r'^products/', include(('products.urls', 'products'), namespace='products')), |
|
||||||
re_path(r'^cabinet/', include(('cabinet.urls', 'cabinet'), namespace='cabinet')), |
|
||||||
|
|
||||||
re_path(r'^cart/', include(('cart.urls', 'cart'), namespace='cart')), |
|
||||||
|
|
||||||
re_path(r'^news/', include(('blog_ext.urls', 'blog_ext'), namespace='news')), |
|
||||||
|
|
||||||
] + static(settings.STATIC_URL, document_root=settings.STATIC_ROOT) \ |
|
||||||
+ static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT) |
|
||||||
|
|
||||||
if settings.DEBUG: |
|
||||||
import debug_toolbar |
|
||||||
|
|
||||||
urlpatterns = [ |
|
||||||
path('__debug__/', include(debug_toolbar.urls)), |
|
||||||
] + urlpatterns |
|
||||||
|
|
||||||
handler404 = views.Handler404View.as_view() |
|
||||||
handler500 = views.Handler500View.as_view() |
|
||||||
handler403 = views.Handler403View.as_view() |
|
||||||
handler400 = views.Handler400View.as_view() |
|
||||||
@ -1,44 +0,0 @@ |
|||||||
# Generated by Django 2.0.7 on 2018-10-25 15:27 |
|
||||||
|
|
||||||
from django.db import migrations, models |
|
||||||
import django.db.models.deletion |
|
||||||
|
|
||||||
|
|
||||||
class Migration(migrations.Migration): |
|
||||||
|
|
||||||
initial = True |
|
||||||
|
|
||||||
dependencies = [ |
|
||||||
('flatpages', '0001_initial'), |
|
||||||
] |
|
||||||
|
|
||||||
operations = [ |
|
||||||
migrations.CreateModel( |
|
||||||
name='CKFlatPage', |
|
||||||
fields=[ |
|
||||||
('flatpage_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='flatpages.FlatPage')), |
|
||||||
('order', models.PositiveIntegerField(default=0, verbose_name='Порядок')), |
|
||||||
('is_visible', models.BooleanField(default=True, verbose_name='показывать?')), |
|
||||||
('header_class', models.CharField(blank=True, max_length=255, null=True, verbose_name='Header css class')), |
|
||||||
('description', models.CharField(blank=True, max_length=255, null=True, verbose_name='Meta описание')), |
|
||||||
('keywords', models.CharField(blank=True, max_length=255, null=True, verbose_name='Meta теги')), |
|
||||||
], |
|
||||||
options={ |
|
||||||
'verbose_name': 'Простая страница', |
|
||||||
'verbose_name_plural': 'Простые страницы', |
|
||||||
}, |
|
||||||
bases=('flatpages.flatpage',), |
|
||||||
), |
|
||||||
migrations.CreateModel( |
|
||||||
name='Subscriber', |
|
||||||
fields=[ |
|
||||||
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), |
|
||||||
('email', models.EmailField(max_length=254, verbose_name='Email')), |
|
||||||
('name', models.CharField(max_length=128, verbose_name='Имя')), |
|
||||||
], |
|
||||||
options={ |
|
||||||
'verbose_name': 'Подписчик', |
|
||||||
'verbose_name_plural': 'Подписчики', |
|
||||||
}, |
|
||||||
), |
|
||||||
] |
|
||||||
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in new issue