Это действительно системные бейджи, и их нельзя редактировать через интерфейс (хотя они видны). Эту строку нужно будет добавить через PR. ![]()
Не возражаешь, если я попробую сделать этот PR? Мне кажется, нужно просто изменить SQL в discourse/lib/badge_queries.rb, строки 156–167.
Здравствуйте. Через день после того, как мои бейджи были удалены, они внезапно вернулись. Кто-нибудь может решить эту проблему?
Они вернутся, так как запросы выполняются ежедневно, и вы всё ещё «соответствуете» критериям.
Нам пришлось бы удалять их вручную каждый день, пока баг не будет исправлен, что нереалистично.
Я проверил, и мы можем пометить это как pr-welcome
(Вам нужно будет сделать всё три шага).
Понял, спасибо. Я должен быть в состоянии это сделать.
И я не вижу, зачем мне нужно выполнять пункт 3. Функция для ссылок-приглашений возвращает количество, если я правильно понял код функции.
Я не смотрел код, так что вы, возможно, правы. ![]()
def self.invite_badge(count, trust_level)
<<~SQL
SELECT u.id user_id, current_timestamp granted_at
FROM users u
WHERE u.id IN (
SELECT invited_by_id
FROM invites i
JOIN invited_users iu ON iu.invite_id = i.id
JOIN users u2 ON u2.id = iu.user_id
WHERE i.deleted_at IS NULL AND u2.active AND u2.trust_level >= #{trust_level.to_i} AND u2.silenced_till IS NULL
GROUP BY invited_by_id
HAVING COUNT(*) >= #{count.to_i}
) AND u.active AND u.silenced_till IS NULL AND u.id > 0 AND
(:backfill OR u.id IN (:user_ids) )
SQL
end
Вот оно. Похоже, это только первый случай. Просмотрел весь файл, и ничего другого, связанного с приглашениями, не нашёл.
Создал PR
Посмотрев на PR (и учтя, что PR — это не моя сильная сторона), складывается впечатление, что вы зафиксировали его только для версии Promoter, заменив #{count.to_i} на 1?
Мой пример выше был лишь концептом, и его нужно будет адаптировать под конкретные нужды. ![]()
(кстати, глядя на текст в этом onebox, я ‘JammyDodger’, а не ‘Jammy Dogger’…
)
Моя ошибка. Исправил ваше имя.
Спасибо за ваш вклад! Я принял ваш PR.
Также небольшое замечание: обычно мы требуем наличие тестов для изменений, но поскольку их не было, мы просто примем этот PR и добавим тесты позже.
Надеемся увидеть от вас ещё больше в будущем ![]()
Эта тема была автоматически закрыта через 2 дня. Новые ответы больше не принимаются.