Discourse에서 작업 의존성을 관리하는 플러그인입니다.
기본적으로 카테고리를 프로젝트로, 해당 카테고리 내의 토픽을 프로젝트의 작업으로 전환합니다.
작업 간의 의존성을 정의할 수 있습니다. 즉, 어떤 작업이 완료되어야 다른 작업이 시작될 수 있는지를 지정하는 것입니다. 또한 시작 날짜, 종료 날짜 및 작업 소요 시간도 정의할 수 있습니다. 한 곳에서 날짜를 변경하면 종속 작업의 시작 및 종료 날짜가 자동으로 설정됩니다.
카테고리 헤더에 가장 이른 시작 날짜와 가장 늦은 종료 날짜도 표시합니다.
전체 프로젝트 소요 시간도 계산됩니다. 작업에 잠금을 걸어 시작 및 종료 날짜의 자동 계산이 해당 작업에 영향을 미치지 않도록 할 수도 있습니다.
사용법을 설명하는 YouTube 영상:
TODO:
모바일 / 좁은 화면에서 메시지 표시
위상적 순서로 작업을 표시하는 토픽 목록 보기 추가 (+ 종속 작업 약간 들여쓰기)
메시지 버스를 사용하여 변경 사항을 다른 사용자에게 알림
프로젝트 작업에 대한 수정 이력(revision) 기능 추가
하위 프로젝트 지원 추가 (하위 프로젝트는 하나의 프로젝트에서 하나의 작업이 되면서 동시에 자체 카테고리가 됨)
사실 이 문제는 그리 간단하지 않습니다. 한쪽으로는 프론트엔드에서 많은 경우를 처리해야 합니다. 이 플러그인의 모든 경우를 아직 다 처리하지 못했습니다. 보시다시피 수정 이력(revision) 기능은 아직 할 일 목록에 남아 있습니다. 또한 데이터를 저장하는 문제도 있고, 플러그인 스토어를 사용하는 것이 현명한 선택인지도 의문입니다. 이 주제는 이 스레드에서 다루어지고 있습니다:
저는 실제로 테이블을 사용하면 큰 이점이 있는지 알아보기 위해 이 플러그인을 작성하기도 했습니다. 이 전체적인 의존성 로직과 백엔드에서의 오류 검사, 그리고 ‘dry’ 실행인 경우 롤백하는 기능은 플러그인 스토어만으로는 불가능했을 것입니다. 저는 이것이 트레이드오프라고 생각합니다. 일부 사용 사례에서는 플러그인 스토어가 충분할 수 있습니다. 하지만 더 복잡한 작업을 하려면 ‘실제’ 테이블을 피할 수 없다고 생각합니다. 이 부분을 좀 더 탐구한 후 블로그 포스트를 작성할 계획입니다. 더 추상적인 관점에서 보면, 우리가 하려는 일은 다음과 같습니다: 우리는 Discourse를 사용하여 구조화된 데이터를 집단적으로 편집하기를 원합니다. 현재 게시물이나 토픽에 사용자 정의 필드를 '단순히 추가’하는 것은 정말 어렵지만, 더 쉽게 만들 수 있다고 생각합니다. 제가 하고 싶은 또 다른 일은 컴포저 에디터를 완전히 제거하고, 토픽을 데이터 입력에만 사용하는 것입니다. 어떤 결과가 나올지 모르지만, 여기 브레인스토밍이 있습니다: Why not create an OPEN SOURCE platform dedicated to open source drug discovery ? · Issue #581 · OpenSourceMalaria/OSM_To_Do_List · GitHub
이 두 가지 유형의 플러그인을 이 GitHub 이슈에서 설명하듯 결합할 수도 있습니다. 즉, 일반적인 d-에디터가 없는 토픽에서 전문적인 데이터 입력 에디터를 사용하여 데이터를 입력하고, 여전히 d-에디터가 있는 다른 토픽에서 이 데이터를 참조하는 방식입니다. 이 다른 토픽들에는 이 프로젝트 관리 플러그인처럼 추가 필드가 있을 수도 있습니다.
이것은 discourse 플러그인을 작성하는 법을 배우기 위해 제가 작성한 첫 번째 플러그인입니다. 현재는 미완성 상태입니다. 이 플러그인을 어떤 방향으로 발전시킬지 아직 결정하지 못했지만, 계속 작업하고 이전에 작성한 코드를 재활용할 계획은 분명합니다. 여러분의 사용 사례에 대해 알려주시면 감사하겠습니다. 편하신 경우 개인 메시지로도 연락해 주세요!
현재 기본 에디터 플러그인의 리라이팅 작업을 진행 중이며, 이후 이 플러그인으로 다시 돌아올 수 있습니다. 하지만 이 플러그인의 대상 사용자를 다시 생각해봐야 할 것 같습니다. 이 플러그인을 어떤 용도로 사용하고 싶으신지 의견을 들려주시면 기쁩니다. 이 글을 읽고 계신 분들도 마찬가지입니다: 디스코르스를 이용해 프로젝트를 관리하고 싶은 방식을 자유롭게 적어주세요. 함께 아이디어를 나누어 볼 수도 있습니다