diff --git a/oknardia/oknardia/migrations/0001_initial.py b/oknardia/oknardia/migrations/0001_initial.py
index e0260a7..61282db 100644
--- a/oknardia/oknardia/migrations/0001_initial.py
+++ b/oknardia/oknardia/migrations/0001_initial.py
@@ -1,4 +1,4 @@
-# Generated by Django 4.1.2 on 2022-10-27 20:58
+# Generated by Django 4.1.3 on 2022-11-05 23:11
import datetime
from django.conf import settings
@@ -39,10 +39,10 @@ class Migration(migrations.Migration):
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('sPostHeader', models.CharField(help_text='Заголовок поста или карточки каталога', max_length=256, verbose_name='Заголовок')),
('sPostContent', models.TextField(help_text='Содержание (допустим HTML)', verbose_name='Содержание')),
- ('sImgForBlogSocial', models.ImageField(blank=True, default='', help_text='Способ загрузить картинку через админку Картинка-тизер для публикаций в соц.сетях. URL к картинке будет «/media/img_for_blog/...» и этот URL можно использовать в HTML-тексте блога. Если нужно загрузить несколько картинок, то после сохранения промежуточной записи, откройте ее на редактирование еще раз и добавте новую картинку. Предыдущая картинка (и её URL) продолжат быть доступны.
ВАЖНО: ПРИ ПУБЛИКАЦИИ В СОЦ.СЕТЯХ БУДЕТ ОТОБРАЖАТЬЯ КАРТИНКА ЗАГРУЖЕННАЯ ПОСЛЕДНЕЙ.
ВАЖНО: ЕСЛИ ЗАГРУЖАЕМАЯ КАРТИНКА УЖЕ ИМЕЕТ ДУБЛИКАТ В СИСТЕМЕ, ЕЕ ИМЯ (И URL) БУДУТ ИЗМЕНЕНЫ. БУДЬТЕ ВНИМТЕЛЬНЫ!', max_length=128, upload_to='img_for_blog/', verbose_name='IMG')),
+ ('sImgForBlogSocial', models.ImageField(blank=True, default='', help_text='Способ загрузить картинку через админку Картинка-тизер для публикаций в соц.сетях. URL к картинке будет «/media/img_for_blog/…» и этот URL можно использовать в HTML-тексте блога. Если нужно загрузить несколько картинок, то после сохранения промежуточной записи, откройте ее на редактирование еще раз и добавте новую картинку. Предыдущая картинка (и её URL) продолжат быть доступны.
ВАЖНО: ПРИ ПУБЛИКАЦИИ В СОЦ.СЕТЯХ БУДЕТ ОТОБРАЖАТЬЯ КАРТИНКА ЗАГРУЖЕННАЯ ПОСЛЕДНЕЙ.
ВАЖНО: ЕСЛИ ЗАГРУЖАЕМАЯ КАРТИНКА УЖЕ ИМЕЕТ ДУБЛИКАТ В СИСТЕМЕ, ЕЕ ИМЯ (И URL) БУДУТ ИЗМЕНЕНЫ. БУДЬТЕ ВНИМТЕЛЬНЫ!', max_length=128, upload_to='img_for_blog/', verbose_name='IMG')),
('bPublished', models.BooleanField(db_index=True, default=True, help_text='Если отмечено, то пост доступен на сайте. Иначе ведет себя как удаленный и не «отзывается».', verbose_name='Паблик')),
('bArchive', models.BooleanField(db_index=True, default=False, help_text='Если отмечено, в архиве. Он не будет повляться в списке, но доступен через URL, поиск и пр.', verbose_name='Архив')),
- ('dPostDataBegin', models.DateTimeField(db_index=True, default=datetime.datetime(2022, 10, 27, 23, 58, 1, 898637), help_text='Если установить будущую дату, то в назначеное время пост появится автоматически.', verbose_name='Опубликован от')),
+ ('dPostDataBegin', models.DateTimeField(db_index=True, default=datetime.datetime(2022, 11, 6, 2, 11, 22, 171941), help_text='Если установить будущую дату, то в назначеное время пост появится автоматически.', verbose_name='Опубликован от')),
('bCatalog', models.BooleanField(db_index=True, default=False, help_text='Это публикация для каталога (в блогах все равно будет доступно через URL, поиск и пр.)', verbose_name='Каталог')),
('iCatalogSort', models.PositiveIntegerField(db_index=True, default=1, help_text='Число для сортировки и порядка вывода в каталогах (чем меьше, тем выше в списке)
Магические значения:
■ 5 — запись используется как рекламный тизер;
■ 1 — запись используется как обычный тизер.', null=True, verbose_name='Сортер')),
('dPostDataModify', models.DateTimeField(auto_now=True, verbose_name='Отредактированно')),
@@ -119,11 +119,11 @@ class Migration(migrations.Migration):
('sGlazingLightReflectance', models.CharField(db_index=True, default='—/—', help_text='Коэффициент светоотражения, внешний/внутренний (%)', max_length=7, verbose_name='Светоотражение')),
('fGlazingPassingSun', models.DecimalField(db_index=True, decimal_places=2, default=0, help_text='Коэффициент солнцепропускания (%)', max_digits=5, verbose_name='Солнцепропускание')),
('sGlazingReflectionAndAbsorptionOfHeat', models.CharField(db_index=True, default='—/—', help_text='Коэффициент теплоотражения/теплопоглощения (%)', max_length=7, verbose_name='Теплоотражение и теплопоглощение')),
- ('fGlazingRating', models.FloatField(db_index=True, default=0.0, help_text='Рейтинг (-1 ... +1).', verbose_name='Рейтинг')),
+ ('fGlazingRating', models.FloatField(db_index=True, default=0.0, help_text='Рейтинг (-1 … +1).', verbose_name='Рейтинг')),
('sGlazingDescription', models.TextField(default='', help_text='Детальное описание стеклопакета (JSON)', null=True, verbose_name='Описание')),
('sGlazingToning', models.CharField(blank=True, default='Нет', help_text='Тонирование стеклопакета (цвет)', max_length=32, null=True, verbose_name='Тонирование')),
('dGlazingCreate', models.DateTimeField(auto_now_add=True, verbose_name='Создано')),
- ('dGlazingModify', models.DateTimeField(auto_now=True, verbose_name='Отредактированно')),
+ ('dGlazingModify', models.DateTimeField(auto_now=True, verbose_name='Отредактировано')),
],
options={
'verbose_name': 'Окно: стеклопакет',
@@ -239,7 +239,7 @@ class Migration(migrations.Migration):
('iProfileRabbet', models.PositiveSmallIntegerField(default=0, help_text='Размер зазора между рамой и створкой (высота фальца), мм.', verbose_name='Фальц')),
('sProfileColor', models.CharField(blank=True, default='белый', help_text='Цвет профиля', max_length=128, verbose_name='Цвет')),
('sProfileOther', models.CharField(blank=True, default='', help_text='Прочие характеристики в формате: Характеристика: Значение; Характеристика: Значение;', max_length=255, verbose_name='Прочее')),
- ('fProfileRating', models.FloatField(db_index=True, default=0.0, help_text='Рейтинг (0... +5).', verbose_name='Рейтинг')),
+ ('fProfileRating', models.FloatField(db_index=True, default=0.0, help_text='Рейтинг (0… +5).', verbose_name='Рейтинг')),
('sProfileDescription', models.TextField(default='', help_text='Описание профиля (JSON)', null=True, verbose_name='Описание')),
('dProfileCreate', models.DateTimeField(auto_now_add=True, verbose_name='Создано')),
('dProfileModify', models.DateTimeField(auto_now=True, verbose_name='Когда отредактировано')),
@@ -291,15 +291,15 @@ class Migration(migrations.Migration):
('sSetSlope', models.CharField(blank=True, help_text='Откос: марка, краткое название или фирменное обозначение.', max_length=128, verbose_name='Откос')),
('sSetDelivery', models.CharField(blank=True, default='Включена в стоимость', help_text='Доставка: опишите условия, регион, способ расчета стоимости и т.п.', max_length=64, verbose_name='Доставка')),
('bSetDelivery', models.BooleanField(default=True, help_text='Отмечено, если доставка включена в стоимость', verbose_name='Доставка(б)')),
- ('sSetUninstallInstall', models.CharField(blank=True, default='Включен в стоимость', help_text='Доставка: опишите условия, регион, способ расчета стоимости...', max_length=64, verbose_name='Монтаж')),
+ ('sSetUninstallInstall', models.CharField(blank=True, default='Включен в стоимость', help_text='Доставка: опишите условия, регион, способ расчета стоимости…', max_length=64, verbose_name='Монтаж')),
('bSetUninstallInstall', models.BooleanField(default=True, help_text='Отмечено, если Демонтаж/Монтаж включен в стоимость', verbose_name='Монтаж(б)')),
- ('sSetOtherConditions', models.CharField(blank=True, default='', help_text='Прочие условия: мотнаж, демонтаж, вывооз мусора, предоставление пленки для укрытия мебели и т.п.', max_length=512, verbose_name='Прочие условия')),
- ('fSetRating', models.FloatField(db_index=True, default=0.0, help_text='Рейтинг (0.0 ... 5.0). Если рейтинг 0.1 то выводится полупрозрвчным и с меткой что поставщик бяка', verbose_name='Рейтинг')),
+ ('sSetOtherConditions', models.CharField(blank=True, default='', help_text='Прочие условия: монтаж, демонтаж, вывоз мусора, предоставление пленки для укрытия мебели и т.п.', max_length=512, verbose_name='Прочие условия')),
+ ('fSetRating', models.FloatField(db_index=True, default=0.0, help_text='Рейтинг (0.0 … 5.0). Если рейтинг 0.1 то выводится полупрозрачным и с меткой что поставщик бяка', verbose_name='Рейтинг')),
('iSetNumEval', models.PositiveIntegerField(default=0, help_text='Количество оценок.', verbose_name='N оценок')),
('iSetImpressions', models.PositiveIntegerField(default=0, help_text='Число показов.', verbose_name='Показы')),
('iSetViews', models.PositiveIntegerField(default=0, help_text='Число просмотров.', verbose_name='Просмотры')),
('sSetActive', models.BooleanField(default=True, help_text='Отображать предложение (если "вкл") или нет (если "выкл").', verbose_name='Активно')),
- ('dSetCommercialUntil', models.DateTimeField(blank=True, default=datetime.datetime(2018, 3, 25, 12, 0), help_text='Дата до которой набор считается размещеным на комметческой основе', verbose_name='Коммерческий до')),
+ ('dSetCommercialUntil', models.DateTimeField(blank=True, default=datetime.datetime(2018, 3, 25, 12, 0), help_text='Дата до которой набор считается размещенным на коммерческой основе.', verbose_name='Коммерческий до')),
('dSetCreate', models.DateTimeField(auto_now_add=True, verbose_name='Создано')),
('dSetModify', models.DateTimeField(auto_now=True, db_index=True, verbose_name='Отредактировано')),
('kSet2Glazing', models.ForeignKey(help_text='Стеклопакет используемый в данном наборе.', on_delete=django.db.models.deletion.DO_NOTHING, to='oknardia.glazing', verbose_name='Стеклопакет')),
@@ -317,7 +317,7 @@ class Migration(migrations.Migration):
fields=[
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('sName', models.CharField(help_text='Наименование серии дома.', max_length=128, unique=True, verbose_name='Серия дома')),
- ('sURL2IMG', models.ImageField(default='null.gif', help_text='Способ загрузить картинку через адмрн6ку Картинка-тизер для публикаций в соц.сетях. URL к картинке будет «/media/img_seria/...» и этот URL можно использовать в HTML-тексте блога. Если нужно загрузить несколько картинок, то после сохранения промежуточной записи, откройте ее на редактирование еще раз и добавте новую картинку. Предыдущая картинка (и её URL) продолжат быть доступны.
ВАЖНО: ПРИ ПУБЛИКАЦИИ В СОЦ.СЕТЯХ БУДЕТ ОТОБРАЖАТЬЯ КАРТИНКА ЗАГРУЖЕННАЯ ПОСЛЕДНЕЙ.
ВАЖНО: ЕСЛИ ЗАГРУЖАЕМАЯ КАРТИНКА УЖЕ ИМЕЕТ ДУБЛИКАТ В СИСТЕМЕ, ЕЕ ИМЯ (И URL) БУДУТ ИЗМЕНЕНЫ. БУДЬТЕ ВНИМТЕЛЬНЫ!', max_length=128, upload_to='img_seria/', verbose_name='Изображение')),
+ ('sURL2IMG', models.ImageField(default='null.gif', help_text='Способ загрузить картинку через адмрн6ку Картинка-тизер для публикаций в соц.сетях. URL к картинке будет «/media/img_seria/…» и этот URL можно использовать в HTML-тексте блога. Если нужно загрузить несколько картинок, то после сохранения промежуточной записи, откройте ее на редактирование еще раз и добавте новую картинку. Предыдущая картинка (и её URL) продолжат быть доступны.
ВАЖНО: ПРИ ПУБЛИКАЦИИ В СОЦ.СЕТЯХ БУДЕТ ОТОБРАЖАТЬЯ КАРТИНКА ЗАГРУЖЕННАЯ ПОСЛЕДНЕЙ.
ВАЖНО: ЕСЛИ ЗАГРУЖАЕМАЯ КАРТИНКА УЖЕ ИМЕЕТ ДУБЛИКАТ В СИСТЕМЕ, ЕЕ ИМЯ (И URL) БУДУТ ИЗМЕНЕНЫ. БУДЬТЕ ВНИМТЕЛЬНЫ!', max_length=128, upload_to='img_seria/', verbose_name='Изображение')),
('sSeriaDescription', models.TextField(blank=True, default='', help_text='Тематическая статья, о настоящей серии дома', null=True, verbose_name='Текст')),
('dSeriaInfoCreate', models.DateTimeField(auto_now_add=True, verbose_name='Создано')),
('dSeriaInfoModify', models.DateTimeField(auto_now=True, verbose_name='Отредактировано')),
@@ -336,20 +336,20 @@ class Migration(migrations.Migration):
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('sOfferFlapConfig', models.CharField(help_text='Предлагаемая схема открывания (МЕТАЯЗЫК)', max_length=32, verbose_name='Открывание')),
('fOfferPrice', models.DecimalField(decimal_places=2, default=0.0, help_text='Цена установки окна, руб.', max_digits=10, verbose_name='Цена, ₽')),
- ('fOfferRating', models.FloatField(db_index=True, default=0.0, help_text='Поправка для рейтинга (-0.5 ... 0.5). Вычисляется исходя из соответсвтвия предлагаемой схемы открывания', verbose_name='Рейтинг')),
+ ('fOfferRating', models.FloatField(db_index=True, default=0.0, help_text='Поправка рейтинга (-0.5 … 0.5). Вычисляется исходя из соответствия предлагаемой схемы открывания', verbose_name='Рейтинг')),
('iOfferImpressions', models.PositiveIntegerField(default=0, help_text='Число показов.', verbose_name='Показы')),
('iOfferViews', models.PositiveIntegerField(default=0, help_text='Число просмотров.', verbose_name='Просмотры')),
('sOfferActive', models.BooleanField(default=True, help_text='Отображать предложение (если "вкл") или нет (если "выкл").', verbose_name='Активно')),
('dOfferCreate', models.DateTimeField(auto_now_add=True, verbose_name='Создано')),
('dOfferModify', models.DateTimeField(auto_now=True, db_index=True, verbose_name='Отредактировано')),
- ('kOffer2MountDim', models.ForeignKey(help_text='Проем для которого установлена цена.', on_delete=django.db.models.deletion.DO_NOTHING, to='oknardia.win_mountdim', verbose_name='Проем')),
+ ('kOffer2MountDim', models.ForeignKey(help_text='Проём для которого установлена цена.', on_delete=django.db.models.deletion.DO_NOTHING, to='oknardia.win_mountdim', verbose_name='Проём')),
('kOffer2SetKit', models.ForeignKey(default=1, help_text='Набор', on_delete=django.db.models.deletion.DO_NOTHING, to='oknardia.setkit', verbose_name='Набор')),
('kOfferFromUser', models.ForeignKey(help_text='Пользователь, который установил эту цену.', on_delete=django.db.models.deletion.DO_NOTHING, to='oknardia.ouruser', verbose_name='User')),
],
options={
'verbose_name': 'Окно: цена',
'verbose_name_plural': 'Окна: цены',
- 'ordering': ['id', 'fOfferPrice', 'kOffer2SetKit'],
+ 'ordering': ['-id'],
},
),
migrations.AddField(