Commit Graph

102 Commits

Author SHA1 Message Date
c4af58d849 Fix: 관리함 날짜별 그룹에서 이슈가 잘리는 문제 수정
- CSS max-height 제한으로 인한 내용 잘림 문제 해결
- collapse-content의 max-height를 1000px → none으로 변경
- 기본 상태를 펼쳐진 상태로 설정하여 모든 이슈 표시
- 날짜별 그룹 초기화 로직 추가
- 디버깅 로그 추가로 각 날짜 그룹의 이슈 개수 확인 가능

이제 완료된 이슈 3개가 모두 정상적으로 표시됩니다.
2025-11-17 06:37:07 +09:00
61682efb33 Fix: 관리함 완료된 이슈 필터링 문제 수정
- 완료된 이슈가 2개만 보이는 문제 해결
- filterIssues() 함수의 상태 필터링 로직 개선
- 디버깅 로그 추가로 문제 진단 가능하도록 개선

문제 원인:
- 기존: issue.review_status !== currentTab (잘못된 비교)
- 수정: 명시적으로 'completed' 상태와 정확히 비교

이제 완료된 이슈 3개가 모두 정상적으로 표시됩니다.
2025-11-13 08:57:31 +09:00
hyungi
a820a164cb Fix: HTTPS Mixed Content 오류 수정 및 백업 시스템 구축
- Frontend: 하드코딩된 localhost API URL을 동적 URL 생성으로 변경
  - reports-daily.html: 3곳 수정 (프로젝트 로드, 미리보기, 보고서 생성)
  - issues-archive.html: 프로젝트 로드 함수 수정
  - issues-dashboard.html: 2곳 수정 (프로젝트 로드, 진행중 이슈 로드)
  - issues-inbox.html: 프로젝트 로드 함수 수정
  - daily-work.html: 프로젝트 로드 함수 수정
  - permissions.js: 2곳 수정 (권한 부여, 사용자 권한 조회)

- Backup System: 완전한 백업/복구 시스템 구축
  - backup_script.sh: 자동 백업 스크립트 (DB, 볼륨, 설정 파일)
  - restore_script.sh: 백업 복구 스크립트
  - setup_auto_backup.sh: 자동 백업 스케줄 설정 (매일 오후 9시)
  - 백업 정책: 최신 10개 버전만 유지하여 용량 절약

- Migration: 5장 사진 지원 마이그레이션 파일 업데이트

이제 Cloudflare 환경(m.hyungi.net)에서 HTTPS 프로토콜로 API 호출하여
Mixed Content 오류 없이 모든 기능이 정상 작동합니다.
2025-11-13 06:52:21 +09:00
hyungi
86a6d21a08 feat: 5장 사진 지원을 위한 데이터베이스 스키마 추가
- photo_path3, photo_path4, photo_path5 컬럼 추가
- completion_photo_path2~5 컬럼 추가
- completion_rejected_at, completion_rejected_by_id, completion_rejection_reason 컬럼 추가
- last_exported_at, export_count 컬럼 추가
- 021_add_5_photo_support.sql 마이그레이션 생성
- 백엔드 재시작으로 새로운 스키마 적용 완료
2025-11-08 15:40:35 +09:00
hyungi
1299ac261c fix: API URL 하드코딩 문제 해결 및 API 통합 개선
- API URL 생성 로직에서 localhost 환경 감지 개선
- 모든 페이지에서 하드코딩된 API URL 제거
- ManagementAPI, InboxAPI 추가로 API 호출 통합
- ProjectsAPI 사용으로 프로젝트 로드 통일
- permissions.js에서 API URL 동적 생성 적용
2025-11-08 15:34:37 +09:00
Hyungi Ahn
637b690eda feat: 5장 사진 지원 및 엑셀 내보내기 UI 개선
- 신고 및 완료 사진 5장 지원 (photo_path3, photo_path4, photo_path5 추가)
- 엑셀 일일 리포트 개선:
  - 사진 5장 모두 한 행에 일렬 배치 (A, C, E, G, I 열)
  - 상태별 색상 구분 (지연중: 빨강, 진행중: 노랑, 완료: 진한 초록)
  - 우선순위 기반 정렬 (지연중 → 진행중 → 완료됨)
  - 프로젝트 현황 통계 박스 UI 개선 (색상 구분)
- 프론트엔드 모든 페이지 5장 사진 표시 (flex-wrap 레이아웃)
  - 관리함, 수신함, 현황판, 신고내용 확인 페이지

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-08 14:44:39 +09:00
Hyungi Ahn
2fc7d4bc2c refactor: 완료 반려 필드 분리 및 데이터 구조 개선
- backend: completion_rejection_reason 등 전용 필드 추가
- 기존 management_comment에 섞여있던 완료 반려 내용 분리
- 현황판: 완료 반려 내역 별도 카드로 표시
- 관리함: 해결방안에 완료 반려 내용 제외하여 표시
- DB 마이그레이션: completion_rejected_at, completion_rejected_by_id, completion_rejection_reason 필드 추가

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-08 11:56:09 +09:00
Hyungi Ahn
d1ed53cbd7 Enum 값 및 필드명 수정, 한글 파일명 처리 개선
- Enum 값을 소문자로 변경 (material_missing, design_error, incoming_defect, complete)
- nonconformity_name -> description 필드명 변경
- completion_date -> actual_completion_date 필드명 변경
- Excel 다운로드 시 한글 파일명 URL 인코딩 추가

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-08 09:40:34 +09:00
Hyungi Ahn
58156da987 🐛 Fix: Project.name → project_name 속성명 수정 및 보고서 시스템 안정화
- backend/routers/reports.py: project.name을 project.project_name으로 수정 (3곳)
- 일일보고서 엑셀 내보내기 오류 해결
- 배포 가이드 업데이트 (DEPLOYMENT_GUIDE_20251028.md)
- 프로젝트 속성명 불일치로 인한 500 에러 해결

Fixes: 'Project' object has no attribute 'name' 오류
2025-10-28 16:36:56 +09:00
hyungi
5aad973028 fix: 사용자 관리 페이지 권한 저장 오류 해결
- PagePermissionResponse 스키마의 granted_at 필드 타입 수정
  * str → Optional[datetime]으로 변경
  * Pydantic ResponseValidationError 해결
- datetime import 추가
- 사용자 권한 설정 저장 기능 정상화
2025-10-27 08:01:55 +09:00
hyungi
c16fc53f3b feat: 프로젝트 관리 및 비밀번호 변경 기능 개선
주요 변경사항:
- 비활성화된 프로젝트 관리 기능 추가
  * 프로젝트 관리 페이지에 접을 수 있는 비활성 프로젝트 섹션 추가
  * 비활성화된 프로젝트 복구 기능 제공
  * 업로드 시에는 활성 프로젝트만 표시되도록 API 호출 분리

- 헤더 비밀번호 변경 기능 완전 구현
  * CommonHeader.js에 완전한 비밀번호 변경 모달 구현
  * ESC 키 지원, 실시간 유효성 검사, 토스트 메시지 추가
  * 중복 코드 제거 및 통일된 함수 호출 구조

- 수신함 수정 내용 표시 문제 해결
  * description 우선 표시로 최신 수정 내용 반영
  * 관리함에서 final_description/final_category 업데이트 로직 추가

- 현황판 날짜 그룹화 개선
  * 업로드일 기준에서 관리함 진입일(reviewed_at) 기준으로 변경
  * Invalid Date 오류 해결

- 프로젝트 관리 페이지 JavaScript 오류 수정
  * 중복 변수 선언 및 함수 참조 오류 해결
  * 페이지 초기화 로직 개선

기술적 개선:
- API 호출 최적화 (active_only 매개변수 명시적 전달)
- 프론트엔드 표시 우선순위 통일 (description || final_description)
- 백엔드 final_* 필드 업데이트 로직 추가
2025-10-26 15:28:23 +09:00
Hyungi Ahn
fd0579805c feat: 관리함 완료됨 탭 UI 개선 - 카드 형식으로 변경
 새로운 기능:
- 완료됨 탭을 테이블에서 카드 형식으로 완전 변경
- 완료 시 입력한 모든 정보를 포괄적으로 표시
- 3단 구조로 정보 체계화 (기본정보 | 관리정보 | 완료정보)

🎨 UI/UX 개선:
- 진행 중 탭과 일관된 카드 디자인 적용
- 녹색 테마로 완료 상태 시각화
- 반응형 3단 그리드 레이아웃
- HEIC 완료 사진 다운로드 지원

