parent
71caff1a40
commit
7d9b5503c4
23 changed files with 792 additions and 0 deletions
@ -0,0 +1,62 @@ |
|||||||
|
# -*- coding: utf-8 -*- |
||||||
|
# Generated by Django 1.9.7 on 2016-07-21 15:08 |
||||||
|
from __future__ import unicode_literals |
||||||
|
|
||||||
|
from django.db import migrations, models |
||||||
|
import django.db.models.deletion |
||||||
|
import django.db.models.manager |
||||||
|
import mptt.fields |
||||||
|
|
||||||
|
|
||||||
|
class Migration(migrations.Migration): |
||||||
|
|
||||||
|
initial = True |
||||||
|
|
||||||
|
dependencies = [ |
||||||
|
] |
||||||
|
|
||||||
|
operations = [ |
||||||
|
migrations.CreateModel( |
||||||
|
name='Location', |
||||||
|
fields=[ |
||||||
|
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), |
||||||
|
('name', models.CharField(max_length=50)), |
||||||
|
('type', models.CharField(choices=[('_root', 'Корень'), ('country', 'Страна'), ('region', 'Регион'), ('town', 'Город')], max_length=20)), |
||||||
|
('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='common.Location')), |
||||||
|
], |
||||||
|
options={ |
||||||
|
'verbose_name': 'Местоположение', |
||||||
|
'verbose_name_plural': 'Местоположения', |
||||||
|
}, |
||||||
|
managers=[ |
||||||
|
('_default_manager', django.db.models.manager.Manager()), |
||||||
|
], |
||||||
|
), |
||||||
|
migrations.CreateModel( |
||||||
|
name='MainPage', |
||||||
|
fields=[ |
||||||
|
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), |
||||||
|
('contractor_text', models.TextField()), |
||||||
|
('customer_text', models.TextField()), |
||||||
|
('video_code', models.TextField()), |
||||||
|
], |
||||||
|
options={ |
||||||
|
'verbose_name': 'Главная страница', |
||||||
|
}, |
||||||
|
), |
||||||
|
migrations.CreateModel( |
||||||
|
name='Settings', |
||||||
|
fields=[ |
||||||
|
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), |
||||||
|
('time_notification', models.IntegerField(default=180)), |
||||||
|
], |
||||||
|
options={ |
||||||
|
'verbose_name': 'Настройки сайта', |
||||||
|
'verbose_name_plural': 'Настройки сайта', |
||||||
|
}, |
||||||
|
), |
||||||
|
] |
||||||
@ -0,0 +1,42 @@ |
|||||||
|
# -*- coding: utf-8 -*- |
||||||
|
# Generated by Django 1.9.7 on 2016-07-21 15:08 |
||||||
|
from __future__ import unicode_literals |
||||||
|
|
||||||
|
from django.db import migrations, models |
||||||
|
import django.utils.timezone |
||||||
|
|
||||||
|
|
||||||
|
class Migration(migrations.Migration): |
||||||
|
|
||||||
|
initial = True |
||||||
|
|
||||||
|
dependencies = [ |
||||||
|
] |
||||||
|
|
||||||
|
operations = [ |
||||||
|
migrations.CreateModel( |
||||||
|
name='Message', |
||||||
|
fields=[ |
||||||
|
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), |
||||||
|
('text', models.TextField()), |
||||||
|
('created', models.DateTimeField(default=django.utils.timezone.now)), |
||||||
|
('private_type', models.BooleanField(default=False)), |
||||||
|
], |
||||||
|
options={ |
||||||
|
'verbose_name': 'Сообщение', |
||||||
|
'verbose_name_plural': 'Сообщения', |
||||||
|
}, |
||||||
|
), |
||||||
|
migrations.CreateModel( |
||||||
|
name='Notes', |
||||||
|
fields=[ |
||||||
|
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), |
||||||
|
('text', models.TextField()), |
||||||
|
('created', models.DateTimeField(default=django.utils.timezone.now)), |
||||||
|
], |
||||||
|
options={ |
||||||
|
'verbose_name': 'Заметка', |
||||||
|
'verbose_name_plural': 'Заметки', |
||||||
|
}, |
||||||
|
), |
||||||
|
] |
||||||
@ -0,0 +1,24 @@ |
|||||||
|
# -*- coding: utf-8 -*- |
||||||
|
# Generated by Django 1.9.7 on 2016-07-21 15:08 |
||||||
|
from __future__ import unicode_literals |
||||||
|
|
||||||
|
from django.db import migrations, models |
||||||
|
import django.db.models.deletion |
||||||
|
|
||||||
|
|
||||||
|
class Migration(migrations.Migration): |
||||||
|
|
||||||
|
initial = True |
||||||
|
|
||||||
|
dependencies = [ |
||||||
|
('chat', '0001_initial'), |
||||||
|
('projects', '0001_initial'), |
||||||
|
] |
||||||
|
|
||||||
|
operations = [ |
||||||
|
migrations.AddField( |
||||||
|
model_name='notes', |
||||||
|
name='order', |
||||||
|
field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='order_notes', to='projects.Order'), |
||||||
|
), |
||||||
|
] |
||||||
@ -0,0 +1,46 @@ |
|||||||
|
# -*- coding: utf-8 -*- |
||||||
|
# Generated by Django 1.9.7 on 2016-07-21 15:08 |
||||||
|
from __future__ import unicode_literals |
||||||
|
|
||||||
|
from django.conf import settings |
||||||
|
from django.db import migrations, models |
||||||
|
import django.db.models.deletion |
||||||
|
|
||||||
|
|
||||||
|
class Migration(migrations.Migration): |
||||||
|
|
||||||
|
initial = True |
||||||
|
|
||||||
|
dependencies = [ |
||||||
|
migrations.swappable_dependency(settings.AUTH_USER_MODEL), |
||||||
|
('projects', '0001_initial'), |
||||||
|
('chat', '0002_notes_order'), |
||||||
|
] |
||||||
|
|
||||||
|
operations = [ |
||||||
|
migrations.AddField( |
||||||
|
model_name='notes', |
||||||
|
name='recipent', |
||||||
|
field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='recipent_notes', to=settings.AUTH_USER_MODEL), |
||||||
|
), |
||||||
|
migrations.AddField( |
||||||
|
model_name='notes', |
||||||
|
name='sender', |
||||||
|
field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='sender_notes', to=settings.AUTH_USER_MODEL), |
||||||
|
), |
||||||
|
migrations.AddField( |
||||||
|
model_name='message', |
||||||
|
name='order', |
||||||
|
field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='order_messages', to='projects.Order'), |
||||||
|
), |
||||||
|
migrations.AddField( |
||||||
|
model_name='message', |
||||||
|
name='recipent', |
||||||
|
field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='recipent_messages', to=settings.AUTH_USER_MODEL), |
||||||
|
), |
||||||
|
migrations.AddField( |
||||||
|
model_name='message', |
||||||
|
name='sender', |
||||||
|
field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='sender_messages', to=settings.AUTH_USER_MODEL), |
||||||
|
), |
||||||
|
] |
||||||
@ -0,0 +1,176 @@ |
|||||||
|
# -*- coding: utf-8 -*- |
||||||
|
# Generated by Django 1.9.7 on 2016-07-21 15:08 |
||||||
|
from __future__ import unicode_literals |
||||||
|
|
||||||
|
from django.db import migrations, models |
||||||
|
import django.db.models.deletion |
||||||
|
import django.utils.timezone |
||||||
|
import mptt.fields |
||||||
|
|
||||||
|
|
||||||
|
class Migration(migrations.Migration): |
||||||
|
|
||||||
|
initial = True |
||||||
|
|
||||||
|
dependencies = [ |
||||||
|
('common', '0001_initial'), |
||||||
|
] |
||||||
|
|
||||||
|
operations = [ |
||||||
|
migrations.CreateModel( |
||||||
|
name='Answer', |
||||||
|
fields=[ |
||||||
|
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), |
||||||
|
('budget', models.DecimalField(decimal_places=0, max_digits=10)), |
||||||
|
('created', models.DateTimeField(default=django.utils.timezone.now)), |
||||||
|
('currency', models.CharField(choices=[('rur', 'RUR'), ('usd', 'USD'), ('eur', 'EUR')], default='rur', max_length=5)), |
||||||
|
('term', models.IntegerField(default=0)), |
||||||
|
('term_type', models.CharField(choices=[('project', 'За проект'), ('hour', 'За час'), ('day', 'За день'), ('month', 'За месяц')], default='hour', max_length=10)), |
||||||
|
('text', models.TextField()), |
||||||
|
], |
||||||
|
options={ |
||||||
|
'verbose_name': 'Ответ к проекту', |
||||||
|
'ordering': ('-created',), |
||||||
|
'verbose_name_plural': 'Ответы к проектам', |
||||||
|
}, |
||||||
|
), |
||||||
|
migrations.CreateModel( |
||||||
|
name='BuildingClassfication', |
||||||
|
fields=[ |
||||||
|
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), |
||||||
|
('name', models.CharField(max_length=255)), |
||||||
|
], |
||||||
|
options={ |
||||||
|
'verbose_name': 'Тип здания', |
||||||
|
'verbose_name_plural': 'Типы зданий', |
||||||
|
}, |
||||||
|
), |
||||||
|
migrations.CreateModel( |
||||||
|
name='Candidate', |
||||||
|
fields=[ |
||||||
|
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), |
||||||
|
('status', models.BooleanField(default=False)), |
||||||
|
], |
||||||
|
options={ |
||||||
|
'verbose_name': 'Кандидат', |
||||||
|
'verbose_name_plural': 'Кандидаты', |
||||||
|
}, |
||||||
|
), |
||||||
|
migrations.CreateModel( |
||||||
|
name='ConstructionType', |
||||||
|
fields=[ |
||||||
|
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), |
||||||
|
('name', models.CharField(max_length=255)), |
||||||
|
], |
||||||
|
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')), |
||||||
|
('created', models.DateTimeField(default=django.utils.timezone.now)), |
||||||
|
('secure', models.BooleanField(default=False)), |
||||||
|
('status', models.BooleanField(default=False)), |
||||||
|
], |
||||||
|
options={ |
||||||
|
'verbose_name': 'Заказ', |
||||||
|
'verbose_name_plural': 'Заказы', |
||||||
|
}, |
||||||
|
), |
||||||
|
migrations.CreateModel( |
||||||
|
name='Portfolio', |
||||||
|
fields=[ |
||||||
|
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), |
||||||
|
('budget', models.DecimalField(blank=True, decimal_places=0, default=0, max_digits=10, null=True)), |
||||||
|
('currency', models.CharField(blank=True, choices=[('rur', 'RUR'), ('usd', 'USD'), ('eur', 'EUR')], default='rur', max_length=20, null=True)), |
||||||
|
('description', models.TextField()), |
||||||
|
('name', models.CharField(max_length=255)), |
||||||
|
('term', models.IntegerField(blank=True, default=0, null=True)), |
||||||
|
('term_type', models.CharField(blank=True, choices=[('project', 'За проект'), ('hour', 'За час'), ('day', 'За день'), ('month', 'За месяц')], default='hour', max_length=20, null=True)), |
||||||
|
('worksell', models.BooleanField(default=False)), |
||||||
|
], |
||||||
|
options={ |
||||||
|
'verbose_name': 'Портфолио', |
||||||
|
'verbose_name_plural': 'Портфолио', |
||||||
|
}, |
||||||
|
), |
||||||
|
migrations.CreateModel( |
||||||
|
name='PortfolioPhoto', |
||||||
|
fields=[ |
||||||
|
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), |
||||||
|
('img', models.ImageField(upload_to='projects/portfolio')), |
||||||
|
], |
||||||
|
options={ |
||||||
|
'verbose_name': 'Фото портфолио', |
||||||
|
'verbose_name_plural': 'Фото портфолио', |
||||||
|
}, |
||||||
|
), |
||||||
|
migrations.CreateModel( |
||||||
|
name='Project', |
||||||
|
fields=[ |
||||||
|
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), |
||||||
|
('budget', models.DecimalField(decimal_places=0, max_digits=10)), |
||||||
|
('budget_by_agreement', models.BooleanField(default=False)), |
||||||
|
('created', models.DateTimeField(default=django.utils.timezone.now)), |
||||||
|
('cro', models.BooleanField(default=False)), |
||||||
|
('currency', models.CharField(choices=[('rur', 'RUR'), ('usd', 'USD'), ('eur', 'EUR')], default='rur', max_length=20)), |
||||||
|
('deal_type', models.CharField(choices=[('secure_deal', 'Безопасная сделка (с резервированием бюджета) '), ('direct_payment', 'Прямая оплата Исполнителю на его кошелек/счет')], default='secure_deal', max_length=20)), |
||||||
|
('name', models.CharField(max_length=255)), |
||||||
|
('price_and_term_required', models.BooleanField(default=False)), |
||||||
|
('state', models.CharField(choices=[('active', 'Активный'), ('trashed', 'В корзине'), ('deleted', 'Удален')], default='active', max_length=20)), |
||||||
|
('term', models.IntegerField(default=0)), |
||||||
|
('term_type', models.CharField(choices=[('project', 'За проект'), ('hour', 'За час'), ('day', 'За день'), ('month', 'За месяц')], default='hour', max_length=20)), |
||||||
|
('text', models.TextField(blank=True)), |
||||||
|
('work_type', models.IntegerField(choices=[(1, 'Проектирование'), (2, 'Техническое сопровождение')], default=1)), |
||||||
|
], |
||||||
|
options={ |
||||||
|
'verbose_name': 'Проект', |
||||||
|
'verbose_name_plural': 'Проекты', |
||||||
|
}, |
||||||
|
), |
||||||
|
migrations.CreateModel( |
||||||
|
name='ProjectFile', |
||||||
|
fields=[ |
||||||
|
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), |
||||||
|
('file', models.FileField(upload_to='projects/project_files')), |
||||||
|
], |
||||||
|
options={ |
||||||
|
'verbose_name': 'Файл проекта', |
||||||
|
'verbose_name_plural': 'Файлы проектов', |
||||||
|
}, |
||||||
|
), |
||||||
|
migrations.CreateModel( |
||||||
|
name='Realty', |
||||||
|
fields=[ |
||||||
|
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), |
||||||
|
('name', models.CharField(max_length=255)), |
||||||
|
('building_classification', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='realties', to='projects.BuildingClassfication')), |
||||||
|
('construction_type', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='realties', to='projects.ConstructionType')), |
||||||
|
('location', mptt.fields.TreeForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='realties', to='common.Location')), |
||||||
|
], |
||||||
|
options={ |
||||||
|
'verbose_name': 'Объект', |
||||||
|
'verbose_name_plural': 'Объекты', |
||||||
|
}, |
||||||
|
), |
||||||
|
migrations.CreateModel( |
||||||
|
name='Stage', |
||||||
|
fields=[ |
||||||
|
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), |
||||||
|
('cost', models.DecimalField(decimal_places=0, max_digits=10)), |
||||||
|
('cost_type', models.CharField(choices=[('rur', 'RUR'), ('usd', 'USD'), ('eur', 'EUR')], default='rur', max_length=5)), |
||||||
|
('name', models.CharField(max_length=255)), |
||||||
|
('result', models.CharField(max_length=255)), |
||||||
|
('term', models.IntegerField(default=0)), |
||||||
|
('term_type', models.CharField(choices=[('project', 'За проект'), ('hour', 'За час'), ('day', 'За день'), ('month', 'За месяц')], default='hour', max_length=10)), |
||||||
|
('order', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='stages', to='projects.Order')), |
||||||
|
], |
||||||
|
options={ |
||||||
|
'verbose_name': 'Этап', |
||||||
|
'verbose_name_plural': 'Этапы', |
||||||
|
}, |
||||||
|
), |
||||||
|
] |
||||||
@ -0,0 +1,114 @@ |
|||||||
|
# -*- coding: utf-8 -*- |
||||||
|
# Generated by Django 1.9.7 on 2016-07-21 15:08 |
||||||
|
from __future__ import unicode_literals |
||||||
|
|
||||||
|
from django.conf import settings |
||||||
|
from django.db import migrations, models |
||||||
|
import django.db.models.deletion |
||||||
|
import mptt.fields |
||||||
|
|
||||||
|
|
||||||
|
class Migration(migrations.Migration): |
||||||
|
|
||||||
|
initial = True |
||||||
|
|
||||||
|
dependencies = [ |
||||||
|
migrations.swappable_dependency(settings.AUTH_USER_MODEL), |
||||||
|
('users', '0001_initial'), |
||||||
|
('common', '0001_initial'), |
||||||
|
('projects', '0001_initial'), |
||||||
|
('specializations', '0001_initial'), |
||||||
|
] |
||||||
|
|
||||||
|
operations = [ |
||||||
|
migrations.AddField( |
||||||
|
model_name='realty', |
||||||
|
name='user', |
||||||
|
field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='realties', to=settings.AUTH_USER_MODEL), |
||||||
|
), |
||||||
|
migrations.AddField( |
||||||
|
model_name='projectfile', |
||||||
|
name='project', |
||||||
|
field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='files', to='projects.Project'), |
||||||
|
), |
||||||
|
migrations.AddField( |
||||||
|
model_name='project', |
||||||
|
name='customer', |
||||||
|
field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='projects', to=settings.AUTH_USER_MODEL), |
||||||
|
), |
||||||
|
migrations.AddField( |
||||||
|
model_name='project', |
||||||
|
name='realty', |
||||||
|
field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='projects', to='projects.Realty'), |
||||||
|
), |
||||||
|
migrations.AddField( |
||||||
|
model_name='project', |
||||||
|
name='specialization', |
||||||
|
field=mptt.fields.TreeForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='projects', to='specializations.Specialization'), |
||||||
|
), |
||||||
|
migrations.AddField( |
||||||
|
model_name='portfoliophoto', |
||||||
|
name='portfolio', |
||||||
|
field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='photos', to='projects.Portfolio'), |
||||||
|
), |
||||||
|
migrations.AddField( |
||||||
|
model_name='portfolio', |
||||||
|
name='building_classification', |
||||||
|
field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='portfolios', to='projects.BuildingClassfication'), |
||||||
|
), |
||||||
|
migrations.AddField( |
||||||
|
model_name='portfolio', |
||||||
|
name='construction_type', |
||||||
|
field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='portfolios', to='projects.ConstructionType'), |
||||||
|
), |
||||||
|
migrations.AddField( |
||||||
|
model_name='portfolio', |
||||||
|
name='location', |
||||||
|
field=mptt.fields.TreeForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='portfolios', to='common.Location'), |
||||||
|
), |
||||||
|
migrations.AddField( |
||||||
|
model_name='portfolio', |
||||||
|
name='specialization', |
||||||
|
field=mptt.fields.TreeForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='portfolios', to='specializations.Specialization'), |
||||||
|
), |
||||||
|
migrations.AddField( |
||||||
|
model_name='portfolio', |
||||||
|
name='team', |
||||||
|
field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='portfolios', to='users.Team'), |
||||||
|
), |
||||||
|
migrations.AddField( |
||||||
|
model_name='portfolio', |
||||||
|
name='user', |
||||||
|
field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='portfolios', to=settings.AUTH_USER_MODEL), |
||||||
|
), |
||||||
|
migrations.AddField( |
||||||
|
model_name='order', |
||||||
|
name='contractor', |
||||||
|
field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='orders', to=settings.AUTH_USER_MODEL), |
||||||
|
), |
||||||
|
migrations.AddField( |
||||||
|
model_name='order', |
||||||
|
name='project', |
||||||
|
field=models.OneToOneField(on_delete=django.db.models.deletion.CASCADE, related_name='order', to='projects.Project'), |
||||||
|
), |
||||||
|
migrations.AddField( |
||||||
|
model_name='candidate', |
||||||
|
name='answer', |
||||||
|
field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='candidates', to='projects.Answer'), |
||||||
|
), |
||||||
|
migrations.AddField( |
||||||
|
model_name='candidate', |
||||||
|
name='project', |
||||||
|
field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='candidates', to='projects.Project'), |
||||||
|
), |
||||||
|
migrations.AddField( |
||||||
|
model_name='answer', |
||||||
|
name='contractor', |
||||||
|
field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='answers', to=settings.AUTH_USER_MODEL), |
||||||
|
), |
||||||
|
migrations.AddField( |
||||||
|
model_name='answer', |
||||||
|
name='project', |
||||||
|
field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='answers', to='projects.Project'), |
||||||
|
), |
||||||
|
] |
||||||
@ -0,0 +1,30 @@ |
|||||||
|
# -*- coding: utf-8 -*- |
||||||
|
# Generated by Django 1.9.7 on 2016-07-21 15:08 |
||||||
|
from __future__ import unicode_literals |
||||||
|
|
||||||
|
import django.core.validators |
||||||
|
from django.db import migrations, models |
||||||
|
|
||||||
|
|
||||||
|
class Migration(migrations.Migration): |
||||||
|
|
||||||
|
initial = True |
||||||
|
|
||||||
|
dependencies = [ |
||||||
|
] |
||||||
|
|
||||||
|
operations = [ |
||||||
|
migrations.CreateModel( |
||||||
|
name='Review', |
||||||
|
fields=[ |
||||||
|
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), |
||||||
|
('is_secured', models.BooleanField(default=False)), |
||||||
|
('stars', models.IntegerField(validators=[django.core.validators.MinValueValidator(1), django.core.validators.MaxValueValidator(5)])), |
||||||
|
('text', models.TextField()), |
||||||
|
], |
||||||
|
options={ |
||||||
|
'verbose_name': 'Отзыв', |
||||||
|
'verbose_name_plural': 'Отзывы', |
||||||
|
}, |
||||||
|
), |
||||||
|
] |
||||||
@ -0,0 +1,46 @@ |
|||||||
|
# -*- coding: utf-8 -*- |
||||||
|
# Generated by Django 1.9.7 on 2016-07-21 15:08 |
||||||
|
from __future__ import unicode_literals |
||||||
|
|
||||||
|
from django.conf import settings |
||||||
|
from django.db import migrations, models |
||||||
|
import django.db.models.deletion |
||||||
|
|
||||||
|
|
||||||
|
class Migration(migrations.Migration): |
||||||
|
|
||||||
|
initial = True |
||||||
|
|
||||||
|
dependencies = [ |
||||||
|
migrations.swappable_dependency(settings.AUTH_USER_MODEL), |
||||||
|
('reviews', '0001_initial'), |
||||||
|
('projects', '0002_auto_20160721_1808'), |
||||||
|
] |
||||||
|
|
||||||
|
operations = [ |
||||||
|
migrations.AddField( |
||||||
|
model_name='review', |
||||||
|
name='from_contractor', |
||||||
|
field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='customer_reviews', to=settings.AUTH_USER_MODEL), |
||||||
|
), |
||||||
|
migrations.AddField( |
||||||
|
model_name='review', |
||||||
|
name='from_customer', |
||||||
|
field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='contractor_reviews', to=settings.AUTH_USER_MODEL), |
||||||
|
), |
||||||
|
migrations.AddField( |
||||||
|
model_name='review', |
||||||
|
name='project', |
||||||
|
field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='reviews', to='projects.Project'), |
||||||
|
), |
||||||
|
migrations.AddField( |
||||||
|
model_name='review', |
||||||
|
name='target_contractor', |
||||||
|
field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='reviews_by_customer', to=settings.AUTH_USER_MODEL), |
||||||
|
), |
||||||
|
migrations.AddField( |
||||||
|
model_name='review', |
||||||
|
name='target_customer', |
||||||
|
field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='reviews_by_contractor', to=settings.AUTH_USER_MODEL), |
||||||
|
), |
||||||
|
] |
||||||
@ -0,0 +1,34 @@ |
|||||||
|
# -*- coding: utf-8 -*- |
||||||
|
# Generated by Django 1.9.7 on 2016-07-21 15:08 |
||||||
|
from __future__ import unicode_literals |
||||||
|
|
||||||
|
from django.db import migrations, models |
||||||
|
import django.db.models.deletion |
||||||
|
import mptt.fields |
||||||
|
|
||||||
|
|
||||||
|
class Migration(migrations.Migration): |
||||||
|
|
||||||
|
initial = True |
||||||
|
|
||||||
|
dependencies = [ |
||||||
|
] |
||||||
|
|
||||||
|
operations = [ |
||||||
|
migrations.CreateModel( |
||||||
|
name='Specialization', |
||||||
|
fields=[ |
||||||
|
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), |
||||||
|
('name', models.CharField(max_length=100)), |
||||||
|
('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='specializations.Specialization')), |
||||||
|
], |
||||||
|
options={ |
||||||
|
'verbose_name': 'Специализация', |
||||||
|
'verbose_name_plural': 'Специализации', |
||||||
|
}, |
||||||
|
), |
||||||
|
] |
||||||
@ -0,0 +1,149 @@ |
|||||||
|
# -*- coding: utf-8 -*- |
||||||
|
# Generated by Django 1.9.7 on 2016-07-21 15:08 |
||||||
|
from __future__ import unicode_literals |
||||||
|
|
||||||
|
from django.conf import settings |
||||||
|
from django.db import migrations, models |
||||||
|
import django.db.models.deletion |
||||||
|
import django.utils.timezone |
||||||
|
import mptt.fields |
||||||
|
|
||||||
|
|
||||||
|
class Migration(migrations.Migration): |
||||||
|
|
||||||
|
initial = True |
||||||
|
|
||||||
|
dependencies = [ |
||||||
|
('auth', '0007_alter_validators_add_error_messages'), |
||||||
|
('common', '0001_initial'), |
||||||
|
('specializations', '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')), |
||||||
|
('is_superuser', models.BooleanField(default=False, help_text='Designates that this user has all permissions without explicitly assigning them.', verbose_name='superuser status')), |
||||||
|
('avatar', models.ImageField(blank=True, upload_to='users/avatars/')), |
||||||
|
('contractor_status', models.CharField(choices=[('free', 'Свободен'), ('busy', 'Занят')], default='free', max_length=20)), |
||||||
|
('created', models.DateTimeField(default=django.utils.timezone.now)), |
||||||
|
('cro', models.BooleanField(default=False)), |
||||||
|
('date_joined', models.DateTimeField(default=django.utils.timezone.now)), |
||||||
|
('date_of_birth', models.DateTimeField(blank=True, null=True)), |
||||||
|
('email', models.EmailField(db_index=True, max_length=255, unique=True)), |
||||||
|
('first_name', models.CharField(blank=True, max_length=255)), |
||||||
|
('gender', models.CharField(blank=True, choices=[('male', 'Мужской'), ('female', 'Женский')], max_length=30)), |
||||||
|
('is_active', models.BooleanField(default=True)), |
||||||
|
('last_name', models.CharField(blank=True, max_length=255)), |
||||||
|
('last_time_visit', models.DateTimeField(default=django.utils.timezone.now)), |
||||||
|
('patronym', models.CharField(blank=True, max_length=255)), |
||||||
|
('phone', models.CharField(blank=True, max_length=30, null=True)), |
||||||
|
('skype', models.CharField(blank=True, max_length=100)), |
||||||
|
('username', models.CharField(max_length=50, unique=True)), |
||||||
|
('website', models.CharField(blank=True, max_length=255)), |
||||||
|
], |
||||||
|
options={ |
||||||
|
'verbose_name': 'Пользователь', |
||||||
|
'verbose_name_plural': 'Пользователи', |
||||||
|
}, |
||||||
|
), |
||||||
|
migrations.CreateModel( |
||||||
|
name='ContractorFinancialInfo', |
||||||
|
fields=[ |
||||||
|
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), |
||||||
|
('credit_card_number', models.CharField(max_length=50)), |
||||||
|
('date_of_birth', models.DateTimeField()), |
||||||
|
('fio', models.CharField(max_length=255)), |
||||||
|
('inn', models.CharField(max_length=100)), |
||||||
|
('legal_status', models.CharField(choices=[('individual', 'Физическое лицо'), ('legal_entity', 'ИП и юридическое лицо')], max_length=30)), |
||||||
|
('passport_issue_date', models.DateTimeField()), |
||||||
|
('passport_issued_by', models.CharField(max_length=255)), |
||||||
|
('passport_number', models.CharField(max_length=10)), |
||||||
|
('passport_scan', models.ImageField(upload_to='users/contractors/')), |
||||||
|
('passport_series', models.CharField(max_length=6)), |
||||||
|
('phone', models.CharField(max_length=30)), |
||||||
|
('residency', models.CharField(choices=[('russian_resident', 'Резидент РФ'), ('non_russian_resident', 'Нерезидент РФ'), ('refugee', 'Беженец'), ('russian_stay_permit', 'Вид на жительство')], max_length=50)), |
||||||
|
('subdivision_code', models.CharField(max_length=10)), |
||||||
|
('yandex_money', models.CharField(max_length=50)), |
||||||
|
], |
||||||
|
options={ |
||||||
|
'verbose_name': 'Финансовая информация', |
||||||
|
'verbose_name_plural': 'Финансовая информация', |
||||||
|
}, |
||||||
|
), |
||||||
|
migrations.CreateModel( |
||||||
|
name='ContractorResume', |
||||||
|
fields=[ |
||||||
|
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), |
||||||
|
('resume_file', models.FileField(upload_to='users/resume/files/')), |
||||||
|
('text', models.TextField()), |
||||||
|
], |
||||||
|
options={ |
||||||
|
'verbose_name': 'Резюме', |
||||||
|
'verbose_name_plural': 'Резюме', |
||||||
|
}, |
||||||
|
), |
||||||
|
migrations.CreateModel( |
||||||
|
name='ContractorResumeFiles', |
||||||
|
fields=[ |
||||||
|
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), |
||||||
|
('description', models.TextField(blank=True)), |
||||||
|
('img', models.ImageField(upload_to='users/resume/images/')), |
||||||
|
('title', models.CharField(max_length=255)), |
||||||
|
('type', models.CharField(choices=[('diplom', 'Дипломы/Сертификаты'), ('cro', 'Допуск CPO')], max_length=50)), |
||||||
|
('resume', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='resume_files', to='users.ContractorResume')), |
||||||
|
], |
||||||
|
options={ |
||||||
|
'verbose_name': 'Файлы резюме', |
||||||
|
'verbose_name_plural': 'Файлы резюме', |
||||||
|
}, |
||||||
|
), |
||||||
|
migrations.CreateModel( |
||||||
|
name='Team', |
||||||
|
fields=[ |
||||||
|
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), |
||||||
|
('created', models.DateTimeField(default=django.utils.timezone.now)), |
||||||
|
('name', models.CharField(max_length=255)), |
||||||
|
('owner', models.OneToOneField(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='team', to=settings.AUTH_USER_MODEL)), |
||||||
|
('specializations', mptt.fields.TreeManyToManyField(blank=True, related_name='teams', to='specializations.Specialization')), |
||||||
|
('users', models.ManyToManyField(blank=True, related_name='teams', to=settings.AUTH_USER_MODEL)), |
||||||
|
], |
||||||
|
options={ |
||||||
|
'verbose_name': 'Команда', |
||||||
|
'verbose_name_plural': 'Команды', |
||||||
|
}, |
||||||
|
), |
||||||
|
migrations.AddField( |
||||||
|
model_name='user', |
||||||
|
name='contractor_financial_info', |
||||||
|
field=models.OneToOneField(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='contractor', to='users.ContractorFinancialInfo'), |
||||||
|
), |
||||||
|
migrations.AddField( |
||||||
|
model_name='user', |
||||||
|
name='contractor_resume', |
||||||
|
field=models.OneToOneField(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='contractor', to='users.ContractorResume'), |
||||||
|
), |
||||||
|
migrations.AddField( |
||||||
|
model_name='user', |
||||||
|
name='contractor_specializations', |
||||||
|
field=mptt.fields.TreeManyToManyField(blank=True, related_name='contractors', to='specializations.Specialization'), |
||||||
|
), |
||||||
|
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='location', |
||||||
|
field=mptt.fields.TreeForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='users', to='common.Location'), |
||||||
|
), |
||||||
|
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,69 @@ |
|||||||
|
# -*- coding: utf-8 -*- |
||||||
|
# Generated by Django 1.9.7 on 2016-07-21 15:08 |
||||||
|
from __future__ import unicode_literals |
||||||
|
|
||||||
|
from django.conf import settings |
||||||
|
from django.db import migrations, models |
||||||
|
import django.db.models.deletion |
||||||
|
import django.utils.timezone |
||||||
|
import mptt.fields |
||||||
|
import sorl.thumbnail.fields |
||||||
|
|
||||||
|
|
||||||
|
class Migration(migrations.Migration): |
||||||
|
|
||||||
|
initial = True |
||||||
|
|
||||||
|
dependencies = [ |
||||||
|
migrations.swappable_dependency(settings.AUTH_USER_MODEL), |
||||||
|
('common', '0001_initial'), |
||||||
|
('projects', '0001_initial'), |
||||||
|
('specializations', '0001_initial'), |
||||||
|
] |
||||||
|
|
||||||
|
operations = [ |
||||||
|
migrations.CreateModel( |
||||||
|
name='Picture', |
||||||
|
fields=[ |
||||||
|
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), |
||||||
|
('file', models.ImageField(upload_to='worksell/pictures')), |
||||||
|
('slug', models.SlugField(blank=True)), |
||||||
|
], |
||||||
|
), |
||||||
|
migrations.CreateModel( |
||||||
|
name='WorkSell', |
||||||
|
fields=[ |
||||||
|
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), |
||||||
|
('budget', models.DecimalField(blank=True, decimal_places=0, default=0, max_digits=10, null=True)), |
||||||
|
('created', models.DateTimeField(blank=True, default=django.utils.timezone.now, null=True)), |
||||||
|
('currency', models.CharField(blank=True, choices=[('rur', 'RUR'), ('usd', 'USD'), ('eur', 'EUR')], default='rur', max_length=20, null=True)), |
||||||
|
('description', models.TextField(blank=True)), |
||||||
|
('img', sorl.thumbnail.fields.ImageField(blank=True, null=True, upload_to='worksell/worksell')), |
||||||
|
('name', models.CharField(max_length=255)), |
||||||
|
('term', models.IntegerField(blank=True, default=0, null=True)), |
||||||
|
('term_type', models.CharField(blank=True, choices=[('project', 'За проект'), ('hour', 'За час'), ('day', 'За день'), ('month', 'За месяц')], default='hour', max_length=20, null=True)), |
||||||
|
('building_classification', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='worksells', to='projects.BuildingClassfication')), |
||||||
|
('construction_type', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='worksells', to='projects.ConstructionType')), |
||||||
|
('contractor', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='work_sell', to=settings.AUTH_USER_MODEL)), |
||||||
|
('location', mptt.fields.TreeForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='worksells', to='common.Location')), |
||||||
|
('specialization', mptt.fields.TreeForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='worksells', to='specializations.Specialization')), |
||||||
|
], |
||||||
|
options={ |
||||||
|
'verbose_name': 'Готовая работа', |
||||||
|
'ordering': ['-created'], |
||||||
|
'verbose_name_plural': 'Готовые работы', |
||||||
|
}, |
||||||
|
), |
||||||
|
migrations.CreateModel( |
||||||
|
name='WorkSellPhoto', |
||||||
|
fields=[ |
||||||
|
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), |
||||||
|
('img', sorl.thumbnail.fields.ImageField(upload_to='worksell/worksell')), |
||||||
|
('worksell', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='photos', to='work_sell.WorkSell')), |
||||||
|
], |
||||||
|
options={ |
||||||
|
'verbose_name': 'Изображение Готовая работа', |
||||||
|
'verbose_name_plural': 'Изображения Готовые работы', |
||||||
|
}, |
||||||
|
), |
||||||
|
] |
||||||
Loading…
Reference in new issue