forked from CSI-KJSCE/appointment_to_examiner
coursePanel dropdown, 6 emails per subject
This commit is contained in:
@@ -108,7 +108,7 @@ router.get("/course-consolidated", async (req, res) => {
|
||||
|
||||
// Add the faculty name to the appropriate task
|
||||
if (appointment.task && groupedByCourse[courseId].tasks[appointment.task]) {
|
||||
groupedByCourse[courseId].tasks[appointment.task].add(appointment.facultyName);
|
||||
groupedByCourse[courseId].tasks[appointment.task].add(JSON.stringify({ facultyId: appointment.facultyId, facultyName: appointment.facultyName }));
|
||||
}
|
||||
});
|
||||
|
||||
@@ -130,12 +130,12 @@ router.get("/course-consolidated", async (req, res) => {
|
||||
semester: course.semester,
|
||||
examType: course.examType,
|
||||
year: course.year,
|
||||
oralPracticalTeachers: Array.from(course.tasks.oralsPracticals),
|
||||
assessmentTeachers: Array.from(course.tasks.assessment),
|
||||
reassessmentTeachers: Array.from(course.tasks.reassessment),
|
||||
paperSettingTeachers: Array.from(course.tasks.paperSetting),
|
||||
moderationTeachers: Array.from(course.tasks.moderation),
|
||||
pwdPaperSettingTeachers: Array.from(course.tasks.pwdPaperSetter),
|
||||
oralPracticalTeachers: Array.from(course.tasks.oralsPracticals).map((data) => JSON.parse(data)),
|
||||
assessmentTeachers: Array.from(course.tasks.assessment).map((data) => JSON.parse(data)),
|
||||
reassessmentTeachers: Array.from(course.tasks.reassessment).map((data) => JSON.parse(data)),
|
||||
paperSettingTeachers: Array.from(course.tasks.paperSetting).map((data) => JSON.parse(data)),
|
||||
moderationTeachers: Array.from(course.tasks.moderation).map((data) => JSON.parse(data)),
|
||||
pwdPaperSettingTeachers: Array.from(course.tasks.pwdPaperSetter).map((data) => JSON.parse(data)),
|
||||
}));
|
||||
|
||||
res.status(200).json(consolidatedData);
|
||||
@@ -215,5 +215,37 @@ router.get("/department-consolidated", async (req, res) => {
|
||||
}
|
||||
});
|
||||
|
||||
router.get("/panel-consolidated", async (req, res) => {
|
||||
try {
|
||||
const courses = await Course.find();
|
||||
const faculties = await Faculty.find();
|
||||
|
||||
// Create a structure where each course has its associated faculty
|
||||
const consolidatedData = courses.map((course) => {
|
||||
return {
|
||||
courseId: course.courseId,
|
||||
courseName: course.courseName,
|
||||
semester: course.semester,
|
||||
examType: course.scheme,
|
||||
program: course.program,
|
||||
faculty: faculties
|
||||
.filter((faculty) => faculty.courses.includes(course.courseId))
|
||||
.map((faculty) => ({
|
||||
facultyId: faculty.facultyId,
|
||||
name: faculty.name,
|
||||
email: faculty.email,
|
||||
qualification: faculty.qualification,
|
||||
experience: faculty.experience,
|
||||
})),
|
||||
};
|
||||
});
|
||||
|
||||
res.status(200).json(consolidatedData);
|
||||
} catch (error) {
|
||||
console.error("Error fetching panel consolidated data:", error);
|
||||
res.status(500).json({ message: "Failed to fetch panel consolidated data" });
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
module.exports = router;
|
||||
|
||||
Reference in New Issue
Block a user