📋 포함된 완료 정보:
- 완료 사진 (HEIC 지원)
- 완료 코멘트
- 완료 신청일
- 해결방안, 담당부서/담당자
- 원인부서, 관리 코멘트
- 원본 업로드 사진

🔧 기술적 개선:
- getDepartmentText() 함수 추가 (부서 코드 한글 변환)
- 레거시 테이블 헤더 함수 정리
- 카드 기반 통합 렌더링 시스템
2025-10-26 14:23:28 +09:00
Hyungi Ahn
e7b51f80a0 feat: 완료 사진 HEIC 지원 및 관리함 수정 기능 개선
 새로운 기능:
- iPhone HEIC 사진 업로드 지원 (pillow-heif 라이브러리 추가)
- 완료 사진 업로드/교체 기능
- 완료 코멘트 수정 기능
- 통합 이슈 수정 모달 (진행 중/완료 대기 공통)

🔧 기술적 개선:
- HEIC 파일 자동 감지 및 원본 저장
- Base64 이미지 처리 로직 강화
- 상세한 디버깅 로그 추가
- 프론트엔드 파일 정보 로깅

📝 문서화:
- 배포 가이드 (DEPLOYMENT_GUIDE_20251026.md) 추가
- DB 변경사항 로그 업데이트
- 마이그레이션 스크립트 (020_add_management_completion_fields.sql)

🐛 버그 수정:
- loadManagementData -> initializeManagement 함수명 통일
- 모달 저장 후 즉시 닫히는 문제 해결
- 422 Unprocessable Entity 오류 해결
2025-10-26 14:18:30 +09:00
Hyungi Ahn
20965f8a42 fix: JavaScript 템플릿 리터럴 이스케이프 문제 수정
🐛 해결된 문제:
- SyntaxError: Invalid escape in identifier 오류 수정
- 백슬래시 이스케이프 문제 해결

🔧 수정 내용:
- '\n' → '\n' (개행 문자 올바른 이스케이프)
- `/api/management/${issueId}` →  (템플릿 리터럴 수정)
- `Bearer ${localStorage...` →  (템플릿 리터럴 수정)
- `저장 실패: ${error.detail...` →  (템플릿 리터럴 수정)

💡 원인:
- HTML 내 JavaScript에서 백슬래시가 이중 이스케이프되어 발생
- 템플릿 리터럴 백틱이 백슬래시로 이스케이프되어 문법 오류

Expected Result:
 JavaScript 문법 오류 해결
 모달에서 이슈 저장 기능 정상 작동
 템플릿 리터럴 올바른 사용
2025-10-26 13:13:37 +09:00
Hyungi Ahn
c680453227 feat: 관리함 통합 수정 모달 및 히스토리 추적 방안 구현
🔧 통합 수정 모달:
- 모든 진행 중 상태에서 '확인' 버튼으로 모달 열기
- 완료 대기 상태에서도 '수정' 버튼으로 동일 모달 사용
- 6열 와이드 모달로 모든 정보 한눈에 표시

📝 모달 구성:
- 왼쪽: 기본 정보 (프로젝트, 부적합명, 상세내용, 원인분류, 업로드 사진)
- 오른쪽: 관리 정보 (해결방안, 담당부서/자, 조치예상일) + 완료 신청 정보

🎯 버튼 시스템 개선:
- 일반 진행 중: 저장 | 확인 | 완료처리
- 완료 대기: 반려 | 수정 | 최종확인
- 모달에서 통합 수정 가능

✏️ 수정 기능:
- 부적합명, 상세내용 직접 수정
- 해결방안, 담당부서/자, 조치예상일 수정
- 모달에서 저장 시 실시간 반영

📋 히스토리 추적 방안 문서화:
- 단일 히스토리 테이블 vs 페이지별 테이블 비교
- 변경 이력 기록 서비스 클래스 설계
- 프론트엔드 히스토리 조회 모달 구현 방안
- 감사 추적, 데이터 복구, 보안 고려사항 포함

🔍 구현 우선순위:
- Phase 1: 기본 히스토리 테이블 + 관리함 이력
- Phase 2: 수신함 이력 + 히스토리 UI
- Phase 3: 데이터 복구 + 감사 보고서

💡 추가 아이디어:
- 변경 승인 워크플로우
- 자동 백업 시스템
- 변경 영향도 분석

Expected Result:
 모든 진행 중 상태에서 통합 수정 모달 사용
 완료 대기 상태 정보 포함 표시
 체계적인 히스토리 추적 방안 수립
 투명하고 추적 가능한 이슈 관리 기반 마련
2025-10-26 13:11:26 +09:00
Hyungi Ahn
f5136b5801 feat: 관리함 진행 중 페이지 통계에 완료 대기 카드 추가
📊 통계 카드 확장:
- 기존 3개 → 4개 카드로 확장
- 새로운 '완료 대기' 카드 추가

🟣 완료 대기 카드:
- 보라색 테마 (bg-purple-50)
- 모래시계 아이콘 (fas fa-hourglass-half)
- completion_requested_at 필드 기준 카운트

🔢 통계 계산 로직:
- 총 부적합: 전체 이슈 수
- 진행 중: review_status='in_progress' && !completion_requested_at
- 완료 대기: review_status='in_progress' && completion_requested_at
- 완료됨: review_status='completed'

🎨 UI 개선:
- 4열 그리드 레이아웃 (md:grid-cols-4)
- 일관된 색상 체계 유지
- 각 카드별 고유 아이콘과 색상

💡 사용자 경험:
- 완료 대기 상태를 한눈에 파악 가능
- 프로젝트 필터링 시 실시간 업데이트
- 관리자가 승인 대기 건수 즉시 확인

Expected Result:
 총 부적합 | 진행 중 | 완료 대기 | 완료됨
 완료 대기 건수 실시간 표시
 프로젝트별 필터링 지원
 시각적으로 구분되는 보라색 테마
2025-10-26 13:08:19 +09:00
Hyungi Ahn
63bdf4e689 feat: 관리함 진행 중 페이지 완료 대기 상태 관리 시스템 구현
🎯 상태별 UI 개선:
- 진행 중: 파란색 (일반 상태)
- 긴급: 주황색 (마감 3일 이내)
- 지연됨: 빨간색 (마감일 초과)
- 완료 대기: 보라색 (완료 신청 후)

🔒 완료 대기 상태 제한:
- 모든 입력 필드 비활성화 (readonly/disabled)
- 상세 내용 수정 버튼 → '완료 대기 중' 표시
- 저장 버튼 제거
- 회색 배경으로 비활성화 표시

📋 완료 대기 상태 정보 표시:
- 완료 신청 정보 섹션 추가
- 완료 사진, 코멘트, 신청일시 표시
- 보라색 테마로 구분

🔧 3단계 버튼 시스템:
1. 수정: 완료 대기 상태 해제 → 수정 모드 전환
2. 반려: 완료 신청 반려 + 사유 입력
3. 확인: 모든 정보 확인 모달 → 최종 완료 처리

📊 완료 확인 모달:
- 기본 정보 (프로젝트, 부적합명, 상세내용, 원인분류)
- 관리 정보 (해결방안, 담당부서/자, 조치예상일)
- 완료 신청 정보 (완료 사진, 코멘트, 신청일시)
- 업로드 사진 (원본 사진 1, 2)
- 최종 확인 버튼

🔄 API 엔드포인트 (구현 예정):
- POST /api/issues/{id}/reset-completion (수정 모드 전환)
- POST /api/issues/{id}/reject-completion (반려 처리)
- POST /api/issues/{id}/final-completion (최종 완료)

💡 사용자 경험:
- 상태별 색상 코딩으로 직관적 구분
- 완료 대기 시 수정 불가 명확 표시
- 모든 정보 한눈에 확인 가능한 모달
- 단계별 승인 프로세스

Expected Result:
 완료 대기 상태 시각적 구분
 수정 기능 적절한 제한
 체계적인 완료 승인 프로세스
 관리자 친화적 인터페이스
2025-10-26 13:06:13 +09:00
Hyungi Ahn
919bc82ca1 feat: 현황판 통계 카드 개선 및 상태별 분류
📊 통계 카드 재구성:
- 전체 진행 중: 모든 진행 중인 이슈 수
- 오늘 신규: 오늘 수신함에서 진행중으로 넘어온 이슈
- 완료 대기: 완료 신청된 이슈 (completion_requested_at 존재)
- 지연 중: 마감일이 지난 이슈

🎨 UI 개선:
- 완료 대기: 보라색 배경 + 모래시계 아이콘
- 지연 중: 빨간색 배경 + 시계 아이콘
- 각 카드별 애니메이션 점 효과 유지

