mirror of
https://github.com/TurTaskProject/TurTaskWeb.git
synced 2025-12-19 05:54:07 +01:00
Merge branch 'feature/kanban-board' of https://github.com/TurTaskProject/TurTaskWeb into feature/kanban-board
This commit is contained in:
commit
53ce5c22fb
@ -63,7 +63,7 @@ class CustomUserProfileUpdate(APIView):
|
|||||||
return Response(serializer.data)
|
return Response(serializer.data)
|
||||||
return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
|
return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
|
||||||
|
|
||||||
|
|
||||||
class UserDataRetriveViewset(viewsets.GenericViewSet, mixins.RetrieveModelMixin):
|
class UserDataRetriveViewset(viewsets.GenericViewSet, mixins.RetrieveModelMixin):
|
||||||
queryset = CustomUser.objects.all()
|
queryset = CustomUser.objects.all()
|
||||||
permission_classes = (IsAuthenticated,)
|
permission_classes = (IsAuthenticated,)
|
||||||
@ -72,4 +72,4 @@ class UserDataRetriveViewset(viewsets.GenericViewSet, mixins.RetrieveModelMixin)
|
|||||||
def retrieve(self, request, *args, **kwargs):
|
def retrieve(self, request, *args, **kwargs):
|
||||||
serializer = self.get_serializer(request.user)
|
serializer = self.get_serializer(request.user)
|
||||||
return Response(serializer.data)
|
return Response(serializer.data)
|
||||||
|
|
||||||
|
|||||||
@ -28,6 +28,7 @@ export function Dashboard() {
|
|||||||
const [totalTask, setTotalTask] = useState(0);
|
const [totalTask, setTotalTask] = useState(0);
|
||||||
const [totalCompletedTasks, settotalCompletedTasks] = useState(0);
|
const [totalCompletedTasks, settotalCompletedTasks] = useState(0);
|
||||||
const [totalCompletedTasksToday, setTotalCompletedTasksToday] = useState(0);
|
const [totalCompletedTasksToday, setTotalCompletedTasksToday] = useState(0);
|
||||||
|
const [totalTaskToday, setTotalTaskToday] = useState(0);
|
||||||
const [progressData, setProgressData] = useState(0);
|
const [progressData, setProgressData] = useState(0);
|
||||||
const [overdueTask, setOverdueTask] = useState(0);
|
const [overdueTask, setOverdueTask] = useState(0);
|
||||||
|
|
||||||
@ -36,19 +37,16 @@ export function Dashboard() {
|
|||||||
const response = await axiosInstance.get("/dashboard/todostats/");
|
const response = await axiosInstance.get("/dashboard/todostats/");
|
||||||
const totalTaskValue = response.data.total_tasks || 0;
|
const totalTaskValue = response.data.total_tasks || 0;
|
||||||
const totalCompletedTasksValue = response.data.total_completed_tasks || 0;
|
const totalCompletedTasksValue = response.data.total_completed_tasks || 0;
|
||||||
|
const totalTaskTodayValue = response.data.total_task_today || 0;
|
||||||
const totalCompletedTasksTodayValue =
|
const totalCompletedTasksTodayValue =
|
||||||
response.data.total_completed_tasks_today || 0;
|
response.data.tasks_completed_today || 0;
|
||||||
const totalTaskToday = response.data.total_task_today || 0;
|
|
||||||
const totalCompletedTasksToday = response.data.tasks_completed_today || 0;
|
|
||||||
const overdueTasks = response.data.overdue_tasks || 0;
|
const overdueTasks = response.data.overdue_tasks || 0;
|
||||||
|
const progress = (totalCompletedTasksToday / totalTaskToday) * 100;
|
||||||
const progress =
|
|
||||||
(totalCompletedTasksToday / totalCompletedTasksToday) * 100;
|
|
||||||
|
|
||||||
setTotalTask(totalTaskValue);
|
setTotalTask(totalTaskValue);
|
||||||
settotalCompletedTasks(totalCompletedTasksValue);
|
settotalCompletedTasks(totalCompletedTasksValue);
|
||||||
setTotalCompletedTasksToday(totalCompletedTasksTodayValue);
|
setTotalCompletedTasksToday(totalCompletedTasksTodayValue);
|
||||||
setTotalTaskToday(totalTaskToday);
|
setTotalTaskToday(totalTaskTodayValue);
|
||||||
setProgressData(progress);
|
setProgressData(progress);
|
||||||
setOverdueTask(overdueTasks);
|
setOverdueTask(overdueTasks);
|
||||||
};
|
};
|
||||||
@ -147,7 +145,11 @@ export function Dashboard() {
|
|||||||
<Flex className="flex-col items-center">
|
<Flex className="flex-col items-center">
|
||||||
<ProgressCircle
|
<ProgressCircle
|
||||||
className="mt-6"
|
className="mt-6"
|
||||||
value={progressData}
|
value={
|
||||||
|
isNaN(progressData) || !isFinite(progressData)
|
||||||
|
? 0
|
||||||
|
: `${progressData.toFixed(0)}%`
|
||||||
|
}
|
||||||
size={200}
|
size={200}
|
||||||
strokeWidth={10}
|
strokeWidth={10}
|
||||||
radius={60}
|
radius={60}
|
||||||
|
|||||||
@ -102,7 +102,7 @@ export function ProfileUpdateComponent() {
|
|||||||
placeholder="Enter your first name"
|
placeholder="Enter your first name"
|
||||||
className="input w-full"
|
className="input w-full"
|
||||||
value={firstName}
|
value={firstName}
|
||||||
onChange={(e) => setFullName(e.target.value)}
|
onChange={(e) => setFirstName(e.target.value)}
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user