From 6d43910a26b92990b6893103ab926b339d392fe9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EA=B9=80=ED=98=84=EC=84=9D?= Date: Thu, 9 May 2024 11:01:10 +0900 Subject: [PATCH] =?UTF-8?q?=ED=94=84=EB=A1=9C=EB=8D=95=EC=85=98=20?= =?UTF-8?q?=EB=B0=B0=ED=8F=AC=EB=A5=BC=20=EC=9C=84=ED=95=B4=20=EB=A8=B8?= =?UTF-8?q?=EC=A7=80=ED=95=A9=EB=8B=88=EB=8B=A4.=20(#165)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * chore: 환경변수 추가 * Update qa.yml * fix: 로그인 안내문구 수정 * chore: 서명 미업로드 설명 추가 * qa 배포를 위해 머지합니다. (#137) * fix(pages): QA 오류 수정 * feat(pages): 관리자가 수정지시사항 확인 여부를 수정할 수 있도록 변경 * fix: 무한 요청 오류 수정 * fix: showNotificationSuccess 위치 변경 * fix: (chore) issn 옵셔널로 변경후 undefined여서 생기는 오류 수정 * fix: 학생등록 폼 논문제목/연락처/이메일 옵셔널 변경 및 학과로 필터링 제거 * fix: 교수 등록 폼 수정 및 학생/교수 로그인하기 기능 오류 수정 디벨롭 브랜치와 머지, #118 브랜치에서 이어서 작업 (메인에서 작업해서..ㅠㅠ) * fix: 본심 전환 모달 오류 수정 * chore: 포맷팅 * fix: 심사결과페이지 심사 중에도 확인 가능하도록 수정 * fix: 논문투고 페이지 예심/본심 뱃지 추가 * fix: 논문투고 페이지 일정 예심/본심에 따라 불러오도록 수정 * fix: 학생 심사 결과 페이지 본심 정보도 불러오도록 수정 * fix: AchievementForm isAdmin 수정 * fix: 논문정보 수정 api 스펠링 변경 저희쪽에서 변경하는게 빠를 것 같아서 수정하였습니다. * fix: 심사 정보 수정 심사의견 및 파일 업로드가능하도록 수정 * fix: 심사의견/심사의견파일 둘중 하나만 선택하도록 수정 * feat: 교수/학생 일괄 삭제 기능 추가 * feat: main workflow 추가 * chore: 주석달기 * chore: 코드 중복 제거 * fix: 테이블 헤더 수정 * fix: 로그인 안내문구 수정 * chore: 서명 미업로드 설명 추가 --------- Co-authored-by: lhwdev * fix: 로그인 안내문구 수정 (#146) * fix: department null인 경우 예외처리 (#148) * [FIX] 심사 내용 없을때 등록 안되도록 수정 (#158) * fix: 심사시 심사의견파일 혹은 심사의견 필수 수정 * fix: 일괄등록 안내문구 추가 * fix: 최종심사 모달창 문구 수정 * fix: 관리자 심사 수정시 심사 내용 필수로 수정 * fix: 학생 심사 결과 페이지 심사의견 볼수있도록 수정 (#156) * feat: 학생 개별삭제, 교수 개별삭제 기능 추가 (#150) * fix: department null인 경우 예외처리 (#151) * fix: 교수/학생 로그인하기 router.refresh 추가 (#152) * fix: PhaseReady 시스템 단계 기간 주석처리 (#153) * fix: PhaseEditFormatRow Date 오류수정 (#154) * fix: 수정지시사항 단계 제외 오류 해결 및 학과관리 페이지로 이동 (#155) * [HOTFIX] [학생]심사의견 길때 한줄만 보이는 문제 (#161) * feat: 일괄등록 버튼 로딩기능 추가 * fix: 심사의견 길어질 시 모두 보여지도록 수정 * fix: 학생 심사결과 페이지 심사의견파일 다운로드 추가 (#162) * fix: 교수 최종판정 심사의견 파일업로드 주석처리 (#163) 혹시 몰라서 안지웠습니다. * [HOTFIX] 수정지시사항 단계, 연구실적등록 오류 수정 (#164) * fix: 학생 단계가 수정지시사항 단계가 아닐 때 ready 페이지로 넘김 * fix: 관리자 수정지시사항단계 수정 오류 * fix: 연구실적등록 오류 해결 --------- Co-authored-by: lhwdev --- .env.production | 1 + .github/workflows/qa.yml | 2 +- .../admin/results/[thesisId]/AdminReviewContent.tsx | 7 ++++--- .../reviews/[thesisId]/AdminReviewListContent.tsx | 7 ++++--- src/app/prof/final/[id]/ProfessorFinalForm.tsx | 7 ++++--- src/app/student/achievement/register/page.tsx | 2 +- src/app/student/result/page.tsx | 1 + src/app/student/revision/page.tsx | 6 +++++- src/components/common/Table/_elements/TableData.tsx | 4 +--- .../pages/AdminExcelRegister/AdminExcelRegister.tsx | 6 +++++- src/components/pages/review/Review/FinalReview.tsx | 10 +++++----- src/components/pages/review/Review/ReviewResult.tsx | 6 ++++++ 12 files changed, 38 insertions(+), 21 deletions(-) create mode 100644 .env.production diff --git a/.env.production b/.env.production new file mode 100644 index 00000000..443ea5f7 --- /dev/null +++ b/.env.production @@ -0,0 +1 @@ +NEXT_PUBLIC_API_ENDPOINT = https://qa.ice.scg.skku.ac.kr/v1/ \ No newline at end of file diff --git a/.github/workflows/qa.yml b/.github/workflows/qa.yml index 5b6f6f2c..6754077c 100644 --- a/.github/workflows/qa.yml +++ b/.github/workflows/qa.yml @@ -34,7 +34,7 @@ jobs: - name: Docker 준비(3/4) - buildx 설정 uses: docker/setup-buildx-action@v3 - name: Docker 준비(4/4) - 레지스트리 로그인 - uses: docker/login-action@v2 + uses: docker/login-action@v3 with: registry: ${{ secrets.HARBOR_REGISTRY }} username: ${{ secrets.HARBOR_USERNAME }} diff --git a/src/app/admin/results/[thesisId]/AdminReviewContent.tsx b/src/app/admin/results/[thesisId]/AdminReviewContent.tsx index e6a41697..92c3bd32 100644 --- a/src/app/admin/results/[thesisId]/AdminReviewContent.tsx +++ b/src/app/admin/results/[thesisId]/AdminReviewContent.tsx @@ -171,9 +171,10 @@ function ModalContent({ open, setOpen, data, current }: ModalProps) { } if ( - commentType === undefined || - (commentType === "심사 의견" && (comment === undefined || !comment)) || - (commentType === "심사 의견 파일" && fileUUID === undefined) + data.stage !== "REVISION" && + (commentType === undefined || + (commentType === "심사 의견" && (comment === undefined || !comment)) || + (commentType === "심사 의견 파일" && fileUUID === undefined)) ) { showNotificationError({ message: "심사 의견이나 심사 의견 파일을 첨부해주세요." }); return; diff --git a/src/app/admin/reviews/[thesisId]/AdminReviewListContent.tsx b/src/app/admin/reviews/[thesisId]/AdminReviewListContent.tsx index 53b63dd8..182f3596 100644 --- a/src/app/admin/reviews/[thesisId]/AdminReviewListContent.tsx +++ b/src/app/admin/reviews/[thesisId]/AdminReviewListContent.tsx @@ -103,9 +103,10 @@ function ModalContent({ open, setOpen, data, current }: ModalProps) { } if ( - commentType === undefined || - (commentType === "심사 의견" && (comment === undefined || !comment)) || - (commentType === "심사 의견 파일" && fileUUID === undefined) + data.stage !== "REVISION" && + (commentType === undefined || + (commentType === "심사 의견" && (comment === undefined || !comment)) || + (commentType === "심사 의견 파일" && fileUUID === undefined)) ) { showNotificationError({ message: "심사 의견이나 심사 의견 파일을 첨부해주세요." }); return; diff --git a/src/app/prof/final/[id]/ProfessorFinalForm.tsx b/src/app/prof/final/[id]/ProfessorFinalForm.tsx index 371227d3..4e444877 100644 --- a/src/app/prof/final/[id]/ProfessorFinalForm.tsx +++ b/src/app/prof/final/[id]/ProfessorFinalForm.tsx @@ -53,7 +53,7 @@ export function ProfessorFinalForm({ const { values } = form; const [showConfirmDialog, setShowConfirmDialog] = useState(false); const [currentState, setCurrentState] = useState(null); - const [commentType, setCommentType] = useState(); + const [commentType, setCommentType] = useState("심사 의견"); const handleSubmit = transactionTask(async (task, input: FormInput) => { setCurrentState("pending"); @@ -72,7 +72,7 @@ export function ProfessorFinalForm({ { contentStatus: input.status, ...(commentType === "심사 의견" ? { comment: input.comment } : {}), - ...(commentType === "심사 의견 파일" ? { fileUUID } : {}), + // ...(commentType === "심사 의견 파일" ? { fileUUID } : {}), } satisfies UpdateReviewRequestBody, { baseURL: process.env.NEXT_PUBLIC_REVIEW_API_ENDPOINT } ); @@ -103,7 +103,8 @@ export function ProfessorFinalForm({ ? values.commentFile !== null : !!values.commentFile; if (!values.comment && !hasCommentFile) { - showNotificationError({ message: "심사 의견이나 심사 의견 파일을 첨부해주세요." }); + // showNotificationError({ message: "심사 의견이나 심사 의견 파일을 첨부해주세요." }); + showNotificationError({ message: "종합 의견을 작성해주세요." }); return; } setShowConfirmDialog(true); diff --git a/src/app/student/achievement/register/page.tsx b/src/app/student/achievement/register/page.tsx index ac47c012..936edcc6 100644 --- a/src/app/student/achievement/register/page.tsx +++ b/src/app/student/achievement/register/page.tsx @@ -8,7 +8,7 @@ import AchievementRegisterSection from "@/components/pages/achievement/Achieveme async function StudentAchievementRegisterPage() { const { token } = await AuthSSR({ userType: "STUDENT" }); - const { within, start, end } = await checkPhase({ title: "논문 실적 제출", token }); + const { within, start, end } = await checkPhase({ title: "연구 실적 제출", token }); return within ? ( <> diff --git a/src/app/student/result/page.tsx b/src/app/student/result/page.tsx index b012511d..e2b07e64 100644 --- a/src/app/student/result/page.tsx +++ b/src/app/student/result/page.tsx @@ -12,6 +12,7 @@ import { UserResponse } from "@/api/_types/user"; export default async function StudentResultPage() { const { token } = await AuthSSR({ userType: "STUDENT" }); const user = (await fetcher({ url: API_ROUTES.user.get(), token })) as UserResponse; + const response = (await fetcher({ url: API_ROUTES.review.getMe(), token })) as { [key: string]: MyReviewResponse; }; diff --git a/src/app/student/revision/page.tsx b/src/app/student/revision/page.tsx index 2518c8d0..868bbef6 100644 --- a/src/app/student/revision/page.tsx +++ b/src/app/student/revision/page.tsx @@ -1,5 +1,8 @@ import { AuthSSR } from "@/api/AuthSSR"; +import { UserResponse } from "@/api/_types/user"; import { checkPhase } from "@/api/_utils/checkPhase"; +import { API_ROUTES } from "@/api/apiRoute"; +import { fetcher } from "@/api/fetcher"; import { formatTime } from "@/components/common/Clock/date/format"; import PageHeader from "@/components/common/PageHeader"; import { Section } from "@/components/common/Section"; @@ -10,8 +13,9 @@ import { Stack } from "@mantine/core"; export default async function StudentRevisionPage() { const { token } = await AuthSSR({ userType: "STUDENT" }); const { within, start, end } = await checkPhase({ title: "수정 지시 사항 제출", token }); + const user = (await fetcher({ url: API_ROUTES.user.get(), token })) as UserResponse; - return within ? ( + return within && user.currentPhase === "REVISION" ? ( <> diff --git a/src/components/common/Table/_elements/TableData.tsx b/src/components/common/Table/_elements/TableData.tsx index b77ab702..8a09ca0f 100644 --- a/src/components/common/Table/_elements/TableData.tsx +++ b/src/components/common/Table/_elements/TableData.tsx @@ -10,10 +10,8 @@ function TableData({ children }: Props) { {children} diff --git a/src/components/pages/AdminExcelRegister/AdminExcelRegister.tsx b/src/components/pages/AdminExcelRegister/AdminExcelRegister.tsx index a9893364..13eb0c3c 100644 --- a/src/components/pages/AdminExcelRegister/AdminExcelRegister.tsx +++ b/src/components/pages/AdminExcelRegister/AdminExcelRegister.tsx @@ -22,6 +22,7 @@ interface Props { function AdminExcelRegister({ isProf = false }: Props) { const [file, setFile] = useState(null); + const [isSubmitting, setIsSubmitting] = useState(false); const handleExcelDownload = async () => { try { @@ -47,6 +48,7 @@ function AdminExcelRegister({ isProf = false }: Props) { const handleExcelUpload = async () => { try { + setIsSubmitting(true); if (file) { const formData = new FormData(); formData.append("file", file); @@ -69,6 +71,8 @@ function AdminExcelRegister({ isProf = false }: Props) { } } catch (error) { // clientAxios에서 오류 출력 + } finally { + setIsSubmitting(false); } }; return ( @@ -97,7 +101,7 @@ function AdminExcelRegister({ isProf = false }: Props) { + , ]} diff --git a/src/components/pages/review/Review/FinalReview.tsx b/src/components/pages/review/Review/FinalReview.tsx index c5581050..7ce7f2d4 100644 --- a/src/components/pages/review/Review/FinalReview.tsx +++ b/src/components/pages/review/Review/FinalReview.tsx @@ -24,7 +24,7 @@ export interface FinalReviewProps { previousCommentFile: ApiFile | undefined; currentState: null | "pending" | "submitted"; commentType?: string; - setCommentType: Dispatch>; + setCommentType: Dispatch>; } export function FinalReview({ @@ -55,14 +55,14 @@ export function FinalReview({ - + {/* */} - + {/* - + */} + + + + + );