Add Space metadata model and provisional Forgejo content ADR
Introduce tenant-scoped Space/SpaceMembership with list and detail views. Document markdown-in-Forgejo as content SoR (ADR-0002). Run migrations on container start so app.coulomb.social picks up the new tables.
This commit is contained in:
parent
bb6bc6093a
commit
be32432d39
22 changed files with 697 additions and 12 deletions
34
coulomb_social/apps/spaces/admin.py
Normal file
34
coulomb_social/apps/spaces/admin.py
Normal file
|
|
@ -0,0 +1,34 @@
|
|||
from django.contrib import admin
|
||||
|
||||
from .models import Space, SpaceMembership
|
||||
|
||||
|
||||
class SpaceMembershipInline(admin.TabularInline):
|
||||
model = SpaceMembership
|
||||
extra = 0
|
||||
raw_id_fields = ("member",)
|
||||
|
||||
|
||||
@admin.register(Space)
|
||||
class SpaceAdmin(admin.ModelAdmin):
|
||||
list_display = (
|
||||
"title",
|
||||
"slug",
|
||||
"tenant_id",
|
||||
"is_active",
|
||||
"forgejo_owner",
|
||||
"forgejo_repo",
|
||||
"updated_at",
|
||||
)
|
||||
list_filter = ("tenant_id", "is_active")
|
||||
search_fields = ("title", "slug", "forgejo_repo")
|
||||
prepopulated_fields = {"slug": ("title",)}
|
||||
raw_id_fields = ("created_by",)
|
||||
inlines = [SpaceMembershipInline]
|
||||
|
||||
|
||||
@admin.register(SpaceMembership)
|
||||
class SpaceMembershipAdmin(admin.ModelAdmin):
|
||||
list_display = ("space", "member", "role", "created_at")
|
||||
list_filter = ("role",)
|
||||
raw_id_fields = ("space", "member")
|
||||
Loading…
Add table
Add a link
Reference in a new issue