schon/blog/admin.py
Egor fureunoir Gorbunov a33be30098 Features: 1) Added vendor, product tag, category tag models and metadata; 2) Introduced proper noinspection comments for Mypy warnings; 3) Extended Markdown linting rules.
Fixes: 1) Corrected `ForeignKey` type assertions across models; 2) Resolved typos and formatting inconsistencies in `.env` and README; 3) Fixed explicit boolean checks in user manager methods.

Extra: Updated type hints in multiple models, serializers, and views.
2025-06-18 15:58:49 +03:00

48 lines
1.3 KiB
Python

from django.contrib import admin
from django.utils.safestring import mark_safe
from django.utils.translation import gettext_lazy as _
from .forms import PostAdminForm
from .models import Post, PostTag
@admin.register(Post)
class PostAdmin(admin.ModelAdmin):
def preview_html(self, obj):
html = obj.content.html or "<em>{}</em>".format(_("(no content yet)"))
# noinspection DjangoSafeString
return mark_safe(html)
preview_html.short_description = _("rendered HTML") # type: ignore
form = PostAdminForm
list_display = ("title", "author", "slug", "created", "modified")
list_filter = ("author", "tags", "created", "modified")
search_fields = ("title", "content")
filter_horizontal = ("tags",)
date_hierarchy = "created"
autocomplete_fields = ("author", "tags")
readonly_fields = ("preview_html",)
fieldsets = (
(
None,
{
"fields": (
"author",
"title",
"content",
"preview_html",
"file",
"tags",
)
},
),
)
@admin.register(PostTag)
class PostTagAdmin(admin.ModelAdmin):
list_display = ("tag_name", "name")
search_fields = ("tag_name", "name")
ordering = ("tag_name",)