From 3eb2f432fa2ce056e757b52807a045a93250ce0b Mon Sep 17 00:00:00 2001 From: Tiago Ribeiro Date: Wed, 28 Aug 2024 13:07:04 +0100 Subject: [PATCH] Allowed assigners to release and start the assignment --- src/dashboards/AssignmentView.tsx | 19 +++++++++++++++++++ src/utils/assignments.ts | 18 +++++------------- 2 files changed, 24 insertions(+), 13 deletions(-) diff --git a/src/dashboards/AssignmentView.tsx b/src/dashboards/AssignmentView.tsx index 722daf6a..03f5baff 100644 --- a/src/dashboards/AssignmentView.tsx +++ b/src/dashboards/AssignmentView.tsx @@ -44,6 +44,20 @@ export default function AssignmentView({isOpen, assignment, onClose}: Props) { .finally(onClose); }; + const startAssignment = () => { + if (assignment) { + axios + .post(`/api/assignments/${assignment.id}/start`) + .then(() => { + toast.success(`The assignment "${assignment.name}" has been started successfully!`); + }) + .catch((e) => { + console.log(e); + toast.error("Something went wrong, please try again later!"); + }); + } + }; + const formatTimestamp = (timestamp: string) => { const date = moment(parseInt(timestamp)); const formatter = "YYYY/MM/DD - HH:mm"; @@ -301,6 +315,11 @@ export default function AssignmentView({isOpen, assignment, onClose}: Props) { Delete )} + {assignment && (assignment.results.length === 0 || moment().isAfter(moment(assignment.startDate))) && ( + + )} diff --git a/src/utils/assignments.ts b/src/utils/assignments.ts index d4dbc723..941397e3 100644 --- a/src/utils/assignments.ts +++ b/src/utils/assignments.ts @@ -1,18 +1,10 @@ import moment from "moment"; -import { Assignment } from "@/interfaces/results"; +import {Assignment} from "@/interfaces/results"; -export const futureAssignmentFilter = (a: Assignment) => - moment(a.startDate).isAfter(moment()) && !a.archived && !a.start; +export const futureAssignmentFilter = (a: Assignment) => moment(a.startDate).isAfter(moment()) && !a.archived; + +export const pastAssignmentFilter = (a: Assignment) => moment(a.endDate).isBefore(moment()) && !a.archived; -export const pastAssignmentFilter = (a: Assignment) => - (moment(a.endDate).isBefore(moment()) || - a.assignees.length === a.results.length || - (moment(a.startDate).isBefore(moment()) && !a.start)) && - !a.archived; export const archivedAssignmentFilter = (a: Assignment) => a.archived; -export const activeAssignmentFilter = (a: Assignment) => - moment(a.endDate).isAfter(moment()) && - // && moment(a.startDate).isBefore(moment()) - a.start && - a.assignees.length > a.results.length; +export const activeAssignmentFilter = (a: Assignment) => moment(a.endDate).isAfter(moment()) && moment(a.startDate).isBefore(moment());