feat: add people to projects and articles

This commit is contained in:
mohamad
2026-10-28 22:10:43 +08:00
parent 473637f477
commit 7c186b4230
14 changed files with 288 additions and 18 deletions
+25 -4
View File
@@ -3,7 +3,28 @@ from django.contrib import admin
from apps.core.admin_video import video_admin_preview
from apps.core.video import VIDEO_ADMIN_FIELDSET
from .models import Article, ArticleCitation, ArticleSection, MainProduct, ProductVideo, SubProduct
from .models import (
Article, ArticleCitation, ArticlePerson, ArticleSection, MainProduct,
MainProductPerson, ProductVideo, SubProduct, SubProductPerson,
)
class PersonInline(admin.StackedInline):
extra = 0
fields = ("role", "name", "description", "read_more_description", "image", "image_alt", "url", "order")
ordering = ("order",)
class MainProductPersonInline(PersonInline):
model = MainProductPerson
class SubProductPersonInline(PersonInline):
model = SubProductPerson
class ArticlePersonInline(PersonInline):
model = ArticlePerson
class ArticleCitationInline(admin.TabularInline):
@@ -77,7 +98,7 @@ class MainProductAdmin(admin.ModelAdmin):
search_fields = ("name", "description")
prepopulated_fields = {"slug": ("name",)}
list_editable = ("order", "is_active", "show_on_homepage", "homepage_order")
inlines = [MainProductArticleInline, ProductVideoInline, SubProductInline]
inlines = [MainProductPersonInline, MainProductArticleInline, ProductVideoInline, SubProductInline]
fieldsets = (
(
None,
@@ -136,7 +157,7 @@ class SubProductAdmin(admin.ModelAdmin):
prepopulated_fields = {"slug": ("name",)}
list_editable = ("order", "is_active", "show_on_homepage", "homepage_order")
raw_id_fields = ("main_product",)
inlines = [SubProductArticleInline, SubProductVideoInline]
inlines = [SubProductPersonInline, SubProductArticleInline, SubProductVideoInline]
fieldsets = (
(
None,
@@ -164,7 +185,7 @@ class ArticleAdmin(admin.ModelAdmin):
search_fields = ("title", "description", "main_product__name", "sub_product__name")
list_editable = ("order",)
raw_id_fields = ("main_product", "sub_product")
inlines = [ArticleSectionInline, ArticleCitationInline]
inlines = [ArticlePersonInline, ArticleSectionInline, ArticleCitationInline]
fieldsets = (
(None, {"fields": ("main_product", "sub_product", "badge", "title")}),
("Description", {"fields": ("description_format", "description", "read_more_description")}),