Event Duplicator: 달력 이벤트/주제를 새 시간대로 복제하기

:information_source: 요약 승인된 사용자가 캘린더 이벤트/토픽(Discourse Events 을 통해 생성된 것)을 새로운 시간대로 복제할 수 있도록 합니다. 단일 토픽 또는 태그가 지정된 전체 시리즈(예: grand-prix 태그가 지정된 모든 토픽)에 적용되며, 커밋하기 전에 제안된 날짜를 편집할 수 있는 검토 단계를 제공합니다.
:hammer_and_wrench: 리포지토리 링크 GitHub - louking/discourse-event-duplicator: discourse plugin to duplicate events · GitHub
:open_book: 설치 가이드 Discourse에 플러그인 설치 방법

요약

이 플러그인은 매년 날짜가 조금씩 이동하지만 대체로 동일한 이벤트가 반복되는 러닝 클럽 커뮤니티를 위해 제작되었습니다. 매 시즌마다 수동으로 각 이벤트의 토픽을 다시 만드는 것은 [event ...] 블록을 복제하고, 제목을 수정하고, 이미 다시 만든 것인지 확인하는 것을 의미했으며, 이는 지루하고 오류가 발생하기 쉬웠습니다. Event Duplicator는 이를 자동화합니다: 소스 이벤트 또는 태그가 지정된 전체 시리즈를 선택하고, 제안된 새 날짜를 받아 검토하거나 편집한 후 확인하면 됩니다.

사용자 지향 전체 가이드라인(누가 사용할 수 있는지, 시리즈 복제와 단일 토픽 복제의 차이, 검토 단계 작동 방식)은 docs/USAGE.md를 참고하세요.

기능

  • 시리즈 복제: 카테고리와 하나 이상의 태그(예: grand-prix, signature-race; 매치는 OR로 처리되며 중복이 제거되므로 여러 매칭 태그가 있는 토픽은 한 번만 표시됨)를 선택하고, 원본 날짜 범위로 제한할 수 있으며, 확인하기 전에 제안된 다음 발생 날짜를 검토합니다.
  • 단일 이벤트 복제: 해당 토픽의 관리자 메뉴(렌치 아이콘)에서 한 번에 하나의 토픽에 대해 동일한 검토 및 확인 흐름을 제공합니다.
  • 편집 가능한 검토 단계: 각 행은 원본 시작 날짜 옆에 편집할 수 있는 제안된 새 날짜(날 단위)와 편집 가능한 제목을 표시합니다. 종료 날짜는 항상 소스 이벤트 자체의 지속 시간에서 자동으로 유도되므로, 편집된 시작 날짜와 동기화가 어긋나지 않습니다.
  • 두 가지 플러가블한 날짜 이동 전략: 실행별로 선택 가능하며 기본값을 구성할 수 있습니다:
    • 동일한 캘린더 날짜: 구성된 월 수만큼 앞으로 이동합니다.
    • 월의 N번째 요일: 이동이 다른 월에 해당하더라도 예를 들어 "그 달의 3번째 토요일"과 같은 패턴을 유지합니다.
  • 구성 가능한 이동량: 월 단위로(기본값은 12개월, 즉 1년) 임의의 월 수만큼 앞으로 이동할 수 있으며, 연 단위만 가능합니다. 월별, 분기별 또는 기타 반복 주기에도 유용합니다. 실행별로 재정의할 수 있으며, 새로운 설정(아래 참조)을 통해 사이트 전체 기본값을 지정할 수 있습니다.
  • “날짜 미정” 플래깅: 실제 날짜가 아직 확정되지 않은 이벤트의 경우 행에 플래그를 지정합니다. 구성 가능한 주석(기본값 (date TBD))이 토픽 제목과 이벤트 이름 모두에 추가됩니다.
  • 복제 추적: 동일한 이벤트를 두 번 복제하는 것을 방지합니다(토픽에 여러 시리즈 태그가 있을 수 있으므로 관련됨). 이미 복제된 토픽은 검토에서 기본적으로 플래그가 지정되고 선택 해제되며, 강제로 실행하려면 명시적으로 다시 선택하는 오버라이드가 있습니다. 복제된 토픽을 삭제하면 자동으로 소스가 재복제 가능 상태가 되며, 삭제 취소 시 다시 잠금 처리됩니다.
  • 복제 후 피드백: 성공적으로 복제된 행은 검토 테이블에서 바로 새 토픽으로의 링크로 변환됩니다. 진정한 실패는 전체 배치 중단을 대신하여 행별로 보고됩니다.

요구 사항

  • discourse-calendar가 설치되고 활성화되어 있어야 합니다. 이 플러그인은 별도의 날짜 저장소를 발명하는 대신 discourse-calendar 자체의 [event ...] 게시물 마크업과 DiscoursePostEvent::Event 모델을 통해 이벤트를 복제합니다.
  • Discourse 2026.7.0에서 테스트되었습니다. 이전 릴리스에서는 검증되지 않았습니다.

구성

모든 설정은 관리자 → 설정 → 플러그인 아래에 있으며, event_duplicator를 검색하세요:

