diff --git a/frontend/src/components/shot/ShotDetailPanel.vue b/frontend/src/components/shot/ShotDetailPanel.vue
index 93c5583..950d164 100644
--- a/frontend/src/components/shot/ShotDetailPanel.vue
+++ b/frontend/src/components/shot/ShotDetailPanel.vue
@@ -185,13 +185,15 @@
@click="$emit('select-task', task, 'infos')"
>
- {{ task.assigned_user_name || 'Unassigned' }}
+
+
+
+ {{ getTaskAssigneeInitials(task) }}
+
+
{{ task.assigned_user_name || 'Unassigned' }}
-
- {{ formatTaskStatus(task.status.toString()) }}
-
+
@@ -339,19 +341,27 @@ import { Badge } from '@/components/ui/badge'
import { Label } from '@/components/ui/label'
import { Tabs, TabsContent, TabsList, TabsTrigger } from '@/components/ui/tabs'
import { Popover, PopoverContent, PopoverTrigger } from '@/components/ui/popover'
+import { Avatar, AvatarFallback, AvatarImage } from '@/components/ui/avatar'
import DetailPanelLoading from '@/components/shared/DetailPanelLoading.vue'
import DetailPanelError from '@/components/shared/DetailPanelError.vue'
import DetailPanelHeader from '@/components/shared/DetailPanelHeader.vue'
+import TaskStatusBadge from '@/components/task/TaskStatusBadge.vue'
-import { shotService, ShotStatus, type Shot, type TaskStatusInfo, TaskStatus } from '@/services/shot'
+import { shotService, ShotStatus, type Shot, type TaskStatusInfo } from '@/services/shot'
import { taskService } from '@/services/task'
+import { projectService, type ProjectMember } from '@/services/project'
import { useAuthStore } from '@/stores/auth'
+import { useTaskStatusesStore } from '@/stores/taskStatuses'
+import { useAvatarUrl } from '@/composables/useAvatarUrl'
// Use TaskStatusInfo from shot service instead of local Task interface
interface Task extends TaskStatusInfo {
id: number
name?: string
assigned_user_name?: string
+ assigned_user_avatar_url?: string | null
+ assigned_user_first_name?: string
+ assigned_user_last_name?: string
deadline?: string
}
@@ -375,6 +385,8 @@ const props = defineProps