feat: 완료 사진 HEIC 지원 및 관리함 수정 기능 개선

 새로운 기능:
- iPhone HEIC 사진 업로드 지원 (pillow-heif 라이브러리 추가)
- 완료 사진 업로드/교체 기능
- 완료 코멘트 수정 기능
- 통합 이슈 수정 모달 (진행 중/완료 대기 공통)

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

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

🐛 버그 수정:
- loadManagementData -> initializeManagement 함수명 통일
- 모달 저장 후 즉시 닫히는 문제 해결
- 422 Unprocessable Entity 오류 해결
This commit is contained in:
Hyungi Ahn
2025-10-26 14:18:30 +09:00
parent 20965f8a42
commit e7b51f80a0
11 changed files with 798 additions and 53 deletions

View File

@@ -51,17 +51,35 @@ async def update_issue(
if not issue:
raise HTTPException(status_code=404, detail="부적합을 찾을 수 없습니다.")
# 진행 중 상태인지 확인
if issue.review_status != ReviewStatus.in_progress:
# 진행 중 또는 완료 대기 상태인지 확인
if issue.review_status not in [ReviewStatus.in_progress]:
raise HTTPException(status_code=400, detail="진행 중 상태의 부적합만 수정할 수 있습니다.")
# 업데이트할 데이터 처리
update_data = update_request.dict(exclude_unset=True)
for field, value in update_data.items():
if field == 'completion_photo':
# 완료 사진은 별도 처리 (필요시)
if field == 'completion_photo' and value:
# 완료 사진 Base64 처리
from services.file_service import save_base64_image
try:
print(f"🔍 완료 사진 처리 시작 - 데이터 길이: {len(value)}")
print(f"🔍 Base64 데이터 시작 부분: {value[:100]}...")
photo_path = save_base64_image(value, "completion_")
if photo_path:
issue.completion_photo_path = photo_path
print(f"✅ 완료 사진 저장 성공: {photo_path}")
else:
print("❌ 완료 사진 저장 실패: photo_path가 None")
except Exception as e:
print(f"❌ 완료 사진 저장 실패: {e}")
import traceback
traceback.print_exc()
continue
elif field == 'expected_completion_date' and value:
# 날짜 필드 처리
if not value.endswith('T00:00:00'):
value = value + 'T00:00:00'
setattr(issue, field, value)
db.commit()