부모 티켓
2개 티켓

백로그

0
티켓 없음

할 일

0
티켓 없음

진행 중

0
티켓 없음

리뷰

0
티켓 없음

완료 (15일)

2
높음 27518a53
서브 티켓 QT today 페이지 통독/QT 탭 분리

탭 UI 구현 (Stimulus + 뷰 재구성)

## 작업 내용 1. `app/javascript/controllers/tab_controller.js` Stimulus 컨트롤러 신규 생성 - static targets = ["tab", "panel"] - static values = { defaultTab: { type: String, default: "tongtok" } } - switch(event) → 탭 active 스타일 토글 + 패널 show/hide - URL hash로 탭 상태 유지 (#tongtok, #qt) 2. `app/views/qt/today.html.erb` 전면 재구성 - 상단 카드 (테마 정보 + 진행률) 유지 - 그 아래에 탭 네비게이션 추가: [통독] [QT] 두 개 탭 - **통독 탭 패널**: - bible_passage 제목 카드 (성경 아이콘 + bible_passage 텍스트) - 유튜브 플레이어 (bible_passage) - 성경 본문 (bible-passage Stimulus 컨트롤러, passage=bible_passage) - 통독 완료 체크 영역: turbo-frame id="reading_check" (reading-dev가 구현할 파셜 자리) - **QT 탭 패널**: - reading_passage 제목 카드 (reading_passage 텍스트, 없으면 bible_passage) - 유튜브 플레이어 (reading_passage, 없으면 생략) - 성경 본문 (bible-passage Stimulus 컨트롤러, passage=reading_passage 또는 bible_passage) - 묵상 내용 카드 (content) - 묵상 질문 카드 (questions) - 묵상 기록 폼 (turbo-frame meditation_form) - 일차 네비게이션 (이전/다음) 탭 외부 하단 유지 3. 탭 디자인: Tailwind CSS - 탭 바: flex, border-b, gap-0 - 활성 탭: text-brand-primary, border-b-2 border-brand-primary, font-semibold - 비활성 탭: text-text-muted, hover:text-text-secondary - 패널 전환: hidden 클래스 토글 ## 기존 코드 참고 - 현재 today.html.erb: 통독과 QT가 혼재 (bible_passage가 통독, reading_passage가 QT) - 디자인 시스템: shared/card, shared/progress, shared/button, shared/alert, shared/youtube_player 파셜 사용 ## 완료 기준 - tab_controller.js 생성 - today.html.erb 탭 구조로 재구성 - 기존 테스트 전체 통과 (rails test) - reading_check turbo-frame 자리는 빈 프레임으로 둘 것 (reading-dev가 채움)

T
tab-dev
8 days
높음 23994de5
서브 티켓 QT today 페이지 통독/QT 탭 분리

통독 완료 체크 백엔드 + 파셜

## 작업 내용 1. `app/controllers/qt_controller.rb` 수정 - today/day 액션에서 BibleReadingLog 데이터 로드 추가 - @reading_completed = 현재 사용자가 오늘 해당 bible_passage의 장을 이미 읽었는지 확인 - bible_passage 파싱하여 book_name + chapter 추출 필요 (예: "창세기 1-4장" → 창세기 1,2,3,4장) 2. `app/views/qt/_reading_check.html.erb` 신규 파셜 생성 - turbo-frame id="reading_check" 래핑 - 통독 범위의 각 장에 대해 체크박스 표시 - 이미 읽은 장은 체크된 상태 - 체크 시 BibleReadingsController#create 호출 (Turbo Frame) - 해제 시 BibleReadingsController#destroy 호출 - 전체 완료 시 축하 메시지 or 배지 - 디자인: shared/card 파셜 사용, 체크박스 리스트 3. `app/views/qt/today.html.erb`는 건드리지 말 것! - tab-dev가 today.html.erb를 수정하고, turbo-frame id="reading_check"를 배치할 예정 - 이 에이전트는 _reading_check.html.erb 파셜만 생성 4. bible_passage 파싱 헬퍼 (QtController private 메서드 또는 모델 메서드) - "창세기 1-4장" → [{book_name: "창세기", chapter: 1}, ..., {chapter: 4}] - "시편 23편" → [{book_name: "시편", chapter: 23}] - 기존 BibleData 클래스 활용 가능 (tongtok에서 사용 중) 5. 기존 BibleReadingsController는 수정하지 않음 (이미 create/destroy/batch_create 있음) ## 기존 코드 참고 - BibleReadingsController: create(book_name, chapter), destroy(id), batch_create(chapters JSON) - BibleReadingLog: user_id, book_name, chapter, read_date - BibleData: 66권 성경 데이터 (app/models/bible_data.rb 또는 관련 파일 확인) - tongtok 뷰: 기존 통독 체크 UI 참고 (app/views/tongtok/) ## 완료 기준 - QtController에 reading log 데이터 로드 - _reading_check.html.erb 파셜 생성 - 통독 장별 체크/해제 동작 - 기존 테스트 전체 통과 (rails test)

R
reading-dev
8 days