models, admin and migrations
This commit is contained in:
@@ -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"<b style='color:red;'>—//—</b>"
|
||||
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)
|
||||
|
||||
@@ -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='Окончания публикации'),
|
||||
),
|
||||
]
|
||||
23
cadpoint/web/migrations/0003_auto_20210804_1933.py
Normal file
23
cadpoint/web/migrations/0003_auto_20210804_1933.py
Normal file
@@ -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='Обработать через <a href="https://www.typograf.ru" target="_blank">Типограф 2.0</a><br /><small><b>НОРМАЛЬНЫЙ ТИПОГРАФ, ХОРОШИЙ HTML, РЕКОМЕНДУЕМ</b> «приклеивает» союзы, поддерживает неразрывные конструкции, замена тире, кавычек и дефисов, расстановка «мягких переносов» в словах длиннее 12 символов, убирает «вдовы» «сироты» (кроме заголовков), расставляет абзацы (кроме заголовков), расшифровывает аббревиатуры (те, что знает и кроме заголовков), висячая пунктуация (только в заголовках) и т.п.</small>', verbose_name='Типограф Стандарт'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='tbcontent',
|
||||
name='tdContentPublishDown',
|
||||
field=models.DateTimeField(blank=True, db_index=True, help_text='Дата окончания публикации, с её момента новость исчезнет с сайта.', null=True, verbose_name='Окончания публикации'),
|
||||
),
|
||||
]
|
||||
@@ -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="Обработать через <a href=\"https://www.typograf.ru\""
|
||||
" target=\"_blank\">Типограф 2.0</a><br />"
|
||||
"<small><b>НОРМАЛЬНЫЙ ТИПОГРАФ, ХОРОШИЙ HTML, РЕКОМЕНДУЕМ</b><br />"
|
||||
"«приклеивает» союзы, поддерживает неразрывные конструкции,<br />"
|
||||
"замена тире, кавычек и дефисов, расстановка «мягких переносов»<br />"
|
||||
"в словах длиннее 12 символов, убирает «вдовы» «сироты» (кроме<br />"
|
||||
"заголовков), расставляет абзацы (кроме заголовков), расшифро-<br />"
|
||||
"вывает аббревиатуры (те, что знает и кроме заголовков), висячая<br />"
|
||||
"<small><b>НОРМАЛЬНЫЙ ТИПОГРАФ, ХОРОШИЙ HTML, РЕКОМЕНДУЕМ</b> "
|
||||
"«приклеивает» союзы, поддерживает неразрывные конструкции, "
|
||||
"замена тире, кавычек и дефисов, расстановка «мягких переносов» "
|
||||
"в словах длиннее 12 символов, убирает «вдовы» «сироты» (кроме "
|
||||
"заголовков), расставляет абзацы (кроме заголовков), расшифровывает "
|
||||
"аббревиатуры (те, что знает и кроме заголовков), висячая "
|
||||
"пунктуация (только в заголовках) и т.п.</small>"
|
||||
)
|
||||
szContentKeywords = models.CharField(
|
||||
@@ -219,6 +219,7 @@ class TbContent(models.Model):
|
||||
' <link target="_blank" />'
|
||||
'</preferences>'.encode('cp1251')})
|
||||
self.szContentBody = resp.data.decode('cp1251')
|
||||
self.bTypograf = False
|
||||
except:
|
||||
self.bTypograf = False
|
||||
|
||||
|
||||
Reference in New Issue
Block a user