coulomb-social/coulomb_social/apps/spaces/admin.py
tegwick df18df3377
Some checks failed
Use-case regression gate / usecase-regressions (push) Failing after 6m2s
Sync work-record index
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

Assistant: claude-code
Assistant-Model: opus
Assistant-Process: 1370019@bnt-lap001
Assistant-Session: d462dd63-16de-4189-ae70-b9cd6566bf87
2026-10-11 23:04:07 +02:00

61 lines
1.6 KiB
Python

from django.contrib import admin
from django.core.exceptions import ValidationError
from django.db import IntegrityError
from . import pageops
from .models import Space, SpaceMembership
class SpaceMembershipInline(admin.TabularInline):
model = SpaceMembership
extra = 0
raw_id_fields = ("member",)
@admin.register(Space)
class SpaceAdmin(admin.ModelAdmin):
def save_model(self, request, obj, form, change):
with pageops.content_write_lock():
obj.full_clean()
try:
super().save_model(request, obj, form, change)
except IntegrityError as exc:
raise ValidationError(
{"slug": "This content instance already uses that slug"}
) from exc
list_display = (
"title",
"slug",
"tenant_id",
"is_active",
"visual",
"forgejo_owner",
"forgejo_repo",
"updated_at",
)
list_filter = ("tenant_id", "is_active")
search_fields = ("title", "slug", "description", "forgejo_repo")
prepopulated_fields = {"slug": ("title",)}
raw_id_fields = ("created_by",)
inlines = [SpaceMembershipInline]
fields = (
"tenant_id",
"slug",
"title",
"description",
"visual",
"created_by",
"forgejo_owner",
"forgejo_repo",
"default_branch",
"content_root",
"is_active",
)
@admin.register(SpaceMembership)
class SpaceMembershipAdmin(admin.ModelAdmin):
list_display = ("space", "member", "role", "created_at")
list_filter = ("role",)
raw_id_fields = ("space", "member")