schon/engine/blog/admin.py
Egor fureunoir Gorbunov c6e60d1f3e Features: 1) Replace ModelForm with UserChangeForm in UserForm; 2) Add add_form and change_password_form to UserAdmin; 3) Add formfield override for TextField with MarkdownWidget in blog admin; 4) Add dropdown menu definitions in Unfold settings.
Fixes: 1) Add missing import for `AdminPasswordChangeForm`, `UserCreationForm`, and `MarkdownWidget`.

Extra: 1) Add `django-unfold-markdown` as a dependency in `uv.lock` and `pyproject.toml`; 2) Remove redundant dropdown configuration from Unfold settings.
2025-12-10 15:33:58 +03:00

44 lines
1.3 KiB
Python

from django.contrib.admin import register
from django.db.models import TextField
from django_summernote.admin import SummernoteModelAdminMixin
from unfold.admin import ModelAdmin
from unfold_markdown import MarkdownWidget
from engine.blog.models import Post, PostTag
from engine.core.admin import ActivationActionsMixin, FieldsetsMixin
@register(Post)
class PostAdmin(SummernoteModelAdminMixin, FieldsetsMixin, ActivationActionsMixin, ModelAdmin): # type: ignore [misc, type-arg]
list_display = ("title", "author", "slug", "created", "modified")
list_filter = ("author", "tags", "created", "modified")
search_fields = ("title", "content", "slug")
filter_horizontal = ("tags",)
date_hierarchy = "created"
autocomplete_fields = ("tags",)
formfield_overrides = {TextField: {"widget": MarkdownWidget}}
readonly_fields = (
"uuid",
"slug",
"modified",
"created",
)
summernote_fields = ("content",)
general_fields = [
"title",
"author",
"content",
"file",
]
relation_fields = [
"author",
"tags",
]
@register(PostTag)
class PostTagAdmin(ModelAdmin): # type: ignore [type-arg]
list_display = ("tag_name", "name")
search_fields = ("tag_name", "name")
ordering = ("tag_name",)