diff --git a/cadpoint/web/admin.py b/cadpoint/web/admin.py
index 8c38f3f..ee8d986 100644
--- a/cadpoint/web/admin.py
+++ b/cadpoint/web/admin.py
@@ -1,3 +1,53 @@
+# -*- coding: utf-8 -*-
from django.contrib import admin
+from django.db import models
+from django.forms import TextInput, Textarea
+from web.models import TbContent
+from web.add_function import safe_html_special_symbols
+
# Register your models here.
+class AdminContent(admin.ModelAdmin):
+ search_fields = ['szContentHead', 'szContentIntro', 'szContentBody',
+ 'szContentKeywords', 'szContentDescription']
+ list_display = ('id', 'ContentHeadSafe', 'tag_list', 'bContentPublish', 'tdContentPublishUp')
+ list_display_links = ('id', 'ContentHeadSafe')
+ list_filter = ('bContentPublish', )
+ list_editable = ('bContentPublish', )
+ # настройка длины поля TextInput в админке
+ formfield_overrides = {
+ models.CharField: {'widget': TextInput(attrs={'size': '100%'})},
+ # models.TextField: {'widget': Textarea(attrs={'rows': 4, 'cols': 40})},
+ }
+ # Настройка страницы редактирования
+ fieldsets = [
+ (None, {
+ 'fields': ('bContentPublish', 'tdContentPublishUp', 'tdContentPublishDown', 'tags',
+ 'szContentHead', 'imgContentPreview', 'szContentIntro',
+ 'szContentBody')
+ }),
+ ('Типограф', {
+ 'fields': ('bTypograf', ),
+ 'classes': ('collapse',),
+ }),
+ ('Поля для SEO', {
+ 'fields': ('szContentSlug', 'szContentKeywords', 'szContentDescription', 'iContentHits'),
+ 'classes': ('collapse', ),
+ }),
+ ]
+ # exclude = ('', '', )
+ empty_value_display = u"—//—"
+ actions_on_top = False
+ actions_on_bottom = False
+
+ def ContentHeadSafe(self, obj) -> str:
+ return safe_html_special_symbols(obj.szContentHead)
+
+ def get_queryset(self, request):
+ return super().get_queryset(request).prefetch_related('tags')
+
+ def tag_list(self, obj):
+ return u", ".join(o.name for o in obj.tags.all())
+
+
+admin.site.register(TbContent, AdminContent)
diff --git a/cadpoint/web/migrations/0002_alter_tbcontent_tdcontentpublishdown.py b/cadpoint/web/migrations/0002_alter_tbcontent_tdcontentpublishdown.py
new file mode 100644
index 0000000..7576d0a
--- /dev/null
+++ b/cadpoint/web/migrations/0002_alter_tbcontent_tdcontentpublishdown.py
@@ -0,0 +1,18 @@
+# Generated by Django 3.2.5 on 2021-08-04 16:15
+
+from django.db import migrations, models
+
+
+class Migration(migrations.Migration):
+
+ dependencies = [
+ ('web', '0001_initial'),
+ ]
+
+ operations = [
+ migrations.AlterField(
+ model_name='tbcontent',
+ name='tdContentPublishDown',
+ field=models.DateTimeField(db_index=True, default=0, help_text='Дата окончания публикации, с её момента новость исчезнет с сайта.', null=True, verbose_name='Окончания публикации'),
+ ),
+ ]
diff --git a/cadpoint/web/migrations/0003_auto_20210804_1933.py b/cadpoint/web/migrations/0003_auto_20210804_1933.py
new file mode 100644
index 0000000..b0662bb
--- /dev/null
+++ b/cadpoint/web/migrations/0003_auto_20210804_1933.py
@@ -0,0 +1,23 @@
+# Generated by Django 3.2.5 on 2021-08-04 16:33
+
+from django.db import migrations, models
+
+
+class Migration(migrations.Migration):
+
+ dependencies = [
+ ('web', '0002_alter_tbcontent_tdcontentpublishdown'),
+ ]
+
+ operations = [
+ migrations.AlterField(
+ model_name='tbcontent',
+ name='bTypograf',
+ field=models.BooleanField(default=False, help_text='Обработать через Типограф 2.0
НОРМАЛЬНЫЙ ТИПОГРАФ, ХОРОШИЙ HTML, РЕКОМЕНДУЕМ «приклеивает» союзы, поддерживает неразрывные конструкции, замена тире, кавычек и дефисов, расстановка «мягких переносов» в словах длиннее 12 символов, убирает «вдовы» «сироты» (кроме заголовков), расставляет абзацы (кроме заголовков), расшифровывает аббревиатуры (те, что знает и кроме заголовков), висячая пунктуация (только в заголовках) и т.п.', verbose_name='Типограф Стандарт'),
+ ),
+ migrations.AlterField(
+ model_name='tbcontent',
+ name='tdContentPublishDown',
+ field=models.DateTimeField(blank=True, db_index=True, help_text='Дата окончания публикации, с её момента новость исчезнет с сайта.', null=True, verbose_name='Окончания публикации'),
+ ),
+ ]
diff --git a/cadpoint/web/models.py b/cadpoint/web/models.py
index 701a0a5..b794f7a 100644
--- a/cadpoint/web/models.py
+++ b/cadpoint/web/models.py
@@ -68,7 +68,7 @@ class TbContent(models.Model):
help_text=u"Дата публикации, с её момента новость появится на сайте."
)
tdContentPublishDown = models.DateTimeField(
- db_index=True, default=0, # datetime.datetime(0, 0, 0, 0, 0, 0, 0),
+ db_index=True, null=True, blank=True, # default=datetime.datetime(2035, 12, 31, 23, 59, 59, 0), # default=0,
verbose_name="Окончания публикации",
help_text=u"Дата окончания публикации, с её момента новость исчезнет с сайта."
)
@@ -121,12 +121,12 @@ class TbContent(models.Model):
verbose_name="Типограф Стандарт",
help_text="Обработать через Типограф 2.0
"
- "НОРМАЛЬНЫЙ ТИПОГРАФ, ХОРОШИЙ HTML, РЕКОМЕНДУЕМ
"
- "«приклеивает» союзы, поддерживает неразрывные конструкции,
"
- "замена тире, кавычек и дефисов, расстановка «мягких переносов»
"
- "в словах длиннее 12 символов, убирает «вдовы» «сироты» (кроме
"
- "заголовков), расставляет абзацы (кроме заголовков), расшифро-
"
- "вывает аббревиатуры (те, что знает и кроме заголовков), висячая
"
+ "НОРМАЛЬНЫЙ ТИПОГРАФ, ХОРОШИЙ HTML, РЕКОМЕНДУЕМ "
+ "«приклеивает» союзы, поддерживает неразрывные конструкции, "
+ "замена тире, кавычек и дефисов, расстановка «мягких переносов» "
+ "в словах длиннее 12 символов, убирает «вдовы» «сироты» (кроме "
+ "заголовков), расставляет абзацы (кроме заголовков), расшифровывает "
+ "аббревиатуры (те, что знает и кроме заголовков), висячая "
"пунктуация (только в заголовках) и т.п."
)
szContentKeywords = models.CharField(
@@ -219,6 +219,7 @@ class TbContent(models.Model):
' '
''.encode('cp1251')})
self.szContentBody = resp.data.decode('cp1251')
+ self.bTypograf = False
except:
self.bTypograf = False