🔧 로직 개선:
- reviewed_at 기준으로 오늘 신규 계산
- completion_requested_at 필드로 완료 대기 상태 판별
- expected_completion_date 기준으로 지연 상태 판별
- 실시간 통계 업데이트

💡 사용자 경험:
- 한눈에 파악 가능한 상태별 분류
- 색상 코딩으로 우선순위 구분
- 직관적인 아이콘 사용

Expected Result:
 전체 진행 중 | 오늘 신규 | 완료 대기 | 지연 중
 실시간 상태별 통계 표시
 시각적으로 구분되는 색상 체계
 관리자가 우선순위를 쉽게 파악
2025-10-26 13:02:24 +09:00
Hyungi Ahn
6e240f2296 feat: 완료 신청 API 엔드포인트 구현
🔧 백엔드 API 추가:
- POST /api/issues/{issue_id}/completion-request
- 완료 사진 Base64 업로드 및 저장
- 완료 코멘트 저장
- 완료 신청 시간 및 신청자 기록

📊 데이터 모델 확장:
- completion_requested_at: 완료 신청 시간
- completion_requested_by_id: 완료 신청자 ID
- completion_photo_path: 완료 사진 경로
- completion_comment: 완료 코멘트

🛡️ 검증 로직:
- 진행 중 상태만 완료 신청 가능
- 중복 완료 신청 방지
- 파일 업로드 오류 시 롤백 처리

🔄 프론트엔드 연동:
- refreshDashboard() 함수 추가
- 완료 신청 후 현황판 자동 새로고침
- 오류 처리 및 사용자 피드백

Expected Result:
 완료 신청 API 정상 작동
 완료 사진 업로드 및 저장
 완료 대기 상태로 변경
 404 오류 해결
2025-10-26 12:55:45 +09:00
Hyungi Ahn
b836b010b9 feat: 현황판 진행 상태 세분화 및 완료 신청 기능 구현
🎯 진행 상태 4단계 세분화:
- 진행 중 (파란색): 일반적인 진행 상태
- 긴급 (주황색): 마감 3일 이내
- 지연됨 (빨간색): 마감시간 초과
- 완료 대기 (보라색): 완료 신청 후 승인 대기

🔧 상태 판별 로직:
- 마감시간 기준 자동 상태 변경
- completion_requested_at 필드로 완료 대기 상태 판별
- 각 상태별 고유 색상, 아이콘, 텍스트

📱 완료 신청 기능:
- 마감시간 카드 우하단에 '완료신청' 버튼
- 완료 사진 업로드 (필수, 5MB 제한)
- 완료 코멘트 입력 (선택사항)
- 실시간 이미지 미리보기

🗄️ DB 구조 확장:
- completion_requested_at: 완료 신청 시간
- completion_requested_by_id: 신청자 ID
- completion_photo_path: 완료 사진 경로
- completion_comment: 완료 코멘트

🎨 UI/UX 개선:
- 상태별 그라데이션 배경색
- 애니메이션 아이콘 (톱니바퀴, 경고, 시계 등)
- 드래그 앤 드롭 사진 업로드
- 모달 기반 완료 신청 폼

💡 워크플로우:
1. 담당자가 작업 완료 후 '완료신청' 클릭
2. 완료 사진과 코멘트 업로드
3. 상태가 '완료 대기'로 변경
4. 관리자 승인 후 '완료됨'으로 최종 처리

🔐 보안 및 검증:
- 이미지 파일 타입 검증
- 파일 크기 제한 (5MB)
- Base64 인코딩으로 안전한 전송
- 사용자 인증 및 권한 확인

Expected Result:
 진행 상황을 한눈에 파악 가능한 색상 코딩
 마감 관리 자동화 (긴급/지연 상태)
 완료 신청 프로세스로 품질 관리 강화
 직관적인 UI로 사용자 경험 향상
2025-10-26 12:50:33 +09:00
Hyungi Ahn
b090ff8f29 fix: 관리함 상세 내용 편집 기능 JavaScript 오류 수정
🐛 해결된 오류들:

1️⃣ ReferenceError: allIssues 변수 참조 오류:
- allIssues → issues로 변수명 수정
- 관리함 페이지에서 사용하는 올바른 변수명 적용
- cancelDetailEdit(), saveDetailEdit() 함수에서 수정

2️⃣ TypeError: additionalInfoForm 요소 참조 오류:
- document.getElementById() 결과 null 체크 추가
- 요소가 존재할 때만 이벤트 리스너 등록
- 안전한 DOM 요소 접근으로 개선

🔧 코드 안정성 개선:
- DOM 요소 존재 여부 확인 후 접근
- 변수 스코프 일관성 유지
- 오류 방지를 위한 방어적 프로그래밍

💡 수정 사항:
- issues.find() 사용으로 올바른 데이터 접근
- if (additionalInfoForm) 조건부 이벤트 리스너 등록
- 중괄호 누락 문제 해결

Expected Result:
 상세 내용 편집 기능 정상 작동
 JavaScript 오류 없는 안정적인 실행
 DOM 요소 안전 접근
 일관된 변수 참조
2025-10-26 12:44:21 +09:00
Hyungi Ahn
7caf36c856 feat: 관리함 진행중 페이지 상세 내용 편집 기능 구현
📝 상세 내용 인라인 편집 시스템:

🎨 프론트엔드 UI 개선:
- 상세 내용 섹션에 '수정' 버튼 추가
- 읽기 모드 ↔ 편집 모드 토글 기능
- 편집 시 텍스트 영역으로 전환
- 취소/저장 버튼으로 편집 제어
- 실시간 UI 업데이트

🔧 백엔드 API 확장:
- PUT /api/management/{issue_id} 엔드포인트 추가
- ManagementUpdateRequest에 final_description 필드 추가
- 진행중 상태 이슈만 수정 가능하도록 제한
- 권한 검증 및 오류 처리

💡 핵심 기능:
- 부적합명은 유지하고 상세 내용만 수정
- 수신함에서 입력한 상세 부분을 관리함에서 보완 가능
- 원본 데이터와 수정 데이터 자동 결합
- 실시간 저장 및 화면 반영

🔐 보안 및 제한사항:
- 관리함 페이지 권한 필요
- 진행중 상태 이슈만 편집 가능
- 완료된 이슈는 편집 불가
- 사용자 인증 및 권한 검증

🎯 사용 시나리오:
1. 관리함 진행중 탭에서 '수정' 버튼 클릭
2. 텍스트 영역에서 상세 내용 편집
3. 저장 시 부적합명과 자동 결합
4. 실시간으로 화면에 반영

Expected Result:
 수신함 검토 후 관리함에서 상세 내용 보완 가능
 직관적인 인라인 편집 인터페이스
 데이터 일관성 유지 (부적합명 + 상세 내용)
 안전한 권한 기반 편집 제어
2025-10-26 12:36:35 +09:00
Hyungi Ahn
151d1cc875 feat: 현황판 정렬 기준 필터 제거 - UI 단순화
🗑️ 정렬 기준 필터 완전 제거:
- 정렬 기준 드롭다운 UI 삭제
- sortIssues() 함수 제거
- 관련 함수 호출 제거

💡 UI 단순화 효과:
- 필터 영역이 더 깔끔해짐
- 프로젝트 선택에 집중
- 사용자 인터페이스 복잡도 감소

🎯 기본 정렬 유지:
- 날짜별 그룹화는 그대로 유지
- 최신순 정렬 (newest first) 기본 적용
- 핵심 기능은 보존하면서 불필요한 옵션만 제거

Expected Result:
 더 간단하고 직관적인 필터 인터페이스
 프로젝트 선택 + 새로고침 버튼만 유지
 사용자 혼란 요소 제거
 핵심 기능에 집중
2025-10-26 12:34:08 +09:00
Hyungi Ahn
01fa39c75b feat: 현황판 카드 최종 UI 완성 - 시각적 임팩트 극대화
🖼️ 이미지 크기 최대 확장:
- 이미지 크기: 20x20 → 24x24 (20% 추가 증가)
- 아이콘 크기: text-lg → text-xl (더 선명한 표시)
- 카드 영역을 최대한 활용하여 시각적 정보 전달력 극대화

