schon/blog/admin.py
Egor fureunoir Gorbunov 8fb4ca3362 Features: 1) Add type annotations for various models and methods; 2) Introduce refined graphene resolvers to enhance permission handling; 3) Include type checking suppression with # type: ignore for unsupported cases.
Fixes: 1) Correct `urlsafe_base64_encode` decoding logic in tests; 2) Fix queryset access issues in resolvers; 3) Address missing or incorrect imports across multiple files.

Extra: Improve code readability with consistent naming and formatting; Add `# noinspection` annotations to suppress IDE warnings; Update `pyproject.toml` to exclude `drf.py` in MyPy checks.
2025-06-18 16:38:07 +03:00

49 lines
1.4 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",)
# noinspection PyUnresolvedReferences
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",)