models, admin and migrations

This commit is contained in:
erjemin
2021-08-04 19:47:46 +03:00
parent 702c143d45
commit 6114f40e44
4 changed files with 99 additions and 7 deletions

View File

@@ -1,3 +1,53 @@
# -*- coding: utf-8 -*-
from django.contrib import admin 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. # 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)

View File

@@ -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='Окончания публикации'),
),
]

View 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> &laquo;приклеивает&raquo; союзы, поддерживает неразрывные конструкции, замена тире, кавычек и дефисов, расстановка &laquo;мягких переносов&raquo; в словах длиннее 12 символов, убирает &laquo;вдовы&raquo; &laquo;сироты&raquo; (кроме заголовков), расставляет абзацы (кроме заголовков), расшифровывает аббревиатуры (те, что знает и кроме заголовков), висячая пунктуация (только в заголовках) и т.п.</small>', verbose_name='Типограф Стандарт'),
),
migrations.AlterField(
model_name='tbcontent',
name='tdContentPublishDown',
field=models.DateTimeField(blank=True, db_index=True, help_text='Дата окончания публикации, с её момента новость исчезнет с сайта.', null=True, verbose_name='Окончания публикации'),
),
]

View File

@@ -68,7 +68,7 @@ class TbContent(models.Model):
help_text=u"Дата публикации, с её момента новость появится на сайте." help_text=u"Дата публикации, с её момента новость появится на сайте."
) )
tdContentPublishDown = models.DateTimeField( 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="Окончания публикации", verbose_name="Окончания публикации",
help_text=u"Дата окончания публикации, с её момента новость исчезнет с сайта." help_text=u"Дата окончания публикации, с её момента новость исчезнет с сайта."
) )
@@ -121,12 +121,12 @@ class TbContent(models.Model):
verbose_name="Типограф Стандарт", verbose_name="Типограф Стандарт",
help_text="Обработать через <a href=\"https://www.typograf.ru\"" help_text="Обработать через <a href=\"https://www.typograf.ru\""
" target=\"_blank\">Типограф 2.0</a><br />" " target=\"_blank\">Типограф 2.0</a><br />"
"<small><b>НОРМАЛЬНЫЙ ТИПОГРАФ, ХОРОШИЙ HTML, РЕКОМЕНДУЕМ</b><br />" "<small><b>НОРМАЛЬНЫЙ ТИПОГРАФ, ХОРОШИЙ HTML, РЕКОМЕНДУЕМ</b> "
"&laquo;приклеивает&raquo; союзы, поддерживает неразрывные конструкции,<br />" "&laquo;приклеивает&raquo; союзы, поддерживает неразрывные конструкции, "
"замена тире, кавычек и дефисов, расстановка &laquo;мягких переносов&raquo;<br />" "замена тире, кавычек и дефисов, расстановка &laquo;мягких переносов&raquo; "
"в словах длиннее 12 символов, убирает &laquo;вдовы&raquo; &laquo;сироты&raquo; (кроме<br />" "в словах длиннее 12 символов, убирает &laquo;вдовы&raquo; &laquo;сироты&raquo; (кроме "
"заголовков), расставляет абзацы (кроме заголовков), расшифро-<br />" "заголовков), расставляет абзацы (кроме заголовков), расшифровывает "
"вывает аббревиатуры (те, что знает и кроме заголовков), висячая<br />" "аббревиатуры (те, что знает и кроме заголовков), висячая "
"пунктуация (только в заголовках) и т.п.</small>" "пунктуация (только в заголовках) и т.п.</small>"
) )
szContentKeywords = models.CharField( szContentKeywords = models.CharField(
@@ -219,6 +219,7 @@ class TbContent(models.Model):
' <link target="_blank" />' ' <link target="_blank" />'
'</preferences>'.encode('cp1251')}) '</preferences>'.encode('cp1251')})
self.szContentBody = resp.data.decode('cp1251') self.szContentBody = resp.data.decode('cp1251')
self.bTypograf = False
except: except:
self.bTypograf = False self.bTypograf = False