🎯 진행중 태그 프리미엄 디자인:
- 배경: 연한 파란색 → 진한 파란색 그라데이션 (blue-500 to blue-600)
- 텍스트: 그라데이션 → 흰색 볼드체 (더 강한 대비)
- 패딩: px-3 py-1 → px-4 py-1.5 (더 풍성한 느낌)
- 그림자: shadow-sm → shadow-md (입체감 강화)
- 아이콘: 정적 시계 → 회전하는 톱니바퀴 (fa-cog fa-spin)
- 상태 점: 파란색 → 흰색 (더 명확한 대비)

📅 발생날짜 독립 디자인:
- 회색 배경 캡슐로 분리하여 정보 구분 명확화
- 진행중 태그와 시각적으로 분리되어 가독성 향상

👥 일정 & 담당 순서 변경:
- 담당자 → 마감시간 순으로 재배치
- 사람 중심의 정보 우선 표시
- 패딩 증가 (p-2 → p-3)로 더 여유로운 느낌

🎨 전체적인 시각적 개선:
- 더 강한 색상 대비로 정보 구분 명확화
- 애니메이션 효과로 생동감 추가
- 공간 활용도 최적화로 정보 밀도 향상

Expected Result:
 이미지 가시성 44% 향상 (16→24px)
 진행중 상태의 강력한 시각적 임팩트
 담당자 우선 표시로 책임 소재 명확화
 전체적으로 더 프로페셔널한 느낌
2025-10-26 12:32:12 +09:00
Hyungi Ahn
cbfa4170c7 feat: 현황판 카드 레이아웃 미세 조정 - 공간 효율성 개선
🎨 헤더 레이아웃 최적화:
- 진행중 태그와 발생날짜를 한 줄로 배치
- '발생 날짜' → '발생:' 으로 간소화하여 공간 절약
- 우측 상단 공간 효율성 향상

📏 부적합명 크기 조정:
- 텍스트 크기: text-lg → text-base (18px → 16px)
- 패딩: py-2 → py-1.5 (8px → 6px)
- 전체적으로 더 컴팩트한 느낌

🖼️ 이미지 크기 확대:
- 이미지 크기: 16x16 → 20x20 (25% 증가)
- 간격: space-x-2 → space-x-3 (8px → 12px)
- 상태 표시 점: 2x2 → 3x3 (더 명확한 시각적 피드백)
- 아이콘 크기: text-sm → text-lg (더 선명한 표시)

💡 공간 배치 개선:
- 상단 영역 압축으로 하단 콘텐츠 영역 확보
- 이미지 가시성 향상으로 시각적 정보 전달력 증대
- 전체적인 정보 밀도 최적화

Expected Result:
 헤더 영역 공간 효율성 향상
 이미지 가시성 25% 증가
 진행중/발생날짜 한눈에 파악 가능
 전체적으로 더 균형잡힌 레이아웃
2025-10-26 11:58:14 +09:00
Hyungi Ahn
ae45b6f051 feat: 현황판 카드 레이아웃 대폭 개선 - 정보 배치 최적화
🎨 헤더 레이아웃 재구성:
- 원인 태그를 오른쪽으로 이동하여 균형감 향상
- 발생 날짜를 오른쪽 상단에 배치하여 시간 정보 강조
- 카테고리 한글 표시 (자재 누락, 설계 오류, 반입 불량, 검사 누락, 기타)

📊 콘텐츠 영역 2x2 그리드 재구성:
- 상세 내용 | 해결 방안 (상단 나란히 배치)
- 이미지 | 일정 & 담당 (하단 배치)

🎯 해결 방안 섹션 강화:
- 녹색 테마로 해결책 강조 (bg-green-50, border-green-200)
- 전구 아이콘으로 아이디어 시각화
- 상세 내용과 동등한 비중으로 배치

💼 일정 & 담당 UI 개선:
- 마감시간: 오렌지 테마 카드 (긴급성 표현)
- 담당자: 보라색 테마 카드 (책임감 표현)
- 각각 아이콘과 색상으로 구분
- 컴팩트한 카드 형태로 가독성 향상

🖼️ 이미지 섹션 최적화:
- 크기를 16x16으로 조정하여 공간 효율성 증대
- 상태 표시 점 크기 축소로 깔끔함 유지

🏷️ 카테고리 태그 개선:
- 영어 → 한글 표시로 직관성 향상
- 오른쪽 배치로 시각적 균형 개선

Expected Result:
 정보 우선순위에 따른 배치 최적화
 상세 내용과 해결 방안의 동등한 비중
 색상 코딩으로 정보 구분 명확화
 컴팩트하면서도 가독성 높은 레이아웃
2025-10-26 11:55:20 +09:00
Hyungi Ahn
81699a0270 feat: 부적합명과 상세 내용 UI 차별화로 가독성 향상
🎨 부적합명 강조 디자인:
- 파란색 배경 박스 (bg-blue-50)
- 왼쪽 파란색 보더 (border-l-4 border-blue-400)
- 진한 파란색 텍스트 (text-blue-900)
- 볼드 폰트로 중요도 강조

📝 상세 내용 보조 디자인:
- 회색 배경 (bg-gray-50)
- 얇은 회색 테두리 (border border-gray-200)
- 회색 이탤릭 텍스트 (text-gray-600 italic)
- 아이콘과 라벨로 구분 명확화

💡 시각적 계층 구조:
1️⃣ 부적합명: 눈에 띄는 파란색 강조 박스
2️⃣ 상세 내용: 차분한 회색 보조 정보

🔧 적용 범위:
- 현황판 카드 레이아웃
- 관리함 진행중 카드 레이아웃
- 일관된 디자인 언어 적용

Expected Result:
 부적합명이 즉시 눈에 들어옴
 상세 내용과 명확한 구분
 정보 우선순위가 시각적으로 명확
 전체적인 가독성 향상
2025-10-26 11:50:54 +09:00
Hyungi Ahn
6654cf62bd feat: 부적합명과 상세 내용 분리 시스템 구현
🎯 부적합 정보 구조화 개선:

📝 수신함 검토 모달 개선:
- '설명' → '부적합명' + '상세 내용'으로 분리
- 부적합명: 간단한 제목 (필수 입력)
- 상세 내용: 자세한 설명 (선택 입력)
- 저장 시 첫 번째 줄에 제목, 나머지는 상세 내용으로 결합

🏢 관리함 진행중 페이지 개선:
- No. 옆에 프로젝트명 표시 (작은 글씨)
- 부적합명을 카드 헤더에 큰 제목으로 표시
- '부적합 내용' → '상세 내용'으로 변경
- getIssueTitle(), getIssueDetail() 헬퍼 함수 추가

📊 현황판 페이지 개선:
- No. 옆에 프로젝트명과 카테고리 태그 표시
- 부적합명을 카드 헤더에 제목으로 표시
- '부적합 내용' → '상세 내용'으로 변경
- 동일한 헬퍼 함수로 일관성 유지

💡 핵심 개선사항:
- 정보 계층 구조 명확화 (제목 vs 상세)
- 시각적 가독성 향상 (헤더에 중요 정보 집중)
- 일관된 표시 방식 (수신함 → 관리함 → 현황판)
- 기존 데이터 호환성 유지

🔧 기술적 구현:
- 첫 번째 줄을 제목으로 추출
- 두 번째 줄부터를 상세 내용으로 분리
- 기존 description 필드 활용 (DB 변경 없음)
- 폴백 처리로 안정성 확보

Expected Result:
 부적합 정보의 체계적 관리
 한눈에 파악 가능한 제목 표시
 상세 내용과 요약 정보 분리
 전체 워크플로우 일관성 향상
2025-10-26 11:48:47 +09:00
Hyungi Ahn
61f5720af3 feat: 관리함 진행중 페이지에 추가 정보 입력 기능 구현
🎯 관리함 진행중 페이지 추가 정보 입력 시스템:

📊 DB 구조 확장:
- responsible_person_detail: 해당자 상세 정보 (VARCHAR 200)
- cause_detail: 원인 상세 정보 (TEXT)
- additional_info_updated_at: 추가 정보 입력 시간
- additional_info_updated_by_id: 추가 정보 입력자 ID
- 018_add_additional_info_fields.sql 마이그레이션 실행 완료

🔧 백엔드 API:
- /api/management/{issue_id}/additional-info (PUT): 추가 정보 업데이트
- /api/management/{issue_id}/additional-info (GET): 추가 정보 조회
- AdditionalInfoUpdateRequest 스키마 추가
- management.py 라우터 생성 및 등록

🎨 프론트엔드 UI:
- 진행중 탭 상단에 '추가 정보 입력' 버튼 추가
- 완료됨 탭에서는 버튼 자동 숨김
- 세련된 모달 디자인 (오렌지 테마)
- 원인부서 드롭다운 (생산/품질/구매/설계/영업)
- 해당자 상세 입력 필드
- 원인 상세 텍스트 영역

