feat(src/projects): add ProjectNoteInline to ProjectAdmin

Add ProjectNoteInline to allow inline note management in project admin.
Restrict queryset to users with appropriate project memberships.
This commit is contained in:
sankalp committed 2026-06-28 15:45:47 +05:45
1 parent 0d11aa0e16
commit d66e03c0ce
1 file changed
+22 -1
+22 -1
View File
@@ -1,8 +1,29 @@
from django.contrib import admin
from src.notes.models import ProjectNote
from src.projects.models import Project, ProjectMember
class ProjectNoteInline(admin.TabularInline):
model = ProjectNote
extra = 0
fields = ("title", "note_date", "created_by")
readonly_fields = ("created_at", "updated_at")
def formfield_for_foreignkey(self, db_field, request, **kwargs):
if db_field.name == "created_by":
kwargs["queryset"] = (
request.user._meta.model.objects.filter(
project_memberships__project_id=request.resolver_match.kwargs.get(
"object_id"
)
)
if request.resolver_match.kwargs.get("object_id")
else kwargs.get("queryset")
)
return super().formfield_for_foreignkey(db_field, request, **kwargs)
class ProjectMemberInline(admin.TabularInline):
model = ProjectMember
extra = 1
@@ -20,7 +41,7 @@ class ProjectAdmin(admin.ModelAdmin):
"pinned_date",
)
search_fields = ("name", "ticket_prefix")
inlines = (ProjectMemberInline,)
inlines = (ProjectMemberInline, ProjectNoteInline)
@admin.register(ProjectMember)