-
diff --git a/users/migrations/0001_initial.py b/users/migrations/0001_initial.py
new file mode 100644
index 0000000..b55587f
--- /dev/null
+++ b/users/migrations/0001_initial.py
@@ -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'),
+ ),
+ ]
diff --git a/users/migrations/0002_team_groups.py b/users/migrations/0002_team_groups.py
new file mode 100644
index 0000000..54251cc
--- /dev/null
+++ b/users/migrations/0002_team_groups.py
@@ -0,0 +1,21 @@
+# -*- coding: utf-8 -*-
+# Generated by Django 1.9.6 on 2016-05-19 14:52
+from __future__ import unicode_literals
+
+from django.db import migrations, models
+
+
+class Migration(migrations.Migration):
+
+ dependencies = [
+ ('auth', '0007_alter_validators_add_error_messages'),
+ ('users', '0001_initial'),
+ ]
+
+ operations = [
+ migrations.AddField(
+ model_name='team',
+ name='groups',
+ field=models.ManyToManyField(blank=True, related_name='teams', to='auth.Group'),
+ ),
+ ]
diff --git a/users/migrations/0003_user_created_at.py b/users/migrations/0003_user_created_at.py
new file mode 100644
index 0000000..5f63c7f
--- /dev/null
+++ b/users/migrations/0003_user_created_at.py
@@ -0,0 +1,21 @@
+# -*- coding: utf-8 -*-
+# Generated by Django 1.9.6 on 2016-05-24 10:52
+from __future__ import unicode_literals
+
+import datetime
+from django.db import migrations, models
+
+
+class Migration(migrations.Migration):
+
+ dependencies = [
+ ('users', '0002_team_groups'),
+ ]
+
+ operations = [
+ migrations.AddField(
+ model_name='user',
+ name='created_at',
+ field=models.DateTimeField(default=datetime.datetime(2016, 5, 24, 10, 52, 56, 737277)),
+ ),
+ ]
diff --git a/users/migrations/0004_auto_20160524_1053.py b/users/migrations/0004_auto_20160524_1053.py
new file mode 100644
index 0000000..0f71065
--- /dev/null
+++ b/users/migrations/0004_auto_20160524_1053.py
@@ -0,0 +1,25 @@
+# -*- coding: utf-8 -*-
+# Generated by Django 1.9.6 on 2016-05-24 10:53
+from __future__ import unicode_literals
+
+import datetime
+from django.db import migrations, models
+
+
+class Migration(migrations.Migration):
+
+ dependencies = [
+ ('users', '0003_user_created_at'),
+ ]
+
+ operations = [
+ migrations.RemoveField(
+ model_name='team',
+ name='groups',
+ ),
+ migrations.AlterField(
+ model_name='user',
+ name='created_at',
+ field=models.DateTimeField(default=datetime.datetime(2016, 5, 24, 10, 53, 15, 497921)),
+ ),
+ ]
diff --git a/users/migrations/0005_auto_20160524_1054.py b/users/migrations/0005_auto_20160524_1054.py
new file mode 100644
index 0000000..4a80d14
--- /dev/null
+++ b/users/migrations/0005_auto_20160524_1054.py
@@ -0,0 +1,25 @@
+# -*- coding: utf-8 -*-
+# Generated by Django 1.9.6 on 2016-05-24 10:54
+from __future__ import unicode_literals
+
+import datetime
+from django.db import migrations, models
+
+
+class Migration(migrations.Migration):
+
+ dependencies = [
+ ('users', '0004_auto_20160524_1053'),
+ ]
+
+ operations = [
+ migrations.RemoveField(
+ model_name='user',
+ name='created_at',
+ ),
+ migrations.AddField(
+ model_name='user',
+ name='created',
+ field=models.DateTimeField(default=datetime.datetime(2016, 5, 24, 10, 54, 13, 805566)),
+ ),
+ ]
diff --git a/users/migrations/0006_auto_20160525_0948.py b/users/migrations/0006_auto_20160525_0948.py
new file mode 100644
index 0000000..79ef51b
--- /dev/null
+++ b/users/migrations/0006_auto_20160525_0948.py
@@ -0,0 +1,21 @@
+# -*- coding: utf-8 -*-
+# Generated by Django 1.9.6 on 2016-05-25 09:48
+from __future__ import unicode_literals
+
+import datetime
+from django.db import migrations, models
+
+
+class Migration(migrations.Migration):
+
+ dependencies = [
+ ('users', '0005_auto_20160524_1054'),
+ ]
+
+ operations = [
+ migrations.AlterField(
+ model_name='user',
+ name='created',
+ field=models.DateTimeField(default=datetime.datetime(2016, 5, 25, 9, 48, 35, 257077)),
+ ),
+ ]
diff --git a/users/migrations/0007_auto_20160525_1526.py b/users/migrations/0007_auto_20160525_1526.py
new file mode 100644
index 0000000..f3c493a
--- /dev/null
+++ b/users/migrations/0007_auto_20160525_1526.py
@@ -0,0 +1,21 @@
+# -*- coding: utf-8 -*-
+# Generated by Django 1.9.6 on 2016-05-25 15:26
+from __future__ import unicode_literals
+
+import datetime
+from django.db import migrations, models
+
+
+class Migration(migrations.Migration):
+
+ dependencies = [
+ ('users', '0006_auto_20160525_0948'),
+ ]
+
+ operations = [
+ migrations.AlterField(
+ model_name='user',
+ name='created',
+ field=models.DateTimeField(default=datetime.datetime(2016, 5, 25, 15, 26, 33, 142994)),
+ ),
+ ]
diff --git a/users/migrations/0008_auto_20160525_1527.py b/users/migrations/0008_auto_20160525_1527.py
new file mode 100644
index 0000000..cd55854
--- /dev/null
+++ b/users/migrations/0008_auto_20160525_1527.py
@@ -0,0 +1,21 @@
+# -*- coding: utf-8 -*-
+# Generated by Django 1.9.6 on 2016-05-25 15:27
+from __future__ import unicode_literals
+
+from django.db import migrations, models
+import django.utils.timezone
+
+
+class Migration(migrations.Migration):
+
+ dependencies = [
+ ('users', '0007_auto_20160525_1526'),
+ ]
+
+ operations = [
+ migrations.AlterField(
+ model_name='user',
+ name='created',
+ field=models.DateTimeField(default=django.utils.timezone.now),
+ ),
+ ]
diff --git a/users/migrations/0009_auto_20160602_1213.py b/users/migrations/0009_auto_20160602_1213.py
new file mode 100644
index 0000000..d614b22
--- /dev/null
+++ b/users/migrations/0009_auto_20160602_1213.py
@@ -0,0 +1,27 @@
+# -*- coding: utf-8 -*-
+# Generated by Django 1.9.6 on 2016-06-02 12:13
+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):
+
+ dependencies = [
+ ('users', '0008_auto_20160525_1527'),
+ ]
+
+ operations = [
+ migrations.AddField(
+ model_name='user',
+ name='nickname',
+ field=models.CharField(blank=True, max_length=50, null=True),
+ ),
+ migrations.AlterField(
+ model_name='team',
+ name='owner',
+ field=models.OneToOneField(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='team', to=settings.AUTH_USER_MODEL),
+ ),
+ ]
diff --git a/users/migrations/0010_user_last_time_visit.py b/users/migrations/0010_user_last_time_visit.py
new file mode 100644
index 0000000..9932460
--- /dev/null
+++ b/users/migrations/0010_user_last_time_visit.py
@@ -0,0 +1,21 @@
+# -*- coding: utf-8 -*-
+# Generated by Django 1.9.6 on 2016-06-03 12:15
+from __future__ import unicode_literals
+
+from django.db import migrations, models
+import django.utils.timezone
+
+
+class Migration(migrations.Migration):
+
+ dependencies = [
+ ('users', '0009_auto_20160602_1213'),
+ ]
+
+ operations = [
+ migrations.AddField(
+ model_name='user',
+ name='last_time_visit',
+ field=models.DateTimeField(default=django.utils.timezone.now),
+ ),
+ ]
diff --git a/users/migrations/0011_user_contractor_specializations.py b/users/migrations/0011_user_contractor_specializations.py
new file mode 100644
index 0000000..f8050dc
--- /dev/null
+++ b/users/migrations/0011_user_contractor_specializations.py
@@ -0,0 +1,21 @@
+# -*- coding: utf-8 -*-
+# Generated by Django 1.9.6 on 2016-06-08 15:01
+from __future__ import unicode_literals
+
+from django.db import migrations, models
+
+
+class Migration(migrations.Migration):
+
+ dependencies = [
+ ('specializations', '0002_auto_20160602_1203'),
+ ('users', '0010_user_last_time_visit'),
+ ]
+
+ operations = [
+ migrations.AddField(
+ model_name='user',
+ name='contractor_specializations',
+ field=models.ManyToManyField(blank=True, related_name='contractors', to='specializations.Specialization'),
+ ),
+ ]
diff --git a/users/migrations/0012_user_status.py b/users/migrations/0012_user_status.py
new file mode 100644
index 0000000..57dbb7f
--- /dev/null
+++ b/users/migrations/0012_user_status.py
@@ -0,0 +1,20 @@
+# -*- coding: utf-8 -*-
+# Generated by Django 1.9.6 on 2016-06-10 13:58
+from __future__ import unicode_literals
+
+from django.db import migrations, models
+
+
+class Migration(migrations.Migration):
+
+ dependencies = [
+ ('users', '0011_user_contractor_specializations'),
+ ]
+
+ operations = [
+ migrations.AddField(
+ model_name='user',
+ name='status',
+ field=models.CharField(choices=[('free', 'Свободен'), ('busy', 'Занят')], default='free', max_length=20),
+ ),
+ ]
diff --git a/users/migrations/0013_auto_20160610_1703.py b/users/migrations/0013_auto_20160610_1703.py
new file mode 100644
index 0000000..f39186b
--- /dev/null
+++ b/users/migrations/0013_auto_20160610_1703.py
@@ -0,0 +1,20 @@
+# -*- coding: utf-8 -*-
+# Generated by Django 1.9.6 on 2016-06-10 14:03
+from __future__ import unicode_literals
+
+from django.db import migrations
+
+
+class Migration(migrations.Migration):
+
+ dependencies = [
+ ('users', '0012_user_status'),
+ ]
+
+ operations = [
+ migrations.RenameField(
+ model_name='user',
+ old_name='status',
+ new_name='contractor_status',
+ ),
+ ]
diff --git a/users/migrations/0014_auto_20160615_1611.py b/users/migrations/0014_auto_20160615_1611.py
new file mode 100644
index 0000000..130df78
--- /dev/null
+++ b/users/migrations/0014_auto_20160615_1611.py
@@ -0,0 +1,28 @@
+# -*- coding: utf-8 -*-
+# Generated by Django 1.9.6 on 2016-06-15 13:11
+from __future__ import unicode_literals
+
+from django.db import migrations, models
+import django.db.models.deletion
+import mptt.fields
+
+
+class Migration(migrations.Migration):
+
+ dependencies = [
+ ('common', '0001_initial'),
+ ('users', '0013_auto_20160610_1703'),
+ ]
+
+ operations = [
+ 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='patronym',
+ field=models.CharField(blank=True, max_length=255),
+ ),
+ ]
diff --git a/users/migrations/0015_auto_20160615_1747.py b/users/migrations/0015_auto_20160615_1747.py
new file mode 100644
index 0000000..26fcf13
--- /dev/null
+++ b/users/migrations/0015_auto_20160615_1747.py
@@ -0,0 +1,78 @@
+# -*- coding: utf-8 -*-
+# Generated by Django 1.9.6 on 2016-06-15 14:47
+from __future__ import unicode_literals
+
+import datetime
+from django.db import migrations, models
+import django.db.models.deletion
+from django.utils.timezone import utc
+
+
+class Migration(migrations.Migration):
+
+ dependencies = [
+ ('users', '0014_auto_20160615_1611'),
+ ]
+
+ operations = [
+ migrations.CreateModel(
+ name='ContractorFinancialInfo',
+ fields=[
+ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
+ ('fio', models.CharField(max_length=255)),
+ ('date_of_birth', models.DateTimeField()),
+ ('phone', models.CharField(max_length=30)),
+ ('residency', models.CharField(choices=[('russian_resident', 'Резидент РФ'), ('non_russian_resident', 'Нерезидент РФ'), ('refugee', 'Беженец'), ('russian_stay_permit', 'Вид на жительство')], max_length=50)),
+ ('legal_status', models.CharField(choices=[('individual', 'Физическое лицо'), ('legal_entity', 'ИП и Юридическое лицо')], max_length=30)),
+ ('passport_series', models.CharField(max_length=6)),
+ ('passport_number', models.CharField(max_length=10)),
+ ('subdivision_code', models.CharField(max_length=10)),
+ ('passport_issued_by', models.CharField(max_length=255)),
+ ('passport_issue_date', models.DateTimeField()),
+ ('inn', models.CharField(max_length=100)),
+ ('yandex_money', models.CharField(max_length=50)),
+ ('credit_card_number', models.CharField(max_length=50)),
+ ('passport_scan', models.ImageField(upload_to='users/contractors/')),
+ ],
+ options={
+ 'verbose_name': 'Финансовая информация',
+ 'verbose_name_plural': 'Финансовая информация',
+ },
+ ),
+ migrations.AddField(
+ model_name='user',
+ name='avatar',
+ field=models.ImageField(blank=True, upload_to='users/avatars/'),
+ ),
+ migrations.AddField(
+ model_name='user',
+ name='cro',
+ field=models.BooleanField(default=False),
+ ),
+ migrations.AddField(
+ model_name='user',
+ name='date_of_birth',
+ field=models.DateTimeField(default=datetime.datetime(2016, 6, 15, 14, 47, 5, 758769, tzinfo=utc)),
+ preserve_default=False,
+ ),
+ migrations.AddField(
+ model_name='user',
+ name='gender',
+ field=models.CharField(blank=True, choices=[('male', 'Мужской'), ('female', 'Женский')], max_length=30),
+ ),
+ migrations.AddField(
+ model_name='user',
+ name='skype',
+ field=models.CharField(blank=True, max_length=100),
+ ),
+ migrations.AddField(
+ model_name='user',
+ name='website',
+ field=models.CharField(blank=True, max_length=255),
+ ),
+ 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'),
+ ),
+ ]
diff --git a/users/migrations/0016_auto_20160617_1815.py b/users/migrations/0016_auto_20160617_1815.py
new file mode 100644
index 0000000..c917b92
--- /dev/null
+++ b/users/migrations/0016_auto_20160617_1815.py
@@ -0,0 +1,20 @@
+# -*- coding: utf-8 -*-
+# Generated by Django 1.9.6 on 2016-06-17 15:15
+from __future__ import unicode_literals
+
+from django.db import migrations, models
+
+
+class Migration(migrations.Migration):
+
+ dependencies = [
+ ('users', '0015_auto_20160615_1747'),
+ ]
+
+ operations = [
+ migrations.AlterField(
+ model_name='contractorfinancialinfo',
+ name='legal_status',
+ field=models.CharField(choices=[('individual', 'Физическое лицо'), ('legal_entity', 'ИП и юридическое лицо')], max_length=30),
+ ),
+ ]
diff --git a/users/migrations/0017_user_phone.py b/users/migrations/0017_user_phone.py
new file mode 100644
index 0000000..6c51e9d
--- /dev/null
+++ b/users/migrations/0017_user_phone.py
@@ -0,0 +1,20 @@
+# -*- coding: utf-8 -*-
+# Generated by Django 1.9.6 on 2016-06-22 14:03
+from __future__ import unicode_literals
+
+from django.db import migrations, models
+
+
+class Migration(migrations.Migration):
+
+ dependencies = [
+ ('users', '0016_auto_20160617_1815'),
+ ]
+
+ operations = [
+ migrations.AddField(
+ model_name='user',
+ name='phone',
+ field=models.CharField(blank=True, max_length=30, null=True),
+ ),
+ ]
diff --git a/users/migrations/0018_auto_20160710_1838.py b/users/migrations/0018_auto_20160710_1838.py
new file mode 100644
index 0000000..8d8188d
--- /dev/null
+++ b/users/migrations/0018_auto_20160710_1838.py
@@ -0,0 +1,44 @@
+# -*- coding: utf-8 -*-
+# Generated by Django 1.9.6 on 2016-07-10 15:38
+from __future__ import unicode_literals
+
+import datetime
+from django.db import migrations, models
+import django.utils.timezone
+from django.utils.timezone import utc
+import mptt.fields
+
+
+class Migration(migrations.Migration):
+
+ dependencies = [
+ ('users', '0017_user_phone'),
+ ]
+
+ operations = [
+ migrations.RemoveField(
+ model_name='user',
+ name='nickname',
+ ),
+ migrations.AddField(
+ model_name='user',
+ name='data_joined',
+ field=models.DateTimeField(default=django.utils.timezone.now),
+ ),
+ migrations.AddField(
+ model_name='user',
+ name='username',
+ field=models.CharField(default=datetime.datetime(2016, 7, 10, 15, 38, 2, 660834, tzinfo=utc), max_length=50, unique=True),
+ preserve_default=False,
+ ),
+ migrations.AlterField(
+ model_name='user',
+ name='contractor_specializations',
+ field=mptt.fields.TreeManyToManyField(blank=True, related_name='contractors', to='specializations.Specialization'),
+ ),
+ migrations.AlterField(
+ model_name='user',
+ name='date_of_birth',
+ field=models.DateTimeField(blank=True, null=True),
+ ),
+ ]
diff --git a/users/migrations/0019_auto_20160710_1950.py b/users/migrations/0019_auto_20160710_1950.py
new file mode 100644
index 0000000..6472505
--- /dev/null
+++ b/users/migrations/0019_auto_20160710_1950.py
@@ -0,0 +1,20 @@
+# -*- coding: utf-8 -*-
+# Generated by Django 1.9.6 on 2016-07-10 16:50
+from __future__ import unicode_literals
+
+from django.db import migrations
+
+
+class Migration(migrations.Migration):
+
+ dependencies = [
+ ('users', '0018_auto_20160710_1838'),
+ ]
+
+ operations = [
+ migrations.RenameField(
+ model_name='user',
+ old_name='data_joined',
+ new_name='date_joined',
+ ),
+ ]
diff --git a/users/migrations/0020_auto_20160711_1759.py b/users/migrations/0020_auto_20160711_1759.py
new file mode 100644
index 0000000..0d729f3
--- /dev/null
+++ b/users/migrations/0020_auto_20160711_1759.py
@@ -0,0 +1,47 @@
+# -*- coding: utf-8 -*-
+# Generated by Django 1.9.7 on 2016-07-11 14:59
+from __future__ import unicode_literals
+
+from django.db import migrations, models
+import django.db.models.deletion
+
+
+class Migration(migrations.Migration):
+
+ dependencies = [
+ ('users', '0019_auto_20160710_1950'),
+ ]
+
+ operations = [
+ migrations.CreateModel(
+ name='ContractorResume',
+ fields=[
+ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
+ ('text', models.TextField()),
+ ('resume_file', models.FileField(upload_to='users/resume/files/')),
+ ],
+ 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')),
+ ('img', models.ImageField(upload_to='users/resume/images/')),
+ ('title', models.CharField(max_length=255)),
+ ('description', models.TextField(blank=True)),
+ ('type', models.CharField(choices=[('diplom', 'Дипломы/Сертификаты'), ('cro', 'Допуск CPO')], max_length=50)),
+ ],
+ options={
+ 'verbose_name': 'Файлы резюме',
+ 'verbose_name_plural': 'Файлы резюме',
+ },
+ ),
+ 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'),
+ ),
+ ]
diff --git a/users/migrations/0021_contractorresumefiles_resume.py b/users/migrations/0021_contractorresumefiles_resume.py
new file mode 100644
index 0000000..00b4577
--- /dev/null
+++ b/users/migrations/0021_contractorresumefiles_resume.py
@@ -0,0 +1,22 @@
+# -*- coding: utf-8 -*-
+# Generated by Django 1.9.7 on 2016-07-11 16:27
+from __future__ import unicode_literals
+
+from django.db import migrations, models
+import django.db.models.deletion
+
+
+class Migration(migrations.Migration):
+
+ dependencies = [
+ ('users', '0020_auto_20160711_1759'),
+ ]
+
+ operations = [
+ migrations.AddField(
+ model_name='contractorresumefiles',
+ name='resume',
+ field=models.ForeignKey(default=None, on_delete=django.db.models.deletion.CASCADE, related_name='resume_files', to='users.ContractorResume'),
+ preserve_default=False,
+ ),
+ ]
diff --git a/users/migrations/__init__.py b/users/migrations/__init__.py
new file mode 100644
index 0000000..e69de29
diff --git a/work_sell/migrations/0001_initial.py b/work_sell/migrations/0001_initial.py
new file mode 100644
index 0000000..ab99020
--- /dev/null
+++ b/work_sell/migrations/0001_initial.py
@@ -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': 'Изображения Готовые работы',
+ },
+ ),
+ ]
diff --git a/work_sell/migrations/0002_auto_20160607_1755.py b/work_sell/migrations/0002_auto_20160607_1755.py
new file mode 100644
index 0000000..20cd2c9
--- /dev/null
+++ b/work_sell/migrations/0002_auto_20160607_1755.py
@@ -0,0 +1,20 @@
+# -*- coding: utf-8 -*-
+# Generated by Django 1.9.6 on 2016-06-07 14:55
+from __future__ import unicode_literals
+
+from django.db import migrations, models
+
+
+class Migration(migrations.Migration):
+
+ dependencies = [
+ ('work_sell', '0001_initial'),
+ ]
+
+ operations = [
+ migrations.AlterField(
+ model_name='worksell',
+ name='img',
+ field=models.ImageField(upload_to='worksell/worksell'),
+ ),
+ ]
diff --git a/work_sell/migrations/0003_auto_20160621_1259.py b/work_sell/migrations/0003_auto_20160621_1259.py
new file mode 100644
index 0000000..782cf6d
--- /dev/null
+++ b/work_sell/migrations/0003_auto_20160621_1259.py
@@ -0,0 +1,28 @@
+# -*- coding: utf-8 -*-
+# Generated by Django 1.9.6 on 2016-06-21 09:59
+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):
+
+ dependencies = [
+ migrations.swappable_dependency(settings.AUTH_USER_MODEL),
+ ('work_sell', '0002_auto_20160607_1755'),
+ ]
+
+ operations = [
+ migrations.AlterModelOptions(
+ name='worksell',
+ options={'verbose_name': 'Готовая работа', 'verbose_name_plural': 'Готовые работы'},
+ ),
+ migrations.AddField(
+ model_name='worksell',
+ name='contractor',
+ field=models.ForeignKey(default=None, on_delete=django.db.models.deletion.CASCADE, related_name='work_sell', to=settings.AUTH_USER_MODEL),
+ preserve_default=False,
+ ),
+ ]
diff --git a/work_sell/migrations/0004_worksell_price.py b/work_sell/migrations/0004_worksell_price.py
new file mode 100644
index 0000000..31de3be
--- /dev/null
+++ b/work_sell/migrations/0004_worksell_price.py
@@ -0,0 +1,20 @@
+# -*- coding: utf-8 -*-
+# Generated by Django 1.9.6 on 2016-06-21 10:19
+from __future__ import unicode_literals
+
+from django.db import migrations, models
+
+
+class Migration(migrations.Migration):
+
+ dependencies = [
+ ('work_sell', '0003_auto_20160621_1259'),
+ ]
+
+ operations = [
+ migrations.AddField(
+ model_name='worksell',
+ name='price',
+ field=models.DecimalField(decimal_places=0, default=0, max_digits=10),
+ ),
+ ]
diff --git a/work_sell/migrations/0005_auto_20160704_1449.py b/work_sell/migrations/0005_auto_20160704_1449.py
new file mode 100644
index 0000000..7826eec
--- /dev/null
+++ b/work_sell/migrations/0005_auto_20160704_1449.py
@@ -0,0 +1,21 @@
+# -*- coding: utf-8 -*-
+# Generated by Django 1.9.6 on 2016-07-04 11:49
+from __future__ import unicode_literals
+
+from django.db import migrations
+import sorl.thumbnail.fields
+
+
+class Migration(migrations.Migration):
+
+ dependencies = [
+ ('work_sell', '0004_worksell_price'),
+ ]
+
+ operations = [
+ migrations.AlterField(
+ model_name='worksell',
+ name='img',
+ field=sorl.thumbnail.fields.ImageField(upload_to='worksell/worksell'),
+ ),
+ ]
diff --git a/work_sell/migrations/0006_worksellphoto.py b/work_sell/migrations/0006_worksellphoto.py
new file mode 100644
index 0000000..08d2f2c
--- /dev/null
+++ b/work_sell/migrations/0006_worksellphoto.py
@@ -0,0 +1,29 @@
+# -*- coding: utf-8 -*-
+# Generated by Django 1.9.6 on 2016-07-04 15:54
+from __future__ import unicode_literals
+
+from django.db import migrations, models
+import django.db.models.deletion
+import sorl.thumbnail.fields
+
+
+class Migration(migrations.Migration):
+
+ dependencies = [
+ ('work_sell', '0005_auto_20160704_1449'),
+ ]
+
+ operations = [
+ 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': 'Изображения Готовые работы',
+ },
+ ),
+ ]
diff --git a/work_sell/migrations/0007_auto_20160705_1514.py b/work_sell/migrations/0007_auto_20160705_1514.py
new file mode 100644
index 0000000..4d12f7c
--- /dev/null
+++ b/work_sell/migrations/0007_auto_20160705_1514.py
@@ -0,0 +1,25 @@
+# -*- coding: utf-8 -*-
+# Generated by Django 1.9.6 on 2016-07-05 12:14
+from __future__ import unicode_literals
+
+from django.db import migrations, models
+import django.utils.timezone
+
+
+class Migration(migrations.Migration):
+
+ dependencies = [
+ ('work_sell', '0006_worksellphoto'),
+ ]
+
+ operations = [
+ migrations.AlterModelOptions(
+ name='worksell',
+ options={'ordering': ['-created'], 'verbose_name': 'Готовая работа', 'verbose_name_plural': 'Готовые работы'},
+ ),
+ migrations.AddField(
+ model_name='worksell',
+ name='created',
+ field=models.DateTimeField(default=django.utils.timezone.now),
+ ),
+ ]
diff --git a/work_sell/migrations/0008_auto_20160706_1249.py b/work_sell/migrations/0008_auto_20160706_1249.py
new file mode 100644
index 0000000..569d9b3
--- /dev/null
+++ b/work_sell/migrations/0008_auto_20160706_1249.py
@@ -0,0 +1,67 @@
+# -*- coding: utf-8 -*-
+# Generated by Django 1.9.6 on 2016-07-06 09:49
+from __future__ import unicode_literals
+
+from django.db import migrations, models
+import django.db.models.deletion
+import mptt.fields
+
+
+class Migration(migrations.Migration):
+
+ dependencies = [
+ ('projects', '0038_auto_20160706_1249'),
+ ('common', '0003_mainpage'),
+ ('specializations', '0002_auto_20160602_1203'),
+ ('work_sell', '0007_auto_20160705_1514'),
+ ]
+
+ operations = [
+ migrations.RemoveField(
+ model_name='worksell',
+ name='price',
+ ),
+ migrations.AddField(
+ model_name='worksell',
+ name='budget',
+ field=models.DecimalField(decimal_places=0, default=0, max_digits=10, null=True),
+ ),
+ migrations.AddField(
+ model_name='worksell',
+ name='budget_by_agreement',
+ field=models.BooleanField(default=False),
+ ),
+ migrations.AddField(
+ model_name='worksell',
+ name='building_classification',
+ field=models.ForeignKey(default=1, on_delete=django.db.models.deletion.CASCADE, related_name='worksells', to='projects.BuildingClassfication'),
+ preserve_default=False,
+ ),
+ migrations.AddField(
+ model_name='worksell',
+ name='construction_type',
+ field=models.ForeignKey(default=1, on_delete=django.db.models.deletion.CASCADE, related_name='worksells', to='projects.ConstructionType'),
+ preserve_default=False,
+ ),
+ migrations.AddField(
+ model_name='worksell',
+ name='location',
+ field=mptt.fields.TreeForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='worksells', to='common.Location'),
+ ),
+ migrations.AddField(
+ model_name='worksell',
+ name='specialization',
+ field=mptt.fields.TreeForeignKey(default=5, on_delete=django.db.models.deletion.CASCADE, related_name='worksells', to='specializations.Specialization'),
+ preserve_default=False,
+ ),
+ migrations.AddField(
+ model_name='worksell',
+ name='term',
+ field=models.IntegerField(default=0),
+ ),
+ migrations.AddField(
+ model_name='worksell',
+ name='term_type',
+ field=models.CharField(choices=[('project', 'За проект'), ('hour', 'За час'), ('day', 'За день'), ('month', 'За месяц')], default='hour', max_length=20),
+ ),
+ ]
diff --git a/work_sell/migrations/0009_auto_20160707_1315.py b/work_sell/migrations/0009_auto_20160707_1315.py
new file mode 100644
index 0000000..15bb2d8
--- /dev/null
+++ b/work_sell/migrations/0009_auto_20160707_1315.py
@@ -0,0 +1,56 @@
+# -*- coding: utf-8 -*-
+# Generated by Django 1.9.6 on 2016-07-07 10:15
+from __future__ import unicode_literals
+
+from django.db import migrations, models
+import django.db.models.deletion
+import mptt.fields
+
+
+class Migration(migrations.Migration):
+
+ dependencies = [
+ ('work_sell', '0008_auto_20160706_1249'),
+ ]
+
+ operations = [
+ migrations.RemoveField(
+ model_name='worksell',
+ name='budget_by_agreement',
+ ),
+ migrations.AddField(
+ model_name='worksell',
+ name='currency',
+ field=models.CharField(blank=True, choices=[('rur', 'RUR'), ('usd', 'USD'), ('eur', 'EUR')], default='rur', max_length=20, null=True),
+ ),
+ migrations.AlterField(
+ model_name='worksell',
+ name='budget',
+ field=models.DecimalField(blank=True, decimal_places=0, default=0, max_digits=10, null=True),
+ ),
+ migrations.AlterField(
+ model_name='worksell',
+ name='building_classification',
+ field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='worksells', to='projects.BuildingClassfication'),
+ ),
+ migrations.AlterField(
+ model_name='worksell',
+ name='construction_type',
+ field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='worksells', to='projects.ConstructionType'),
+ ),
+ migrations.AlterField(
+ model_name='worksell',
+ name='specialization',
+ field=mptt.fields.TreeForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='worksells', to='specializations.Specialization'),
+ ),
+ migrations.AlterField(
+ model_name='worksell',
+ name='term',
+ field=models.IntegerField(blank=True, default=0, null=True),
+ ),
+ migrations.AlterField(
+ model_name='worksell',
+ name='term_type',
+ field=models.CharField(blank=True, choices=[('project', 'За проект'), ('hour', 'За час'), ('day', 'За день'), ('month', 'За месяц')], default='hour', max_length=20, null=True),
+ ),
+ ]
diff --git a/work_sell/migrations/0010_auto_20160707_1401.py b/work_sell/migrations/0010_auto_20160707_1401.py
new file mode 100644
index 0000000..321b296
--- /dev/null
+++ b/work_sell/migrations/0010_auto_20160707_1401.py
@@ -0,0 +1,27 @@
+# -*- coding: utf-8 -*-
+# Generated by Django 1.9.6 on 2016-07-07 11:01
+from __future__ import unicode_literals
+
+from django.db import migrations, models
+import django.utils.timezone
+import sorl.thumbnail.fields
+
+
+class Migration(migrations.Migration):
+
+ dependencies = [
+ ('work_sell', '0009_auto_20160707_1315'),
+ ]
+
+ operations = [
+ migrations.AlterField(
+ model_name='worksell',
+ name='created',
+ field=models.DateTimeField(blank=True, default=django.utils.timezone.now, null=True),
+ ),
+ migrations.AlterField(
+ model_name='worksell',
+ name='img',
+ field=sorl.thumbnail.fields.ImageField(blank=True, null=True, upload_to='worksell/worksell'),
+ ),
+ ]
diff --git a/work_sell/migrations/0011_picture.py b/work_sell/migrations/0011_picture.py
new file mode 100644
index 0000000..cdb20e8
--- /dev/null
+++ b/work_sell/migrations/0011_picture.py
@@ -0,0 +1,23 @@
+# -*- coding: utf-8 -*-
+# Generated by Django 1.9.7 on 2016-07-11 08:33
+from __future__ import unicode_literals
+
+from django.db import migrations, models
+
+
+class Migration(migrations.Migration):
+
+ dependencies = [
+ ('work_sell', '0010_auto_20160707_1401'),
+ ]
+
+ 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)),
+ ],
+ ),
+ ]
diff --git a/work_sell/migrations/__init__.py b/work_sell/migrations/__init__.py
new file mode 100644
index 0000000..e69de29