설정 기본값 설명
event_duplicator_enabled off 플러그인을 활성화합니다.
event_duplicator_allowed_groups staff 이벤트 복제가 허용되는 그룹(일반 카테고리별 토픽 생성 권한 외에). 참고: 빈 목록은 아무도 허용되지 않음을 의미하며, 모두 허용을 의미하지 않습니다. 이 기능을 완전히 개방하려면 “everyone” 그룹을 추가하세요.
event_duplicator_default_date_strategy Same calendar date 기본 날짜 이동 규칙; 실행별로 재정의할 수 있습니다.
event_duplicator_default_shift_months 12 기본 이동량(월 단위); 실행별로 재정의할 수 있습니다.
event_duplicator_tbd_annotation (date TBD) 검토에서 TBD로 플래그가 지정되었을 때 복제된 토픽의 제목/이벤트 이름에 추가되는 텍스트. 주석 기능을 완전히 비활성화하려면 비워 두세요.

권한은 세 가지 확인의 AND입니다: 일반 Discourse 카테고리 권한, event_duplicator_allowed_groups 멤버십, 그리고 discourse-calendar 자체의 [event] 게시물 생성 권한.

알려진 제한 사항

  • 검토 단계의 날짜 편집은 날 단위만 지원됩니다(시간대 편집 불가). 이는 의도된 범위 결정입니다: 대상 사용 사례는 시간대가 아닌 반복되는 레이스/이벤트 날짜입니다.

소스 / 이슈

2026-08-01 업데이트: v1.1.0에서 구성 가능한 월 기반 이동이 추가되었습니다, 아래를 참고하세요

4개의 좋아요

좋은 작업입니다! 다른 사람들과 공유해 주셔서 감사합니다. #calendar-and-events 기능의 공백을 효과적으로 메워 주었습니다.

다만, 월별 복제를 위한 것으로 보이지 않으므로 "Yearly Event Duplicator"로 이름 붙이는 것이 더 나을 수도 있다고 생각합니다.

월별 사용 사례를 포함하도록 확장할 의향이 있으신가요?

저희는 매월, 격월, 분기별로 열리는 이벤트가 많이 있는데, 이들은 매월 X번째 월요일(등)에 맞춰져 있습니다. 이러한 이벤트에는 상당한 양의 문서/업로드 파일이 첨부되어 있어, 핵심 반복 이벤트 메커니즘에는 적합하지 않습니다.

현재는 상당한 수작업이 필요하며, 실수도 빈번하게 발생합니다!!

더 짧은 시간 주기를 고려할 때, 이 기능이 작동하려면 현재 이벤트가 완료된 시점(태그가 지정된 경우)에 주제 소유자(및 관리자)에게 알림(예: 개인 메시지)을 보내는某种의 프롬프트가 필요할 것입니다.

1개의 좋아요

가능합니다. 하나의 가능성은 중복 이벤트 뷰에 “이동(개월)” 컨트롤을 추가하고, 그 기본값을 새로운 설정으로 하는 것입니다. 이것이 당신이 원하는 내용과 일치하나요?

이 사항을 추적하기 위해 add n months shift support · Issue #19 · louking/discourse-event-duplicator · GitHub 를 추가했습니다. 다른 작업들이 많아 우선순위가 어떻게 될지는 확실하지 않습니다. 하지만 겉으로 보기에는 꽤 빠른 수정이 될 것 같습니다.

솔직히 이 부분은 제가 그렇게 관심이 없습니다. 이벤트가 시리즈(즉, 특정 방식으로 태그된 것)였다면 플러그인은 태그된 이벤트 중 마지막 것이 무엇이었는지 기억하고, 시리즈 끝에 새 이벤트가 태그되었는지 알아차려야 하는 등 복잡한 로직이 필요합니다. 이 알림에 대한 필요성은 다양할 것으로 예상되며, 모든 가능성을 커버할 수 있다고 생각하지 않습니다.

1개의 좋아요

좋아요 - 감사합니다.

이해합니다! 조금 더 생각해보니, 간단한 북마크로 쉽게 구현할 수 있을 것 같습니다.

@nathank Shift (months) 기능이 v1.1.0에 추가되었습니다.

리뷰 페이지에는 이제 Date 규칙 드롭다운 옆에 Shift (months) 필드가 있습니다. 기본값은 12이며 이전과 동일한 동작을 유지하지만, 실행별로 값을 재정의할 수 있습니다. 사이트 전체의 기본값을 다르게 설정하고 싶다면 event_duplicator_default_shift_months 사이트 설정도 새로 추가되었습니다.

두 가지 날짜 규칙 모두와 함께 작동합니다. 특정 요일을 지정해야 하는 월별 또는 분기별 시리즈는 여전히 “같은 요일” 처리를 적용받지만, 고정된 1년이 아니라 사용자가 설정한 월 간격에 따라 적용됩니다.

v1.1.0으로 업데이트하여 사용하세요 (app.yml에서 특정 태그를 고정하고 있다면 재빌드가 필요합니다). 구현 세부 사항은 Issue #19에서 확인할 수 있습니다.

OP(원문 게시글)도 함께 업데이트하는 것이 좋다고 생각합니다. 내일까지 처리할 예정입니다.

1개의 좋아요