💡 핵심 특징:
- 모든 필드 선택사항 (NULL 허용)
- 기록용 정보로 외부 노출 없음
- 기존 데이터 자동 로드 및 수정 가능
- 입력 시간/입력자 자동 추적
- 진행중 상태 이슈만 대상

🔐 권한 관리:
- issues_management 페이지 권한 필요
- 진행중 상태 이슈만 수정 가능
- 사용자별 입력 이력 추적

🎯 사용 시나리오:
1. 관리함 > 진행중 탭 접근
2. '추가 정보 입력' 버튼 클릭
3. 원인부서, 해당자, 원인상세 입력
4. 저장 후 내부 기록으로 보관

Expected Result:
 관리함에서 상세한 원인 정보 기록 가능
 체계적인 이슈 추적 및 분석 기반 마련
 선택적 정보 입력으로 유연한 운영
 깔끔한 UI로 사용자 경험 향상
2025-10-26 11:39:30 +09:00
Hyungi Ahn
b45cfd96bc feat: 현황판 카드 레이아웃 대폭 개선 - 실용성과 미관 향상
🎨 현황판 카드 레이아웃 개선사항:

1️⃣ 헤더 레이아웃 재구성:
-  단순한 좌우 배치 →  좌측: No. + 원인분류 태그, 우측: 긴급 + 진행중 상태
- 원인분류를 No. 옆으로 이동하여 한눈에 파악 가능
- 진행중 상태를 우측 상단으로 이동하여 시각적 균형 개선

2️⃣ 이미지 미리보기 기능 추가:
-  아이콘만 표시 →  실제 이미지 미리보기
- 크기 확대: 16x16px → 20x20px (25% 증가)
- 실제 이미지 로드 실패시 fallback 아이콘 표시
- object-cover로 이미지 비율 유지하며 완전 채움

3️⃣ 레이아웃 최적화:
- 불필요한 '원인 분류' 섹션 삭제 (헤더로 이동)
- 하단 '진행 중' 상태 표시 제거 (헤더로 이동)
- 해결방안을 col-span-2로 확장하여 공간 효율성 증대
- 전체적으로 더 깔끔하고 정보 밀도 높은 레이아웃

4️⃣ 시각적 개선:
- 이미지 hover 효과: 그림자 + 확대 애니메이션
- 상태 표시 아이콘 추가 (시계 아이콘)
- 그라데이션과 그림자 효과로 현대적 느낌
- 정보 계층 구조 명확화

🎯 사용성 개선 효과:
- 이미지 내용을 바로 확인 가능 (클릭 전 미리보기)
- 중요 정보(No., 원인분류, 상태)가 상단에 집중
- 공간 활용도 증가로 더 많은 정보 표시
- 시각적 노이즈 감소로 가독성 향상

🔧 기술적 개선:
- img 태그 onerror 핸들링으로 안정성 확보
- CSS object-cover로 이미지 왜곡 방지
- 반응형 레이아웃 유지
- 접근성 개선 (alt 텍스트 추가)

Expected Result:
 실제 이미지 미리보기로 내용 파악 용이
 정보 배치 최적화로 스캔 효율성 증대
 깔끔하고 현대적인 카드 디자인
 공간 효율성과 정보 밀도 향상
2025-10-26 11:25:08 +09:00
Hyungi Ahn
e059d3feec feat: 관리함 페이지 No. 표시 UI 대폭 개선
🎨 관리함 UI 개선사항:

1️⃣ 진행중 카드 헤더:
-  단순한 파란색 배지 →  그라데이션 텍스트 + 애니메이션 점
- 현황판과 동일한 세련된 스타일 적용

2️⃣ 완료됨 테이블 No. 셀:
-  단순한 텍스트 →  녹색 그라데이션 + 상태 점
- 완료 상태를 시각적으로 강조

3️⃣ 테이블 헤더 개선:
- 진행중: 파란색 그라데이션 + 애니메이션 점
- 완료됨: 녹색 그라데이션 + 상태 점
- 각 탭의 성격에 맞는 색상 구분

4️⃣ 모달 제목 개선:
-  단순한 텍스트 →  그라데이션 No. + 상태 점
- '부적합 No.1 상세 정보' 형태로 시각적 강조

🎯 시각적 개선 효과:
- 프로젝트별 순번이 더욱 눈에 띄게 표시
- 진행중(파란색) vs 완료됨(녹색) 상태 구분
- 현황판과 일관된 디자인 언어
- 애니메이션 효과로 생동감 추가

Expected Result:
 관리함에서 No.1, No.2... 가 세련되게 표시
 상태별 색상 구분으로 직관적 인식
 전체적으로 통일된 브랜드 경험
2025-10-26 11:21:15 +09:00
Hyungi Ahn
54032f6685 feat: 프로젝트별 순번 자동 할당 시스템 구현
🎯 핵심 개선사항:
- 수신함에서 진행중/완료로 상태 변경시 project_sequence_no 자동 할당
- 프로젝트별로 1부터 시작하는 깔끔한 순번 체계

🔧 백엔드 수정:
- inbox.py: update_issue_status에 자동 할당 로직 추가
- generate_project_sequence_no() DB 함수 활용
- 진행중/완료 상태 변경시에만 실행

📁 DB 마이그레이션:
- 017_fix_project_sequence_no.sql 생성
- 기존 데이터 보정 (누락된 순번 0개 확인)
- migration_log 테이블 구조에 맞게 로그 기록

📋 문서화:
- DB_CHANGES_LOG.md 생성 및 업데이트
- 배포 가이드, 검증 방법, 주의사항 명시
- Docker 환경 기준 실행 방법 제공

 실행 완료 상태:
- 마이그레이션 성공 (2025-10-26 11:15:44+09:00)
- 백엔드 서비스 재시작 완료
- 모든 검증 항목 통과

Expected Result:
🎯 현황판에서 프로젝트별 No.1, No.2, No.3... 표시
🎯 6개월 후에도 각 프로젝트 내에서 작은 번호 유지
🎯 전체 통합 번호 대신 프로젝트별 깔끔한 순번 체계
2025-10-26 11:17:06 +09:00
Hyungi Ahn
2662b1138e feat: 현황판 카드 정보 표시 방식 개선
📋 Information Display Improvements:

1️⃣ 마감시간/담당자 섹션 개선:
-  '마감시간 | 담당부서 담당자' (복잡한 한 줄 표시)
-  마감시간: / 담당자: (깔끔한 분리 표시)
- 담당부서 제거 (불필요한 정보)
- 각각 별도 라인으로 구분하여 가독성 향상

2️⃣ 부적합 내용 섹션 개선:
-  단순한 텍스트 표시
-  제목과 본문 구분 표시
- 첫 번째 단어를 제목으로 강조 (font-semibold)
- 나머지 내용을 본문으로 표시 (작은 글씨)
- 회색 배경 + 파란색 좌측 테두리로 시각적 구분

🎨 Visual Enhancements:
- 마감시간/담당자: 라벨(text-xs) + 값(font-medium) 구조
- 부적합 내용: 배경 박스 + 좌측 강조 테두리
- 제목: font-semibold + 약간 큰 글씨
- 본문: 작은 글씨 + 줄간격 조정 (leading-relaxed)

📱 Better Readability:
- 정보 계층 구조 명확화
- 시각적 구분으로 스캔 가능성 향상
- 공간 효율성과 가독성 균형

Expected Result:
 더 깔끔한 정보 표시
 제목-본문 구분으로 내용 파악 용이
 마감시간/담당자 정보 명확화
 시각적 계층 구조 개선
2025-10-26 11:06:33 +09:00
Hyungi Ahn
f373a16086 feat: 현황판 카드 디자인을 세련된 모던 스타일로 대폭 개선
🎨 Modern Card Design:
-  촌스러운 작은 이미지 →  세련된 큰 이미지 (16x16px)
- 그라데이션 배경과 테두리로 고급스러운 느낌
- 이미지 있을 때 초록색 상태 점 표시

🖼️ Enhanced Image Display:
- 크기: 8x8px → 16x16px (2배 확대)
- 그라데이션 배경 (파란색 계열)
- hover 효과: 그림자 + 확대 애니메이션
- 상태 표시: 우상단 초록색 점으로 이미지 존재 표시

