토픽 작업 wrench에서 '보류 중' 옵션 만들기

토픽 작업의 “렌치” 아이콘 안에 추가 옵션을 하나 더 넣는 데 관심이 있습니다. 구체적으로는 토픽 상태를 '보류(Pending)'로 변경하는 옵션(예: ‘보류로 만들기’)입니다.

주요 사용 사례는 특정 이유로 인해 내용이 의심스러운 토픽에 대해, 어떻게 처리하는 것이 최선인지 좀 더 고민이 필요할 때입니다. 렌치를 클릭하여 상태를 보류로 변경하는 것이 가장 효율적인 방법처럼 보이지만, 물론 다른 의견도 환영합니다.

4개의 좋아요

잘 이해가 안 됩니다. 첫 게시물에 북마크 타이머를 설정하는 건 왜 안 되는 거죠?

그가 원하는 것은 감시 단어 트리거에 걸린 것처럼 특정 주제/게시물을 숨기는 것입니다. 게시물을 사용자가 볼 수 없게 하되, 나중에 처리하기 위해 검토 대기열로 보내는 것입니다(예: 게시물과 그 부적절함에 대해 사용자에게 연락하기).

1개의 좋아요

잠깐, 우리가 이야기하는 건 이미 검토 대기열에 있는 게시물을 말하는 건가요? 아니면 기존 게시물을 검토 대기열에 강제로 넣는 걸 말하는 건가요?

흥미로운 아이디어네요…

기존 게시글을 검토 대기열에 강제로 추가합니다.

@pfaffman 맞습니다.

@codinghorror 제가 더 드릴 수 있는 정보가 있을까요?

좋은 아이디어인 것 같은데, 구현 관점에서 얼마나 어려운지는 잘 모르겠어요. @sam님은 어떻게 생각하세요?

답변이 없다면 그렇게 어렵지 않을 것 같습니다… @eviltrout 또는 @Roman이 얼마나 복잡해질지 정확히 알고 계실 겁니다.

pending으로 옮기면, 해당 토픽을 강제로 삭제하고 다른 테이블로 이동해야 할 수도 있습니다.

1개의 좋아요

아무 게시물이나 작동할 것 같은데, 토픽은 좀 특수한 경우네요.. 그냥 이 게시물이 나쁜 단어를 썼다고 가정하고, 억지로 검토 대기열에 넣는 건가요?

1개의 좋아요

네, 단일 게시글 하나를 처리하는 건 비교적 쉽습니다(순서가 어긋날 수는 있지만, 작동할 가능성은 있습니다). 매우 복잡해지는 건 답글이 달린 주제 전체를 처리하려는 경우입니다.

이게 얼마나 유용한 사용 사례인지 잘 모르겠네요. 원포스터(OP)의 글로 보아 그런 것 같습니다.

Jane이 주제 생성: 마시멜로 먹는 거 좋아해요
Jim이 답글: 이 사이트가 "마시멜로 금지"라는 걸 모르셨나요?

사이트는 사탕에 관한 사이트이지만, 사이트 운영진은 마시멜로를 좋아하지 않습니다. 새벽 5시… 이 문제를 지금 처리할 수 있는 상태가 아닙니다.

버튼 클릭… Jane의 주제가 승인 대기열로 돌아갑니다. 내일 처리하면 됩니다.


문제는… 어떻게 처리하느냐는 겁니다. 다시 게시할 때 타임스탬프는 어떻게 되나요, 이런 것들요. 검토 대기열은 한 번에 여러 게시글을 처리하는 것을 지원하지 않습니다.

현재 이 문제를 처리하는 "지원되는 방법"은 다음과 같습니다.

  • “비공개(미상장)로 설정”
  • 아무도 잊지 않도록 관리자에게 알림을 표시

단점은 URL을 가진 사람은 여전히 볼 수 있다는 점입니다.

다른 옵션은 다음과 같습니다: "삭제"를 누르고, 삭제된 콘텐츠에 플래그를 표시합니다(검토 기능이 이를 지원하는지 확실하지 않지만, 관리자가 삭제된 콘텐츠에 플래그를 표시할 수 있도록 허용하는 것이 합리적일 수 있습니다).

2개의 좋아요

네, 큰 차이 중 하나는 토픽이 생성되기 전에 큐에 넣는 것이 생성된 후에 넣는 것보다 훨씬 간단하다는 점입니다.

