diff --git a/api/src/routes/course.ts b/api/src/routes/course.ts index 38bd053..046b9bb 100644 --- a/api/src/routes/course.ts +++ b/api/src/routes/course.ts @@ -76,6 +76,7 @@ eventRouter.post('/', async (req: Request, res: Response) => { console.log(); let data: CourseEventDetails = req.body; data.created_by = posterID; + data.event_date = new Date(data.event_date); const id = await insertCourseEvent(data); res.status(201).json(id); } catch (error) { diff --git a/api/src/services/CourseSerivce.ts b/api/src/services/CourseSerivce.ts index 6b43c32..1cadc31 100644 --- a/api/src/services/CourseSerivce.ts +++ b/api/src/services/CourseSerivce.ts @@ -1,8 +1,8 @@ import pool from "../db" import { Course, CourseAttendee, CourseAttendeeRole, CourseEventDetails, CourseEventSummary, RawAttendeeRow } from "@app/shared/types/course" - +import { toDateTime } from "@app/shared/utils/time"; export async function getAllCourses(): Promise { - const sql = "SELECT * FROM courses WHERE deleted = false;" + const sql = "SELECT * FROM courses WHERE deleted = false ORDER BY name ASC;" const res: Course[] = await pool.query(sql); @@ -21,8 +21,8 @@ function buildAttendee(row: RawAttendeeRow): CourseAttendee { passed_qual: !!row.passed_qual, attendee_id: row.attendee_id, course_event_id: row.course_event_id, - created_at: row.created_at, - updated_at: row.updated_at, + created_at: new Date(row.created_at), + updated_at: new Date(row.updated_at), remarks: row.remarks, attendee_role_id: row.attendee_role_id, attendee_name: row.attendee_name, @@ -32,8 +32,8 @@ function buildAttendee(row: RawAttendeeRow): CourseAttendee { name: row.role_name, description: row.role_description, deleted: !!row.role_deleted, - created_at: row.role_created_at, - updated_at: row.role_updated_at, + created_at: new Date(row.role_created_at), + updated_at: new Date(row.role_updated_at), } : null }; @@ -83,7 +83,7 @@ export async function insertCourseEvent(event: CourseEventDetails): Promise { - console.log(newErrors) -}, { deep: true }) +// watch(errors, (newErrors) => { +// console.log(newErrors) +// }, { deep: true }) -watch(values, (newErrors) => { - console.log(newErrors.attendees) -}, { deep: true }) +// watch(values, (newErrors) => { +// console.log(newErrors.attendees) +// }, { deep: true }) + +watch(() => values.course_id, (newCourseId, oldCourseId) => { + if (!oldCourseId) return; + + values.attendees.forEach((a, index) => { + setFieldValue(`attendees[${index}].passed_bookwork`, false); + setFieldValue(`attendees[${index}].passed_qual`, false); + }); +}); const submitForm = handleSubmit(onSubmit); @@ -50,13 +61,14 @@ function onSubmit(vals) { try { const clean: CourseEventDetails = { ...vals, - event_date: toMySQLDateTime(new Date(vals.event_date)), + event_date: new Date(vals.event_date), } + postTrainingReport(clean).then((newID) => { emit("submit", newID); }); } catch (err) { - console.log("There was an error submitting the training report", err); + console.error("There was an error submitting the training report", err); } } @@ -123,14 +135,29 @@ onMounted(async () => { -
-
Member
-
Role
-
Bookwork
-
Qual
-
Remarks
-
+
+
+ +
Member
+
Role
+ + +
Bookwork
+ + +
Qual
+ +
Remarks
+
+
+ + +
+ ──── Pass ──── +
@@ -178,7 +205,8 @@ onMounted(async () => {
+ :name="`attendees[${index}].passed_bookwork`" :model-value="!field.checked" + @update:model-value="field['onUpdate:modelValue']">
+ :name="`attendees[${index}].passed_qual`" :model-value="!field.checked" + @update:model-value="field['onUpdate:modelValue']">
{{ report.course_name.length > 30 ? report.course_shortname : report.course_name }} - {{ report.date }} + {{ report.date.split('T')[0] }} {{ report.created_by_name === null ? "Unknown User" : report.created_by_name }} @@ -173,7 +173,7 @@ onMounted(async () => {

{{ focusedTrainingReport.course_name }}

-

{{ focusedTrainingReport.event_date }}

+

{{ focusedTrainingReport.event_date.split('T')[0] }}

Created by {{ focusedTrainingReport.created_by_name === null ? "Unknown User" : focusedTrainingReport.created_by_name }}