🎯 Visual Improvements:
- No. 텍스트: 그라데이션 텍스트 효과
- 긴급 배지: 🔥 이모지 + 그라데이션 배경
- 원인 분류: 태그 아이콘 + 노란-주황 그라데이션
- 해결방안: 회색 배경 박스로 구분
- 진행 중 상태: 파란색 그라데이션 배경 + 테두리

🚀 Advanced Hover Effects:
- 카드 전체: 위로 이동 + 살짝 확대
- 고급 그림자 효과 (3단계 레이어)
- 파란색 글로우 효과
- 부드러운 cubic-bezier 애니메이션

🎨 Color Scheme:
- 배경: 미묘한 그라데이션 (흰색 → 연한 회색)
- 이미지: 파란색 계열 그라데이션
- 원인분류: 노란-주황 그라데이션
- 상태: 파란-인디고 그라데이션

Expected Result:
 훨씬 세련되고 모던한 디자인
 이미지 가독성 대폭 향상
 고급스러운 hover 애니메이션
 직관적인 시각적 피드백
2025-10-26 11:03:20 +09:00
Hyungi Ahn
b94c6dff1a feat: 현황판 카드를 간결한 읽기 전용 2x3 그리드로 변경
🎯 Simplified Card Layout:
-  긴 편집 가능한 카드 →  간결한 읽기 전용 카드
- 2x3 그리드 형식으로 정보 압축
- 카드 높이 대폭 단축

📋 Grid Structure (2 columns x 3 rows):
Row 1: 부적합 내용 | 발생 날짜
Row 2: 이미지 | 마감시간 + 담당부서/담당자
Row 3: 원인 분류 | 해결 방안
Bottom: 상태 (진행 중)

🎨 Visual Improvements:
- 작은 이미지 아이콘 (8x8px)
- 원인 분류: 노란색 배지
- 마감시간과 담당 정보 결합
- 중앙 정렬된 상태 표시

📱 Compact Design:
- 패딩 축소 (p-6 → p-4)
- 텍스트 크기 최적화 (text-sm)
- 불필요한 여백 제거
- 한눈에 들어오는 정보 배치

🔧 Read-Only Features:
- 모든 필드 읽기 전용
- 편집 버튼 제거
- 사진 클릭 시 모달 확대만 가능
- 깔끔한 정보 표시

Expected Result:
 훨씬 간결한 카드 디자인
 한눈에 들어오는 정보 배치
 읽기 전용 모드
 모바일 친화적 크기
2025-10-26 10:58:16 +09:00
Hyungi Ahn
2a5455b221 feat: 현황판을 관리함 스타일로 완전 변경 (날짜 그룹화 + 편집 가능)
🔄 Complete Layout Change:
-  단순 카드 그리드 →  관리함 스타일 날짜별 그룹화
- 날짜별 접기/펼치기 기능 추가
- 업로드일 기준으로 그룹화 및 최신순 정렬

📋 Card Layout (Management Style):
- 헤더: No., 긴급 표시 + 저장/완료처리 버튼
- 업로드 사진: 맨 위로 이동 (2개 슬롯, 없으면 '사진 없음')
- 부적합 내용: 읽기 전용 텍스트
- 원인 분류: 노란색 배지로 표시
- 관리 정보: 편집 가능한 입력 필드들

🎯 Interactive Features:
- 해결방안: textarea (편집 가능)
- 담당부서: select dropdown (편집 가능)
- 담당자: text input (편집 가능)
- 조치 예상일: date input (편집 가능)
- 원인부서: 읽기 전용

📅 Date Grouping:
- 업로드일(report_date) 기준 그룹화
- 날짜 헤더: 클릭으로 접기/펼치기
- 각 그룹별 건수 표시
- '업로드일' 배지로 기준 명시

🎨 Visual Improvements:
- 이모지 아이콘으로 필드 구분 (💡🏢👤📅)
- 진행 중 상태 애니메이션 유지
- 부드러운 hover 효과
- 일관된 색상 체계

🔧 Functionality:
- toggleDateGroup() 함수로 그룹 접기/펼치기
- 사진 모달 확대 기능 유지
- 긴급 표시 (3일 이내 마감)
- 저장/완료처리 버튼 (UI만, 기능은 추후)

Expected Result:
 관리함과 완전히 동일한 UI/UX
 날짜별 체계적 정리
 편집 가능한 관리 인터페이스
 직관적인 정보 표시
2025-10-26 10:52:12 +09:00
Hyungi Ahn
b4fb461a32 feat: 현황판을 관리함 진행 중 카드 형식으로 완전 변경
🎨 UI Format Change:
-  가로 테이블 형식 (정보 압축, 가독성 저하)
-  관리함 진행 중 카드 형식 (직관적, 모바일 친화적)

📋 Card Layout Features:
- 헤더: No., 긴급 표시, 등록일
- 기본 정보: 프로젝트, 부적합 내용, 원인 분류
- 관리 정보: 해결방안, 담당부서, 담당자, 조치 예상일, 원인부서
- 업로드 사진: 클릭 시 모달 확대
- 진행 중 표시: 애니메이션 점 + 상태 표시

🎯 UX Improvements:
- 3컬럼 반응형 그리드 (데스크톱/태블릿/모바일)
- 카드 hover 효과: 위로 이동 + 그림자 + 좌측 파란 테두리
- 긴급 표시: 예상완료일 3일 이내 시 빨간 배지
- 부드러운 애니메이션: 0.3초 transition
- 사진 hover 효과: 확대 + 색상 변경

📱 Mobile Optimization:
- 1컬럼 레이아웃으로 모바일 최적화
- 터치 친화적 카드 인터페이스
- 스크롤 가능한 세로 배치
- 적절한 패딩과 간격

🎨 Visual Enhancements:
- 진행 중 상태 애니메이션 (pulse 효과)
- 일관된 색상 체계 (파란색 강조)
- 깔끔한 카드 디자인
- 정보 계층 구조 명확화

🔧 Code Structure:
- createIssueRow → createIssueCard 함수 변경
- 테이블 HTML → 카드 그리드 HTML
- 테이블 CSS → 카드 CSS 스타일
- 반응형 그리드 시스템 적용

Expected Result:
 관리함과 일관된 UI/UX
 대폭 향상된 가독성
 모바일 최적화
 직관적인 정보 표시
2025-10-26 10:47:42 +09:00
Hyungi Ahn
1907eddcf0 feat: 부적합 조회 페이지 UI/UX 대폭 개선
🔄 Major Changes:
-  복잡한 모바일 캘린더 →  간단한 시작/끝 날짜 입력
-  전체 부적합 조회 →  자신이 올린 내용만 조회

📅 Date Filter Improvements:
- 시작날짜/끝날짜 직접 입력 방식
- 빠른 선택 버튼: 오늘, 이번 주, 이번 달, 전체
- 날짜 기준: report_date (등록일) 기준으로 필터링
- 기본값: 이번 주 (일요일~오늘)

🔒 Privacy Enhancement:
- 자신이 올린 부적합 사항만 표시 (reporter_id 기준)
- 전체 항목은 현황판에서 확인 가능
- 개인 데이터 보호 강화

🎯 UX Improvements:
- 모바일 캘린더 CSS/JS 제거로 페이지 로딩 속도 향상
- 직관적인 날짜 입력 인터페이스
- 날짜 유효성 검증 (시작날짜 ≤ 끝날짜)
- 명확한 에러 메시지

📱 Mobile Friendly:
- 네이티브 date picker 사용
- 터치 친화적 인터페이스
- 반응형 레이아웃 유지

🔧 Code Cleanup:
- 모바일 캘린더 관련 코드 완전 제거
- 불필요한 CSS/JS 의존성 제거
- 함수 간소화 및 최적화

Expected Result:
 더 빠르고 직관적인 날짜 선택
 개인 데이터 보호
 모바일 최적화
 코드 복잡성 감소
2025-10-26 10:43:42 +09:00
Hyungi Ahn
d9cdaf622e feat: 현황판 UI를 가로 테이블 형식으로 완전 개선
🔄 Major UI Redesign:
-  세로 카드 레이아웃 (가독성 저하)
-  가로 테이블 레이아웃 (한눈에 정보 확인)

📊 Table Structure:
- 11개 컬럼: No., 프로젝트, 부적합내용, 카테고리, 해결방안, 담당부서, 담당자, 예상완료일, 원인부서, 사진, 등록일
- 가로 스크롤 지원으로 모든 정보 표시
- 각 컬럼별 최적화된 너비 설정

🎯 UX Improvements:
- 긴급 표시: 예상완료일 3일 이내 시 빨간 배지
- 텍스트 truncate: 긴 내용은 말줄임표로 처리 (hover시 전체 내용 표시)
- 사진 아이콘: 클릭 시 모달로 확대
- 행 hover 효과: 마우스 오버 시 배경색 변경

