From 832850538fd12a3705aeaaf7fc77792936fe8fe9 Mon Sep 17 00:00:00 2001 From: Imggaggu Date: Wed, 21 May 2025 21:42:24 +0900 Subject: [PATCH 01/10] =?UTF-8?q?[Fix]merge&=20adminassignment=20=EC=97=B0?= =?UTF-8?q?=EA=B2=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- frontend/src/App.jsx | 16 ------------ frontend/src/api/assignment.js | 17 ++++++++++++- .../pages/admin/AdminStudentAssignment.jsx | 25 +++++++++++++++++-- 3 files changed, 39 insertions(+), 19 deletions(-) diff --git a/frontend/src/App.jsx b/frontend/src/App.jsx index e177e6b..dd86848 100644 --- a/frontend/src/App.jsx +++ b/frontend/src/App.jsx @@ -12,31 +12,16 @@ import ManageTask from "./pages/admin/ManageTask.jsx"; import AttendanceCode from "./pages/admin/AttendanceCode"; import Attendance from "./pages/generation/Attendance"; import AdminStudentAttendance from "./pages/admin/AdminStudentAttendance"; -<<<<<<< HEAD import AdminStudentAssignment from "./pages/admin/AdminStudentAssignment.jsx"; -======= import RequireAuth from "./components/RequireAuth"; import RequireAdmin from "./components/RequireAdmin"; ->>>>>>> 08242a5045ea08b68c40b107cc871f8b3c3446eb function App() { return ( } /> } /> -<<<<<<< HEAD - } /> - } /> - } /> - } /> - } /> - } /> - } /> - } /> - } /> - } /> -======= } /> ->>>>>>> 08242a5045ea08b68c40b107cc871f8b3c3446eb ); diff --git a/frontend/src/api/assignment.js b/frontend/src/api/assignment.js index 323730a..2af21aa 100644 --- a/frontend/src/api/assignment.js +++ b/frontend/src/api/assignment.js @@ -13,4 +13,19 @@ export const fetchAssignmentsByUser = async (userId) => { console.error("과제 데이터 불러오기 실패:", err); throw err; } -}; \ No newline at end of file +}; + + +export const submitAssignmentStatus = async (userId, assignmentId, status) => { + return api.post(`/api/admin/users/${userId}/assignments/${assignmentId}/submission`, { + assignmentId, + userId, + status, + }); +}; + +export const updateAssignmentStatus = async (userId, assignmentId, status) => { + return api.put(`/api/admin/users/${userId}/assignments/${assignmentId}/submission`, { + status, + }); +}; diff --git a/frontend/src/pages/admin/AdminStudentAssignment.jsx b/frontend/src/pages/admin/AdminStudentAssignment.jsx index 2114cb4..35d234e 100644 --- a/frontend/src/pages/admin/AdminStudentAssignment.jsx +++ b/frontend/src/pages/admin/AdminStudentAssignment.jsx @@ -5,6 +5,7 @@ import WeeklyOpenBlock from "../../components/WeeklyOpenBlock"; import AssignmentInfoBlock from "../../components/AssignmentInfoBlock"; import api from "../../api/api"; import styles from "./AdminStudentAssignment.module.css"; +import { submitAssignmentStatus, updateAssignmentStatus } from "../../api/assignments"; const AdminStudentAssignment = () => { const { studentId, week } = useParams(); @@ -14,7 +15,7 @@ const AdminStudentAssignment = () => { const [selectedWeekLabel, setSelectedWeekLabel] = useState(null); useEffect(() => { - api.get(`/admin/users/${studentId}`).then((res) => { + api.get(`/admin/users/${userId}`).then((res) => { setStudentInfo(res.data.data); }); @@ -62,13 +63,33 @@ const AdminStudentAssignment = () => { task.modified = true; setWeeks(updated); }; - +/* const handleSave = async (taskId, status) => { await api.put("/admin/assignment/status", { assignmentId: taskId, status, }); }; +*/ +const handleSave = async (taskId, status) => { + const userId = parseInt(studentId); // 문자열일 수 있으니 숫자로 변환 + + try { + // PUT 요청 시도 (기존 과제 수정) + await updateAssignmentStatus(userId, taskId, status); + alert("과제 상태가 수정되었습니다."); + } catch (err) { + console.warn("PUT 실패, POST 시도"); + try { + // 없으면 POST 요청 (새 과제 등록) + await submitAssignmentStatus(userId, taskId, status); + alert("과제 상태가 등록되었습니다."); + } catch (err) { + alert("상태 저장 실패"); + console.error(err); + } + } +}; return (
From 7d7fe688cc540a9dcc00b286ddd5076f14e1f3e6 Mon Sep 17 00:00:00 2001 From: Suhjung Park <145967352+Imggaggu@users.noreply.github.com> Date: Wed, 21 May 2025 22:18:38 +0900 Subject: [PATCH 02/10] [Fix] AdminStudentAssignment.jsx --- frontend/src/pages/admin/AdminStudentAssignment.jsx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/frontend/src/pages/admin/AdminStudentAssignment.jsx b/frontend/src/pages/admin/AdminStudentAssignment.jsx index 35d234e..9424ca7 100644 --- a/frontend/src/pages/admin/AdminStudentAssignment.jsx +++ b/frontend/src/pages/admin/AdminStudentAssignment.jsx @@ -5,7 +5,7 @@ import WeeklyOpenBlock from "../../components/WeeklyOpenBlock"; import AssignmentInfoBlock from "../../components/AssignmentInfoBlock"; import api from "../../api/api"; import styles from "./AdminStudentAssignment.module.css"; -import { submitAssignmentStatus, updateAssignmentStatus } from "../../api/assignments"; +import { submitAssignmentStatus, updateAssignmentStatus } from "../../api/assignment"; const AdminStudentAssignment = () => { const { studentId, week } = useParams(); @@ -143,4 +143,4 @@ const handleSave = async (taskId, status) => { ); }; -export default AdminStudentAssignment; \ No newline at end of file +export default AdminStudentAssignment; From 135faeb5b6eab0c07ff37b781d2fe9da9df2f7df Mon Sep 17 00:00:00 2001 From: Suhjung Park <145967352+Imggaggu@users.noreply.github.com> Date: Wed, 21 May 2025 22:58:14 +0900 Subject: [PATCH 03/10] Update vite.config.js --- frontend/vite.config.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/frontend/vite.config.js b/frontend/vite.config.js index 6b46dee..26f670c 100644 --- a/frontend/vite.config.js +++ b/frontend/vite.config.js @@ -7,7 +7,7 @@ export default defineConfig({ server: { proxy: { "/api": { - target: "http://localhost:8080", + target: "http://api.pirocheck.org:8080/api", changeOrigin: true, }, }, From d1fb9ecdab0dd9a260be092710b9eb51ded57771 Mon Sep 17 00:00:00 2001 From: Suhjung Park <145967352+Imggaggu@users.noreply.github.com> Date: Wed, 21 May 2025 23:01:22 +0900 Subject: [PATCH 04/10] Update vite.config.js --- frontend/vite.config.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/frontend/vite.config.js b/frontend/vite.config.js index 26f670c..6b46dee 100644 --- a/frontend/vite.config.js +++ b/frontend/vite.config.js @@ -7,7 +7,7 @@ export default defineConfig({ server: { proxy: { "/api": { - target: "http://api.pirocheck.org:8080/api", + target: "http://localhost:8080", changeOrigin: true, }, }, From 5a7c2e098bd01f68ed83ab0f9d052dc056bdfc55 Mon Sep 17 00:00:00 2001 From: Suhjung Park <145967352+Imggaggu@users.noreply.github.com> Date: Wed, 21 May 2025 23:02:12 +0900 Subject: [PATCH 05/10] Update assignment.js --- frontend/src/api/assignment.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/frontend/src/api/assignment.js b/frontend/src/api/assignment.js index 2af21aa..0c31de0 100644 --- a/frontend/src/api/assignment.js +++ b/frontend/src/api/assignment.js @@ -7,7 +7,7 @@ export const fetchAssignmentsByUser = async (userId) => { */ export const fetchAssignmentsByUser = async (userId) => { try { - const res = await api.get(`/api/assignment/${userId}`); + const res = await api.get(`/assignment/${userId}`); return res.data; // 백엔드가 반환하는 JSON 그대로 } catch (err) { console.error("과제 데이터 불러오기 실패:", err); @@ -17,7 +17,7 @@ export const fetchAssignmentsByUser = async (userId) => { export const submitAssignmentStatus = async (userId, assignmentId, status) => { - return api.post(`/api/admin/users/${userId}/assignments/${assignmentId}/submission`, { + return api.post(`/admin/users/${userId}/assignments/${assignmentId}/submission`, { assignmentId, userId, status, @@ -25,7 +25,7 @@ export const submitAssignmentStatus = async (userId, assignmentId, status) => { }; export const updateAssignmentStatus = async (userId, assignmentId, status) => { - return api.put(`/api/admin/users/${userId}/assignments/${assignmentId}/submission`, { + return api.put(`/admin/users/${userId}/assignments/${assignmentId}/submission`, { status, }); }; From 30b5a0f2abe35f835ef946c56eb88f01cf6f129c Mon Sep 17 00:00:00 2001 From: NamKyeongMin Date: Wed, 21 May 2025 23:09:50 +0900 Subject: [PATCH 06/10] [fix]: DetailManageStudent error fix --- frontend/src/pages/admin/DetailManageStudent.jsx | 1 - 1 file changed, 1 deletion(-) diff --git a/frontend/src/pages/admin/DetailManageStudent.jsx b/frontend/src/pages/admin/DetailManageStudent.jsx index 3b4907a..a76877a 100644 --- a/frontend/src/pages/admin/DetailManageStudent.jsx +++ b/frontend/src/pages/admin/DetailManageStudent.jsx @@ -45,7 +45,6 @@ const DetailManageStudent = () => {
- {student.assignmentTitles.map((title, idx) => ( - ))}
From a5c9d1183c54a5cb8394743b49bd9186855f121f Mon Sep 17 00:00:00 2001 From: NamKyeongMin Date: Thu, 22 May 2025 02:11:44 +0900 Subject: [PATCH 10/10] =?UTF-8?q?[add]:=20=EB=B2=84=ED=8A=BC=20=EC=A1=B0?= =?UTF-8?q?=EA=B1=B4=EB=B6=80=20=EB=A0=8C=EB=8D=94=EB=A7=81=20=EC=B6=94?= =?UTF-8?q?=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/pages/admin/DetailManageStudent.jsx | 38 ++++++++++--------- 1 file changed, 21 insertions(+), 17 deletions(-) diff --git a/frontend/src/pages/admin/DetailManageStudent.jsx b/frontend/src/pages/admin/DetailManageStudent.jsx index 69a9074..e6b20bb 100644 --- a/frontend/src/pages/admin/DetailManageStudent.jsx +++ b/frontend/src/pages/admin/DetailManageStudent.jsx @@ -50,23 +50,27 @@ const DetailManageStudent = () => { 보증금 방어권: {student.defence} - -
- {weekData.map((week, index) => ( - - ))} -
+ {student && ( + + )} + {student && ( +
+ {weekData.map((week, index) => ( + + ))} +
+ )} );