diff --git a/src/projects/admin.py b/src/projects/admin.py index 5ed5ef7..862881e 100644 --- a/src/projects/admin.py +++ b/src/projects/admin.py @@ -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)