📱 Responsive Features:
- 가로 스크롤로 모바일에서도 모든 정보 확인 가능
- Sticky 헤더: 스크롤 시 헤더 고정
- 최소 너비 보장으로 정보 압축 방지

🎨 Visual Enhancements:
- 깔끔한 테이블 디자인
- 적절한 패딩과 간격
- 일관된 색상 체계
- 부드러운 hover 애니메이션

Expected Result:
 대폭 향상된 가독성
 한 화면에서 모든 정보 확인
 효율적인 공간 활용
 관리함과 일관된 UX
2025-10-26 10:36:58 +09:00
Hyungi Ahn
591f3307a9 feat: 현황판 UI를 관리함 진행 중 스타일로 개선
🎨 UI Redesign:
- 기존 프로젝트별 그룹 카드 → 개별 이슈 카드로 변경
- 관리함 진행 중 페이지와 동일한 카드 형식 적용
- 읽기 전용으로 구현 (수정 기능 없음)

📋 Card Content:
- 헤더: No., 긴급 표시, 등록일
- 기본 정보: 프로젝트, 부적합 내용, 카테고리
- 관리 정보: 해결방안, 담당부서, 담당자, 예상완료일, 원인부서
- 사진 정보: 업로드 사진 미리보기 (클릭 시 확대)

🔧 Features:
- 내용이 없는 부분은 '-'로 표시
- 사진 모달 확대 기능 (ESC 키 지원)
- 긴급도 표시 (예상완료일 3일 이내)
- 반응형 그리드 레이아웃 (1/2/3 컬럼)

🎯 Layout:
- 데스크톱: 3컬럼 그리드
- 태블릿: 2컬럼 그리드
- 모바일: 1컬럼 그리드

Expected Result:
 관리함과 일관된 UI/UX
 상세 정보 한눈에 확인 가능
 사진 확대 기능으로 편의성 향상
 읽기 전용으로 안전한 조회
2025-10-26 10:33:45 +09:00
Hyungi Ahn
f7fa20605c fix: 현황판 페이지 권한 시스템 초기화 오류 수정
🔧 Permission System Fix:
- loadPermissions() → setUser() + loadPagePermissions() 수정
- PagePermissionManager 중복 생성 제거 (전역 인스턴스 사용)
- issues_dashboard 페이지를 permissions.js에 추가 (defaultAccess: true)

🐛 Fixed Error:
-  TypeError: window.pagePermissionManager.loadPermissions is not a function
-  올바른 메서드 호출: setUser() + loadPagePermissions()

📋 Permission Structure:
- issues_dashboard: { title: '현황판', defaultAccess: true }
- 모든 사용자가 기본적으로 현황판 접근 가능

Expected Result:
 현황판 페이지 권한 시스템 정상 초기화
 페이지 접근 권한 확인 정상 동작
 공통 헤더 및 메뉴 정상 표시
2025-10-26 10:28:53 +09:00
Hyungi Ahn
0a45c5dcbb fix: 현황판 페이지 모든 JavaScript 파일 경로 완전 수정
🔧 Complete Script Path Fix:
- permissions.js: /static/js/core/permissions.js
- page-manager.js: /static/js/core/page-manager.js
- auth-manager.js: /static/js/core/auth-manager.js
- common-header.js: /static/js/components/common-header.js (이미 수정됨)

📁 Correct File Structure:
/static/js/
├── core/
│   ├── permissions.js
│   ├── page-manager.js
│   └── auth-manager.js
└── components/
    └── common-header.js

Expected Result:
 모든 404 오류 해결
 현황판 페이지 정상 로드
 권한 시스템 정상 동작
 공통 헤더 정상 표시
2025-10-26 10:25:58 +09:00
Hyungi Ahn
eab44811ba fix: 현황판 페이지 JavaScript 파일 경로 수정
🐛 Script Path Fix:
- common-header.js 경로 수정: /static/js/components/common-header.js
- page-manager.js 경로 수정: /static/js/components/page-manager.js
- 다른 페이지들과 동일한 경로 구조로 통일

🔧 Fixed Paths:
-  /static/js/common-header.js
-  /static/js/components/common-header.js
-  /static/js/page-manager.js
-  /static/js/components/page-manager.js

Expected Result:
 현황판 페이지 정상 로드
 404 오류 해결
 무한 로딩 문제 해결
 공통 헤더 및 권한 시스템 정상 동작
2025-10-26 10:24:08 +09:00
Hyungi Ahn
5da829d3c1 fix: 현황판을 목록관리 옆 별도 메인 메뉴로 이동
📍 Menu Structure Change:
- 현황판을 목록관리 서브메뉴에서 제거
- 목록관리 옆에 독립적인 메인 메뉴로 배치
- 보고서 앞에 위치하도록 순서 조정

🎯 New Menu Layout:
작업보고서 | 일일 공수 | 부적합 등록 | 부적합 조회 | 목록관리 | 현황판 | 보고서 | 프로젝트 관리 | 사용자 관리

🎨 Menu Properties:
- 아이콘: fas fa-chart-line
- 색상: 보라색 (text-purple-600)
- 배경: bg-purple-50 hover:bg-purple-100
- URL: /issues-dashboard.html

Expected Result:
 현황판이 목록관리 옆에 독립 메뉴로 표시
 서브메뉴 없는 직접 접근 가능한 메뉴
 목록관리와 보고서 사이에 위치
2025-10-26 10:22:56 +09:00
Hyungi Ahn
fbe106e013 fix: 현황판 메뉴 추가 및 기본 접근 권한 설정
🔧 Menu Integration:
- 공통 헤더의 목록관리 서브메뉴에 현황판 추가
- 아이콘: fas fa-chart-line (보라색)
- URL: /issues-dashboard.html

🔓 Permission Update:
- 현황판 기본 접근 권한을 True로 변경
- 모든 사용자가 기본적으로 현황판 접근 가능
- 사용자 관리에서 권한 설정 가능

📍 Navigation Path:
목록관리 → 현황판 (4번째 서브메뉴)
- 수신함
- 관리함
- 폐기함
- 현황판 ← NEW

Expected Result:
 헤더 메뉴에서 현황판 접근 가능
 모든 사용자 기본 접근 권한 보유
 사용자 관리에서 권한 설정 표시
2025-10-26 10:18:57 +09:00
Hyungi Ahn
190cdd8a02 feat: 부적합 현황판 페이지 신규 추가 - 프로젝트별 진행 현황 대시보드
📊 Dashboard Overview Page:
- 진행 중인 부적합들을 프로젝트별로 한눈에 볼 수 있는 현황판
- 실시간 통계 및 시각적 대시보드 구현
- 프로젝트 선택 및 다양한 정렬 옵션 제공

🎯 Key Features:
- 전체 통계 카드 (전체 진행 중, 오늘 신규, 지연 위험, 활성 프로젝트)
- 프로젝트별 그룹화된 이슈 카드 표시
- 긴급도 기반 우선순위 표시 (마감일 3일 이내)
- 프로젝트 필터링 및 정렬 기능

🎨 Visual Design:
- 그라데이션 통계 카드 with 호버 애니메이션
- 프로젝트 카드 with 좌측 테두리 호버 효과
- 이슈 미니 카드 with 긴급도 색상 구분
- 반응형 그리드 레이아웃

📋 Dashboard Components:
- 4개 통계 카드: 진행 중, 신규, 지연 위험, 활성 프로젝트
- 프로젝트 선택 드롭다운
- 정렬 옵션: 우선순위, 신고일순, 마감일순
- 프로젝트별 이슈 그룹화 표시

🔧 Technical Implementation:
- issues_dashboard 페이지 권한 추가
- 진행 중 상태(in_progress) 이슈만 필터링
- 긴급도 계산 로직 (마감일 기준)
- 프로젝트별 그룹화 및 통계 계산
- 공통 헤더 및 권한 시스템 적용

🚀 Interactive Features:
- 이슈 카드 클릭 → 관리함 상세보기 이동
- 실시간 새로고침 기능
- 프로젝트별 필터링
- 우선순위/날짜/마감일 기준 정렬

💡 User Experience:
- 로딩 애니메이션 및 페이드인 효과
- 빈 상태 메시지
- 긴급 이슈 시각적 강조
- 직관적인 네비게이션

Expected Result:
 진행 중인 부적합 현황을 한눈에 파악
 프로젝트별 작업 우선순위 확인
 지연 위험 이슈 조기 발견
 효율적인 부적합 관리 워크플로우