그래도 큐에서 처리될 때까지 숨기는 기능은 지원하고 있습니다. @Roman 님이 다음 주에 돌아오시면 이 부분에 대한 예상치를 파악해 주실 겁니다.

1개의 좋아요

@ked 이 방법으로 괜찮으시나요? 위에 언급한 방법을 시도해 보셨나요? :backhand_index_pointing_up:

네, 시도해 보았고 이해하고 있습니다. 이상적은 아니지만, 위에서 논의된 다른 제약 사항과 관련 문제를 고려하면 어느 정도 활용 가능하다고 생각합니다.

제 주요 사용 사례는 토픽이 생성되고 표시될 때, 감시 단어(Watched Words) 기능에 의해 포착되기를 원하는 경우입니다. 대략 1시간 이내에 이러한 토픽을 확인하는 경우가 많으며, 대부분 아직 첫 번째 답글이 달리지 않은 상태입니다. 실행 가능한 아이디어 중 하나는 아직 첫 번째 답글이 없는 토픽에 대해서만 렌치 메뉴에서 ‘보류로 설정(Make Pending)’ 옵션을 사용할 수 있게 하는 것입니다. 단순히 떠오른 생각일 뿐입니다.

어쨌든, 이 문제에 대해 다른 발전이 없다면 ‘비공개로 설정(Make Unlisted)’ 기능을 사용할 예정입니다.

해당 사항에 대해 살펴봐 주셔서 감사합니다.

3개의 좋아요

지연된 답변을 드려 죄송합니다. 이 문제에 대해 꽤 많이 생각해 보았습니다.

게시물을 보류(pending) 상태로 만드는 것은 게시물을 하드 삭제하고, 재현성에 필요한 모든 데이터를 reviewable의 payload 속성에 저장하는 것을 의미합니다. dependent: :destroy 또는 dependent: :delete_all로 태그된 연관 관계로 인해 이 전환 과정에서 데이터가 손실될까 봐 걱정되어 이 부분을 몇 번이나 다시 작성해야 했습니다. 그러나 몇 가지 테스트를 해본 결과, 이렇게 하는 것이 안전하다고 생각합니다.

토픽에 답글이 없거나 첫 번째 게시물이 아닌 경우 이렇게 하는 것은 적정 수준의 노력이 필요할 것입니다. 게시물을 대기열에 추가하는 모든 로직은 NewPostManager#enqueue 메서드 안에 있으므로, 이를 별도의 클래스로 추출하여 재사용해야 합니다. 승인 후 보류된 게시물은 항상 토픽의 끝에 추가되므로, 특정 위치에 추가하려면 조금 더 작업이 필요합니다.

답글이 있는 토픽을 보류 상태로 되돌리는 것은 이 접근 방식에서는 더 복잡할 것입니다. reviewable로 직렬화하는 것은 다소 과하다고 생각됩니다. 대신 토픽을 일시적으로 숨기는 방식은 어떨까요? 예를 들어, 신뢰할 수 있는 사용자가 스팸으로 신고하면 이미 이렇게 하고 있습니다.

대안으로, 항상 신고 + 삭제(또는 숨김) 방식을 사용할 수 있습니다. 이렇게 하면 모든 것이 훨씬 쉬워집니다. 게시물을 하드 삭제하고 대기열에 추가하는 방식이 더 나은 이유가 떠오르지 않습니다.

2개의 좋아요

여기 업데이트를 올리는 걸 깜빡했습니다. Flag Post 버튼을 Take Action... 옆에 있는 플래그 모달에 추가했습니다. 게시를 클릭하면 게시물이 큐로 전송되고 숨겨지며, 스태프가 검토할 때까지 그 상태로 유지된다는 메시지가 사용자에게 전송됩니다.

1개의 좋아요

감사합니다, @Roman

2개의 좋아요

여기서 표현을 검토할 필요가 있다고 생각합니다:

무엇을 선택해야 할지 매우 혼란스럽습니다.

"Flag Post"라는 단어를 "Add to Review Queue"로 변경하고, 아이콘도 다르게 하는 것이 어떨까요.

"Flag Post"라는 이름의 버튼이 두 개나 있는 것은 매우 혼란스럽습니다.

4개의 좋아요