소거된 카테고리가 다이제스트에 포함됨

모더레이터가 플래그가 지정된 게시물을 이동시킬 수 있는 “적절하지 않은” 카테고리가 있습니다. 이 카테고리는 공개 포럼에 적합하지 않은 게시물도 여전히 논의될 수 있도록 하기 위한 것입니다. 당연히 이 카테고리는 요약 이메일에 포함되지 않아야 하므로 사이트 설정에서 이를 억제(suppress)해 두었습니다:

Screenshot from 2021-09-12 07-39-34

그러나 최근 요약 메일에 해당 카테고리의 주제가 포함되어 있었습니다. 설정에서 선택을 해제했다가 다시 선택해 보니 로그에 변경 사항이 나타났습니다:

14는 ‘적절하지 않은’ 카테고리의 ID입니다. 이전 카테고리 2(아마도 "사이트 피드백"일 것입니다)는 이미 오래전에 삭제되었지만, 여전히 억제된 카테고리 목록에 포함되어 있는 것으로 보입니다. 이것이 목록이 의도대로 작동하지 못하게 만든 버그일 수 있을까요?

3개의 좋아요

방금 요약 미리보기를 확인해 봤는데, 실제로 해당 카테고리가 여전히 포함되어 있습니다.

사실, 어떤 카테고리를 선택하든 억제 기능이 작동하지 않습니다.

네, 저도 로컬 개발 사이트에서 테스트해 보았으며 동일한 문제를 발견했습니다. 이 문제의 원인은 여기서 사용되는 로직에 있는 것 같습니다:

해당 줄을 topics = topics.where("topics.category_id NOT IN (?)", remove_category_ids)로 변경하면 digest_suppress_categories 설정에 추가된 카테고리에 대한 문제는 해결되는 것 같습니다. 하지만 음소거(muted) 카테고리를 처리하는 로직을 추가해야 합니다. 아마 다음과 같은 방식으로 처리할 수 있을 것입니다:

topics = topics.where("topics.category_id NOT IN (?)",  remove_category_ids).where("topic_users.notification_level != (?)", TopicUser.notification_levels[:muted])
3개의 좋아요

문제는 해당 사용자가 이미 해당 토픽을 방문하여 해당 사용자의 TopicUser 모델 레코드가 생성되었기 때문이라고 생각합니다. 이 경우, 해당 토픽은 무음 설정이 해제되었는지 확인하는 위의 조건을 통과하게 됩니다. 따라서 아래 PR이 이 문제를 수정할 것입니다.

3개의 좋아요