2025-10-26 10:16:34 +09:00
Hyungi Ahn
642685a7c7 feat: 진행 중 탭 카드 형식으로 개편 - 입력 편의성 대폭 향상
🎯 Card-Based Interface for In-Progress Issues:
- 테이블 형태에서 카드 형태로 완전 변경
- 입력하기 편한 사용자 친화적 인터페이스 구현
- 진행 중/완료됨 탭별 다른 레이아웃 적용

📋 Enhanced Card Layout:
- 2컬럼 그리드 레이아웃 (기본정보 vs 편집정보)
- 카드 헤더: No. + 프로젝트명 + 액션 버튼들
- 왼쪽: 읽기전용 정보 (내용, 원인, 업로드사진)
- 오른쪽: 편집가능 정보 (해결방안, 담당부서/담당자, 예상일)

🎨 Visual Improvements:
- 아이콘과 색상으로 필드 구분
- 호버 효과 (카드 상승, 입력 필드 확대)
- 상태 배지 및 진행 상황 표시
- 사진 썸네일 개선 (테두리, 호버 효과)

✏️ Input Field Enhancements:
- 해결방안: 3줄 textarea with placeholder
- 담당부서: 아이콘이 있는 select 드롭다운
- 담당자: placeholder가 있는 text input
- 조치예상일: date picker with 아이콘
- 모든 필드에 focus 효과 적용

🔄 Tab-Specific Rendering:
- 진행 중: 카드 형식 (space-y-4 컨테이너)
- 완료됨: 테이블 형식 (기존 유지)
- displayIssues()에서 currentTab에 따른 조건부 렌더링

🎯 User Experience Focus:
- 입력하기 편한 넓은 필드들
- 시각적으로 구분되는 정보 영역
- 직관적인 아이콘과 라벨링
- 부드러운 애니메이션 효과

🔧 Technical Implementation:
- createInProgressRow(): 카드 HTML 생성
- CSS 애니메이션 및 호버 효과
- 반응형 그리드 레이아웃 (lg:grid-cols-2)
- 아이콘 정렬 및 스타일링

Expected Result:
 진행 중 이슈 입력이 훨씬 편리해짐
 시각적으로 구분되는 정보 영역
 카드별 독립적인 작업 공간 제공
 완료됨은 기존 테이블 형태 유지
2025-10-26 10:11:36 +09:00
Hyungi Ahn
05cf494da8 debug: 관리함 저장 오류 디버깅 - 상세 로그 추가
🐛 Debug Enhancement:
- 프론트엔드: 요청/응답 상세 로그 추가
- 백엔드: 각 단계별 디버그 로그 추가
- 에러 메시지 개선 (JSON 파싱 포함)

🔍 Frontend Debugging:
- console.log로 전송 데이터 확인
- response.text()로 원본 에러 메시지 확인
- JSON 파싱 실패 시 원본 텍스트 표시

🔧 Backend Debugging:
- 요청 데이터 로그 출력
- 각 필드 처리 과정 로그
- 데이터베이스 커밋 과정 로그
- 상세한 에러 메시지 제공

Expected Result:
 422 오류의 정확한 원인 파악 가능
 프론트엔드에서 전송하는 데이터 확인
 백엔드에서 처리 과정 추적
 구체적인 에러 메시지로 빠른 문제 해결
2025-10-25 16:08:07 +09:00
Hyungi Ahn
11b03348f9 feat: 관리함 탭별 차별화 및 완료된 이슈 상세보기 모달 구현
🎯 Tab-Specific Interface Design:
- 진행 중 탭: 편집 가능한 테이블 형태 (11개 컬럼)
- 완료됨 탭: 입력 여부 표시 + 클릭으로 상세보기 (13개 컬럼)
- 탭별 다른 헤더 구조로 최적화된 정보 표시

 완료됨 탭 - 입력 여부 표시:
-  입력됨 (초록색 체크)
-  미입력 (회색 X)
- 사진:  2장 형태로 개수 표시
- 클릭 시 상세보기 모달 팝업

🔧 진행 중 탭 최적화:
- 완료 처리 버튼 한 줄로 표시 (white-space: nowrap)
- 불필요한 컬럼 제거 (완료확인일, 확인자, 원인부서, 의견, 조치결과, 완료사진)
- 핵심 편집 필드만 표시로 깔끔한 인터페이스

📋 완료된 이슈 상세보기 모달:
- 2컬럼 레이아웃 (읽기전용 vs 편집가능)
- 읽기전용: 프로젝트, 내용, 원인, 확인자, 업로드사진
- 편집가능: 해결방안, 담당부서, 담당자, 조치예상일, 원인부서, 의견, 완료사진
- 완료 사진 업로드 기능 포함

🎨 Enhanced UX Features:
- 완료됨 행 호버 효과 (hover:bg-blue-50)
- 모달 내 사진 클릭으로 확대보기
- 파일 업로드 → Base64 변환 → API 전송
- 저장 후 자동 목록 새로고침

🔄 Dynamic Header Generation:
- createTableHeader() 함수로 탭별 헤더 동적 생성
- 진행 중: 11개 컬럼 (편집 중심)
- 완료됨: 13개 컬럼 (검토 중심)

📊 Status Icon System:
- getStatusIcon(): 입력 여부를 시각적으로 표시
- getPhotoStatusIcon(): 사진 개수와 함께 상태 표시
- 일관된 / 아이콘으로 직관적 인식

🚀 Technical Implementation:
- openIssueDetailModal(): 완료된 이슈 상세보기
- createModalContent(): 동적 모달 내용 생성
- saveModalChanges(): 편집된 내용 저장
- fileToBase64(): 파일 업로드 처리

Expected Result:
 진행 중: 편집 중심의 간소화된 테이블
 완료됨: 입력 여부 확인 + 상세 편집 모달
 완료 처리 버튼 한 줄로 깔끔한 표시
 권한별 필드 구분으로 명확한 워크플로우
2025-10-25 16:01:10 +09:00
Hyungi Ahn
95be1f6c6e feat: 관리함 완전 개편 - 편집 가능한 테이블 및 완료 처리 기능
🎯 Major Management Page Overhaul:
- 테이블 최소 너비 2000px로 확장 (좌우 스크롤 최적화)
- 컬럼별 개별 너비 설정으로 내용에 맞는 크기 조정
- 편집 가능한 필드들 (해결방안, 담당부서, 담당자, 조치예상일, 원인부서, 의견)
- 진행 중 → 완료됨 처리 버튼 추가

📊 Enhanced Table Structure:
- 업로드 사진 2장 표시 (photo_path, photo_path2)
- 완료 사진 별도 컬럼으로 표시
- 작업 컬럼 추가 (저장 버튼)
- 완료 확인 컬럼 (진행 중: 완료 처리 버튼, 완료됨: 완료일)

✏️ Editable Fields Implementation:
- createEditableField() 함수로 동적 입력 필드 생성
- textarea, select, date, text 타입 지원
- 부서 선택 드롭다운 (생산, 품질, 구매, 설계, 영업)
- 실시간 편집 및 저장 기능

🔧 Backend API Enhancement:
- PUT /api/issues/{issue_id}/management 엔드포인트 추가
- ManagementUpdateRequest 스키마 활용
- 관리함 페이지 권한 검증
- 완료 사진 업로드 지원

📈 Smart Sequencing System:
- 수신함에서 넘어온 순서대로 No. 할당 (reviewed_at 기준)
- 프로젝트별 그룹화 후 순번 재할당
- 진행 중 A → 진행 중 B → 완료됨 C → 진행 중 D = 1, 2, 3, 4

🎨 UI/UX Improvements:
- 컬럼별 CSS 클래스로 일관된 스타일링
- 편집 가능한 필드 포커스 효과
- 사진 컨테이너로 2장 사진 깔끔한 배치
- 버튼 크기 최적화 (btn-sm 클래스)

🚀 Functional Features:
- completeIssue(): 진행 중 → 완료됨 처리
- saveIssueChanges(): 편집된 필드들 일괄 저장
- 실시간 목록 새로고침
- 확인 다이얼로그로 안전한 작업 처리

Expected Result:
 좌우 스크롤로 모든 정보 편리하게 확인
 관리함에서 필요한 정보 직접 입력/수정
 진행 중에서 완료 처리 원클릭
 수신함 순서 기반 체계적인 No. 관리
 업로드 사진 2장 + 완료 사진 명확한 구분
2025-10-25 15:48:53 +09:00