parent
a2bfb481ae
commit
ecd92b31d5
24 changed files with 729 additions and 6 deletions
@ -0,0 +1,110 @@ |
||||
# 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'), |
||||
), |
||||
] |
||||
@ -0,0 +1,93 @@ |
||||
# 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',), |
||||
), |
||||
] |
||||
@ -0,0 +1,195 @@ |
||||
# 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='пользователь'), |
||||
), |
||||
] |
||||
@ -0,0 +1,33 @@ |
||||
# 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': 'Запросы', |
||||
}, |
||||
), |
||||
] |
||||
@ -0,0 +1,60 @@ |
||||
# 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': 'Валюта', |
||||
}, |
||||
), |
||||
] |
||||
@ -0,0 +1,44 @@ |
||||
# 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': 'Подписчики', |
||||
}, |
||||
), |
||||
] |
||||
@ -0,0 +1,124 @@ |
||||
# Generated by Django 2.0.7 on 2018-10-25 15:27 |
||||
|
||||
import autoslug.fields |
||||
from django.conf import settings |
||||
from django.db import migrations, models |
||||
import django.db.models.deletion |
||||
import mptt.fields |
||||
import products.models |
||||
|
||||
|
||||
class Migration(migrations.Migration): |
||||
|
||||
initial = True |
||||
|
||||
dependencies = [ |
||||
migrations.swappable_dependency(settings.AUTH_USER_MODEL), |
||||
] |
||||
|
||||
operations = [ |
||||
migrations.CreateModel( |
||||
name='Manufacturer', |
||||
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(blank=True, default=None, max_length=64, null=True, verbose_name='название')), |
||||
('slug', autoslug.fields.AutoSlugField(editable=False, populate_from='name', unique=True, verbose_name='код')), |
||||
('image', models.ImageField(blank=True, null=True, upload_to='producers', verbose_name='изображение')), |
||||
('status', models.SmallIntegerField(choices=[(0, 'Неактивный'), (25, 'Активный'), (50, 'Удаленный')], default=25, verbose_name='статус')), |
||||
], |
||||
options={ |
||||
'verbose_name': 'Производитель', |
||||
'verbose_name_plural': 'Производители', |
||||
}, |
||||
), |
||||
migrations.CreateModel( |
||||
name='Product', |
||||
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(db_index=True, max_length=64, verbose_name='имя')), |
||||
('slug', autoslug.fields.AutoSlugField(editable=False, populate_from='name', verbose_name='slug')), |
||||
('description', models.TextField(blank=True, default=None, null=True, verbose_name='описание')), |
||||
('platform', models.CharField(blank=True, max_length=255, null=True, verbose_name='Платформа')), |
||||
('status', models.SmallIntegerField(choices=[(0, 'Неактивный'), (25, 'Активный'), (50, 'Удаленный')], default=25, verbose_name='статус')), |
||||
('lft', models.PositiveIntegerField(db_index=True, editable=False)), |
||||
('rght', models.PositiveIntegerField(db_index=True, editable=False)), |
||||
('tree_id', models.PositiveIntegerField(db_index=True, editable=False)), |
||||
('level', models.PositiveIntegerField(db_index=True, editable=False)), |
||||
('manufacturer', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, to='products.Manufacturer', verbose_name='производитель')), |
||||
], |
||||
options={ |
||||
'verbose_name': 'Продукт', |
||||
'verbose_name_plural': 'Продукты', |
||||
}, |
||||
), |
||||
migrations.CreateModel( |
||||
name='ProductCategory', |
||||
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(blank=True, db_index=True, default=None, max_length=64, null=True, unique=True, verbose_name='название')), |
||||
('slug', autoslug.fields.AutoSlugField(editable=False, populate_from='name', verbose_name='код')), |
||||
('image', models.FileField(blank=True, upload_to=products.models.ProductCategory.get_file_path, verbose_name='иконка')), |
||||
('status', models.SmallIntegerField(choices=[(0, 'Неактивный'), (25, 'Активный'), (50, 'Удаленный')], default=25, verbose_name='статус')), |
||||
('lft', models.PositiveIntegerField(db_index=True, editable=False)), |
||||
('rght', models.PositiveIntegerField(db_index=True, editable=False)), |
||||
('tree_id', models.PositiveIntegerField(db_index=True, editable=False)), |
||||
('level', models.PositiveIntegerField(db_index=True, editable=False)), |
||||
('parent', mptt.fields.TreeForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='children', to='products.ProductCategory', verbose_name='родительская категория')), |
||||
], |
||||
options={ |
||||
'verbose_name': 'Категория', |
||||
'verbose_name_plural': 'Категории', |
||||
'ordering': ('tree_id', 'level'), |
||||
}, |
||||
), |
||||
migrations.CreateModel( |
||||
name='ProductImage', |
||||
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='обновлен')), |
||||
('filename', models.CharField(max_length=255, verbose_name='имя файла')), |
||||
('image', models.FileField(max_length=500, upload_to=products.models.ProductImage.get_file_path, verbose_name='изображение')), |
||||
('is_default', models.BooleanField(default=False, verbose_name='по умолчанию')), |
||||
('product', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='products.Product')), |
||||
], |
||||
options={ |
||||
'verbose_name': 'Изображение продукта', |
||||
'verbose_name_plural': 'Изображения продукта', |
||||
}, |
||||
), |
||||
migrations.CreateModel( |
||||
name='ProductRate', |
||||
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='обновлен')), |
||||
('rate', models.PositiveSmallIntegerField(default=0, verbose_name='оценка')), |
||||
('product', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='products.Product')), |
||||
('user', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)), |
||||
], |
||||
options={ |
||||
'verbose_name': 'Рейтинг продукта', |
||||
'verbose_name_plural': 'Рейтинг продукта', |
||||
}, |
||||
), |
||||
migrations.AddField( |
||||
model_name='product', |
||||
name='parent', |
||||
field=mptt.fields.TreeForeignKey(blank=True, help_text='Категория', null=True, on_delete=django.db.models.deletion.SET_NULL, to='products.ProductCategory', verbose_name='категория'), |
||||
), |
||||
migrations.AlterUniqueTogether( |
||||
name='productcategory', |
||||
unique_together={('slug', 'parent')}, |
||||
), |
||||
migrations.AddIndex( |
||||
model_name='product', |
||||
index=models.Index(fields=['id', 'slug'], name='products_pr_id_a08e3c_idx'), |
||||
), |
||||
] |
||||
@ -0,0 +1,49 @@ |
||||
# Generated by Django 2.0.7 on 2018-10-25 15:27 |
||||
|
||||
from django.conf import settings |
||||
from django.db import migrations, models |
||||
import django.db.models.deletion |
||||
import referral.mixins |
||||
|
||||
|
||||
class Migration(migrations.Migration): |
||||
|
||||
initial = True |
||||
|
||||
dependencies = [ |
||||
('accounts_ext', '0001_initial'), |
||||
] |
||||
|
||||
operations = [ |
||||
migrations.CreateModel( |
||||
name='Referral', |
||||
fields=[ |
||||
('create_at', models.DateTimeField(auto_now_add=True, verbose_name='создан в')), |
||||
('updated_at', models.DateTimeField(auto_now=True, verbose_name='обновлен')), |
||||
('user', models.OneToOneField(on_delete=django.db.models.deletion.CASCADE, primary_key=True, serialize=False, to=settings.AUTH_USER_MODEL, verbose_name='пользователь')), |
||||
('code', models.CharField(max_length=255, verbose_name='код')), |
||||
('status', models.SmallIntegerField(choices=[(0, 'Новый'), (25, 'Активный'), (50, 'Удаленный')], default=25, verbose_name='статус')), |
||||
], |
||||
options={ |
||||
'verbose_name': 'Реферал', |
||||
'verbose_name_plural': 'Рефералы', |
||||
}, |
||||
), |
||||
migrations.CreateModel( |
||||
name='ReferralStats', |
||||
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='статус')), |
||||
('referral', models.OneToOneField(on_delete=django.db.models.deletion.CASCADE, primary_key=True, serialize=False, to='referral.Referral', verbose_name='Реферал')), |
||||
('visits', models.IntegerField(default=0, verbose_name='Посищения')), |
||||
('registrations', models.IntegerField(default=0, verbose_name='Регистрации')), |
||||
('points', models.IntegerField(default=0, verbose_name='партенрские балы')), |
||||
], |
||||
options={ |
||||
'verbose_name': 'Реферальная статистика', |
||||
'verbose_name_plural': 'Реферальная статистика', |
||||
}, |
||||
bases=(referral.mixins.StatsFormatterMixin, models.Model), |
||||
), |
||||
] |
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
Loading…
Reference in new issue