diff --git a/cadpoint/web/migrations/0001_initial.py b/cadpoint/web/migrations/0001_initial.py
new file mode 100644
index 0000000..3d61eef
--- /dev/null
+++ b/cadpoint/web/migrations/0001_initial.py
@@ -0,0 +1,69 @@
+# Generated by Django 3.2.5 on 2021-07-24 10:17
+
+import ckeditor.fields
+from django.db import migrations, models
+import django.db.models.deletion
+import django.utils.timezone
+import filer.fields.file
+import taggit.managers
+
+
+class Migration(migrations.Migration):
+
+ initial = True
+
+ dependencies = [
+ ('taggit', '0003_taggeditem_add_unique_index'),
+ ('filer', '0013_auto_20210724_1317'),
+ ]
+
+ operations = [
+ migrations.CreateModel(
+ name='RuTag',
+ fields=[
+ ],
+ options={
+ 'proxy': True,
+ 'indexes': [],
+ 'constraints': [],
+ },
+ bases=('taggit.tag',),
+ ),
+ migrations.CreateModel(
+ name='RuTaggedItem',
+ fields=[
+ ],
+ options={
+ 'proxy': True,
+ 'indexes': [],
+ 'constraints': [],
+ },
+ bases=('taggit.taggeditem',),
+ ),
+ migrations.CreateModel(
+ name='TbContent',
+ fields=[
+ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
+ ('bContentPublish', models.BooleanField(db_index=True, default=True, help_text='Опубликованный контент будет отображаться в соответствующей ленте категории и при его просмотре будет отображаться навигация &laque;Предыдущий&raque; и &laque;Следующий&raque; по ленте. По прямому URL (если его знать) отображается даже не опубликованный контент (но без навигации).', verbose_name='Опуб…')),
+ ('tdContentPublishUp', models.DateTimeField(db_index=True, default=django.utils.timezone.now, help_text='Дата публикации, с её момента новость появится на сайте.', verbose_name='Начало публикации')),
+ ('tdContentPublishDown', models.DateTimeField(db_index=True, default=0, help_text='Дата окончания публикации, с её момента новость исчезнет с сайта.', verbose_name='Окончания публикации')),
+ ('szContentHead', models.CharField(default='', help_text='Заголовок контента (допустим HTML-код, будет обработан типографом, если его включить, максимальная длинна 512 символов)', max_length=512, verbose_name='Заголовок')),
+ ('szContentIntro', ckeditor.fields.RichTextField(default='', help_text='Анонс (допустим HTML-код, будет обработан типографом, если его включить)', verbose_name='Анонс')),
+ ('szContentBody', ckeditor.fields.RichTextField(default='', help_text='Содержание БЕЗ АНОНСА (допустим HTML-код, будет обработан типографом, если его включить)', verbose_name='Содержание')),
+ ('szContentSlug', models.CharField(blank=True, default='', help_text='Слуг… 128 символов.
Если оставить пустым, то slug сформируется автоматически', max_length=128, null=True, verbose_name='Slug')),
+ ('iContentHits', models.PositiveIntegerField(db_index=True, default=0, help_text='Число просмотров', verbose_name='◉')),
+ ('bTypograf', models.BooleanField(default=False, help_text='Обработать через Типограф 2.0
НОРМАЛЬНЫЙ ТИПОГРАФ, ХОРОШИЙ HTML, РЕКОМЕНДУЕМ
«приклеивает» союзы, поддерживает неразрывные конструкции,
замена тире, кавычек и дефисов, расстановка «мягких переносов»
в словах длиннее 12 символов, убирает «вдовы» «сироты» (кроме
заголовков), расставляет абзацы (кроме заголовков), расшифро-
вывает аббревиатуры (те, что знает и кроме заголовков), висячая
пунктуация (только в заголовках) и т.п.', verbose_name='Типограф Стандарт')),
+ ('szContentKeywords', models.CharField(blank=True, default='', help_text='Ключевые слова. Через запятую. 256 символов.', max_length=256, null=True, verbose_name='Keywords (SEO)')),
+ ('szContentDescription', models.CharField(blank=True, default='', help_text='Описание страницы… 256 символов (включая пробелы), но поисковики обработают только 155–160 из них.
Если оставить пустым, то описание сформируется автоматически на базе заголовка и анонса', max_length=256, null=True, verbose_name='Description (SEO)')),
+ ('dtContentCreate', models.DateTimeField(auto_now_add=True, verbose_name='Дата Создания')),
+ ('dtContentTimeStamp', models.DateTimeField(auto_now=True, verbose_name='Штамп времени')),
+ ('imgContentPreview', filer.fields.file.FilerFileField(blank=True, help_text='Картинка-превью', null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='Превью', to='filer.file', verbose_name='Превью')),
+ ('tags', taggit.managers.TaggableManager(blank=True, help_text="Теги через запятую… Регистр не чувствителен… Длинные теги, содержащие пробел, заключайте'в кавычки'… Теги нужны для присвоения категорий объектам контента.", through='web.RuTaggedItem', to='taggit.Tag', verbose_name='Теги')),
+ ],
+ options={
+ 'verbose_name': 'Контент',
+ 'verbose_name_plural': 'Контент',
+ 'ordering': ['-tdContentPublishUp'],
+ },
+ ),
+ ]
diff --git a/cadpoint/web/migrations/0003_auto_20210724_1317.py b/cadpoint/web/migrations/0003_auto_20210724_1317.py
new file mode 100644
index 0000000..a27f605
--- /dev/null
+++ b/cadpoint/web/migrations/0003_auto_20210724_1317.py
@@ -0,0 +1,33 @@
+# Generated by Django 3.2.5 on 2021-07-24 10:17
+# C:\PYTHON\ENV\cadpoint2\lib\site-packages\easy_thumbnails\migrations\0003_auto_20210724_1317.py
+# - Alter field id on source
+# - Alter field id on thumbnail
+# - Alter field id on thumbnaildimensions
+
+
+from django.db import migrations, models
+
+
+class Migration(migrations.Migration):
+
+ dependencies = [
+ ('easy_thumbnails', '0002_thumbnaildimensions'),
+ ]
+
+ operations = [
+ migrations.AlterField(
+ model_name='source',
+ name='id',
+ field=models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID'),
+ ),
+ migrations.AlterField(
+ model_name='thumbnail',
+ name='id',
+ field=models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID'),
+ ),
+ migrations.AlterField(
+ model_name='thumbnaildimensions',
+ name='id',
+ field=models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID'),
+ ),
+ ]
diff --git a/cadpoint/web/migrations/0013_auto_20210724_1317.py b/cadpoint/web/migrations/0013_auto_20210724_1317.py
new file mode 100644
index 0000000..1c4ec43
--- /dev/null
+++ b/cadpoint/web/migrations/0013_auto_20210724_1317.py
@@ -0,0 +1,50 @@
+# Generated by Django 3.2.5 on 2021-07-24 10:17
+# C:\PYTHON\ENV\cadpoint2\lib\site-packages\filer\migrations\0013_auto_20210724_1317.py
+# - Alter field id on clipboard
+# - Alter field id on clipboarditem
+# - Alter field id on file
+# - Alter field id on folder
+# - Alter field id on folderpermission
+# - Alter field id on thumbnailoption
+
+from django.db import migrations, models
+
+
+class Migration(migrations.Migration):
+
+ dependencies = [
+ ('filer', '0012_file_mime_type'),
+ ]
+
+ operations = [
+ migrations.AlterField(
+ model_name='clipboard',
+ name='id',
+ field=models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID'),
+ ),
+ migrations.AlterField(
+ model_name='clipboarditem',
+ name='id',
+ field=models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID'),
+ ),
+ migrations.AlterField(
+ model_name='file',
+ name='id',
+ field=models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID'),
+ ),
+ migrations.AlterField(
+ model_name='folder',
+ name='id',
+ field=models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID'),
+ ),
+ migrations.AlterField(
+ model_name='folderpermission',
+ name='id',
+ field=models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID'),
+ ),
+ migrations.AlterField(
+ model_name='thumbnailoption',
+ name='id',
+ field=models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID'),
+ ),
+ ]