mod: админка (14) настроены поля типографа

This commit is contained in:
2026-08-25 20:48:05 +03:00
parent 13641eae88
commit 457c33725a
+22 -42
View File
@@ -5,6 +5,7 @@ from django import forms
from django.contrib import admin from django.contrib import admin
from django.forms import Textarea from django.forms import Textarea
from django.utils.html import format_html from django.utils.html import format_html
from django.http import HttpRequest
from .models import ( from .models import (
TbHypn0Item, TbHypn0Item,
TbVote, TbVote,
@@ -24,7 +25,7 @@ class RequestInFormMixin(admin.ModelAdmin):
Переопределяет get_form() и передает request в __init__ формы через kwargs. Переопределяет get_form() и передает request в __init__ формы через kwargs.
""" """
def get_form(self, request, obj=None, **kwargs): def get_form(self, request: HttpRequest, obj=None, **kwargs):
""" """
Переопределяем get_form чтобы передать request в форму. Переопределяем get_form чтобы передать request в форму.
Создаем оборачивающий класс который передаст request в __init__. Создаем оборачивающий класс который передаст request в __init__.
@@ -330,7 +331,7 @@ class BlogPostAdminForm(CodeMirrorFormMixin):
self.setup_codemirror_field('slug', language='text', self.setup_codemirror_field('slug', language='text',
css_class='codemirror-width-l codemirror-no-lines') css_class='codemirror-width-l codemirror-no-lines')
self.setup_codemirror_field('s_teaser', language='html', self.setup_codemirror_field('s_teaser', language='html',
css_class='codemirror-width-l codemirror-min-height-5') css_class='codemirror-width-xl codemirror-min-height-5')
self.setup_codemirror_field('s_content', language='html', self.setup_codemirror_field('s_content', language='html',
css_class='codemirror-width-xl codemirror-min-height-10') css_class='codemirror-width-xl codemirror-min-height-10')
@@ -348,46 +349,25 @@ class TbBlogPostAdmin(RequestInFormMixin, admin.ModelAdmin):
prepopulated_fields = {"slug": ("s_title",)} prepopulated_fields = {"slug": ("s_title",)}
readonly_fields = ("id", "d_created_at", "d_updated_at") readonly_fields = ("id", "d_created_at", "d_updated_at")
fieldsets = ( fieldsets = (
( ("Атрибуты публикации", {
"Публикация", "fields": ("is_published", "slug", "d_published_at", )
{ }),
"fields": ( ("Основные поля", {
"is_published", "fields": ("s_title", "f_cover_img", "s_teaser", "s_content", ),
"d_published_at", "description": "В полях допускается HTML, поддерживается чистая верстка, настройки типографа etpgrf в"
) " следующем блоке.",
}, }),
), ('Типограф', {
( 'fields': (('etp_enable',), ('etp_language', 'etp_mode'),
"Заголовок и URL", ('etp_quotes', 'etp_hyphenation', 'etp_sanitize', 'etp_hanging_punctuation')),
{ # 'classes': ('collapse',),
"fields": ( 'description': 'Типограф применяется при сохранении и срабатывает на HTML-поля (ЗАГОЛОВОК, ТИЗЕР СТАТЬИ'
"s_title", ' и СТАТЬЯ). Если выключить — HTML будет сохранен без изменений.',
"slug", }),
"f_cover_img", ("Системные даты", {
) "fields": ("id", "d_created_at", "d_updated_at", ),
}, "classes": ("collapse",),
), }),
(
"Контент статьи (HTML + etpgrf)",
{
"fields": (
"s_teaser",
"s_content",
),
"description": "HTML-текст, типографированный etpgrf. Поддерживается чистая верстка.",
},
),
(
"Системные даты",
{
"fields": (
"id",
"d_created_at",
"d_updated_at",
),
"classes": ("collapse",),
},
),
) )
@admin.display(description="Заголовок") @admin.display(description="Заголовок")