manut
(Manuel Tancoigne)
11월 28, 2025, 1:23오후
1
안녕하세요, 저는 Discourse 2025.11.0 버전을 사용 중이며 캘린더 페이지네이션에 문제가 있는 것 같습니다:
두 개의 이벤트를 생성했습니다:
2025-08-27T14:00:00.000+02:00부터 2025-08-27T15:00:00.000+02:00까지
2025-11-29T12:00:00.000+01:00부터 2025-11-29T13:00:00.000+01:00까지
캘린더에서 현재 월(/upcoming-events/month/2025/11/1)을 표시할 때, API 호출이 올바른 before/after 날짜와 함께 이루어지는 것을 볼 수 있습니다:
/discourse-post-event/events?after=2025-10-27T00%3A00%3A00%2B01%3A00&before=2025-12-08T00%3A00%3A00%2B01%3A00&attending_user=.
그러나 첫 번째 이벤트가 범위 밖에 있음에도 불구하고 두 이벤트가 모두 반환됩니다.
그리고 2025년 8월을 표시하도록 월을 변경하면 이벤트가 반환되지 않습니다.
2개의 좋아요
로컬에서 직접 테스트해 봤는데 재현이 안 돼요
구체적인 단계를 자세히 알려줄 수 있을까요?
1개의 좋아요
manut
(Manuel Tancoigne)
12월 4, 2025, 10:36오전
3
안녕하세요 @zogstrip 님!
개발 환경(데이터 및 tmp)을 모두 정리한 뒤 다시 진행해 보았지만, 제 환경에서는 재현되지 않았습니다. 정말 이상하네요. 이전에 잘못된 데이터를 가지고 있었기 때문일 수도 있습니다.
문제를 보고해 드려서 죄송합니다.
다만, 재현 단계를 말씀드리자면, 단순히 “새 주제” 양식을 통해 날짜가 다른 두 개의 이벤트를 생성했을 뿐입니다.
manut
(Manuel Tancoigne)
12월 4, 2025, 11:02오전
7
음, 단계들을 파악했어요!
오늘 날짜로 이벤트를 생성합니다 (날짜는 중요하지 않을 것 같아요)
게시물을 편집하여 날짜를 지난 달로 변경합니다 (이벤트 폼이나 이벤트 자체의 “이 이벤트 편집” 버튼이 아니라, 게시물 편집기에서요)
다시 한 번 실행합니다 (이벤트가 이제 10월에 있어야 합니다)
10월로 이동: API 응답에 이벤트가 없습니다
12월로 돌아가기: 이벤트는 여기에 있습니다 (하지만 날짜가 일치하지 않아 표시되지 않음)
수정: 이벤트 상세 페이지의 “이벤트 편집” 버튼으로 날짜를 9월로 변경했는데, 이제 11월 API 호출 시 반환됩니다
아직도 재현이 되지 않는 것 같습니다. 마크다운에서 월을 변경하기 위해 게시물을 수정할 때마다 “예정된 이벤트” 캘린더에 이벤트가 올바르게 표시됩니다.
manut
(Manuel Tancoigne)
12월 4, 2025, 4:54오후
9
도움이 될지는 모르겠지만, 단계들을 녹화해 두었습니다 .
게시글에 영상을 첨부할 수 없으니, 링크는 2026년 2월 1일까지 유효합니다.
1개의 좋아요
manut
(Manuel Tancoigne)
12월 4, 2025, 4:59오후
10
내일 RSpec 테스트로 이 문제를 재현할 수 있는지 확인해 보겠습니다.
비디오 감사합니다. 덕분에 마침내 로컬에서 재현할 수 있었습니다
조금 미묘한 부분이었는데, 수정 사항이 여기에 있습니다.
main ← fix-event-not-found-after-being-moved-to-earlier-date
merged 04:41PM - 08 Dec 25 UTC
Events edited to earlier dates weren't being found correctly because
the orderi… ng logic for determining the "current" event date was
duplicated and inconsistent between the Event model and EventFinder.
Centralizes the ordering logic in EventDate.current_ordering_sql which
prioritizes pending dates (finished_at IS NULL) first, then orders by
starts_at DESC for pending dates or updated_at DESC for finished dates.
- Added `current_first` scope to EventDate using the shared ordering SQL
- Refactored `current_event_date` in Event to use the scope (with
in-memory fallback when association is loaded to avoid N+1 queries)
- Updated EventFinder to reference the same ordering SQL
- Updated database index to support the new ordering efficiently
Bug report - https://meta.discourse.org/t/date-range-seems-wrong/389891
3개의 좋아요