Richie
(Richie Rich)
29.Март.2025 09:47:45
1
Discourse 3.5.0.beta3-dev (afde7cc172 ).
Счётчик ссылок, отображаемый в нижней части темы, похоже, останавливается на 50, даже если в теме более 1000 ссылок:
Для справки:
В другой теме здесь также указано 50:
При наличии более 250 ссылок:
Кто-нибудь знает, что может быть причиной этого?
2 лайка
pfaffman
(Jay Pfaffman)
29.Март.2025 21:41:52
2
Не глядя на код, я думаю, что это число, скорее всего, берётся из topic_links, поэтому что-то вроде
select * from topic_links where topic_id=1234
Хотя это действительно похоже на ошибку.
3 лайка
Richie
(Richie Rich)
30.Март.2025 10:09:20
3
Интересно, я не заметил эту таблицу.
Если это поможет, в этой теме (id) содержится 4 155 ссылок, хотя на фронтенде указано 50x:
pfaffman
(Jay Pfaffman)
30.Март.2025 14:45:15
4
Звучит как баг. Возможно, стоит поделиться ссылкой. Возможно, стоит посмотреть в код.
Похоже, ограничение в 50 сделано намеренно; вероятно, это сложный запрос, и выполнение его для сотен или тысяч записей создало бы проблемы с производительностью.
def self.topic_map(guardian, topic_id)
# Sam: complicated reports are really hard in AR
builder = DB.build(<<~SQL)
SELECT ftl.url,
COALESCE(ft.title, ftl.title) AS title,
ftl.link_topic_id,
ftl.reflection,
ftl.internal,
ftl.domain,
MIN(ftl.user_id) AS user_id,
SUM(clicks) AS clicks
FROM topic_links AS ftl
LEFT JOIN topics AS ft ON ftl.link_topic_id = ft.id
LEFT JOIN categories AS c ON c.id = ft.category_id
LEFT JOIN posts AS target_posts ON ftl.link_post_id = target_posts.id
/*where*/
GROUP BY ftl.url, ft.title, ftl.title, ftl.link_topic_id, ftl.reflection, ftl.internal, ftl.domain
ORDER BY clicks DESC, count(*) DESC
LIMIT 51
4 лайка
Richie
(Richie Rich)
30.Март.2025 15:44:57
5
Хм
Спасибо за подтверждение, @pfaffman .
Не понимаю, зачем показывать конечному пользователю число, которое совершенно неточно
Лучше никакой информации, чем неточная.
У меня есть идея простого решения, которое не требует полностью убирать это неверное число.
Я опубликую предложение в канале ux
1 лайк
sam
(Sam Saffron)
31.Март.2025 05:41:50
6
Да, это находится на стыке багов и UX.
С одной стороны, это влияет только на интерфейс Discourse, с другой — показывать число, которое мы знаем, неверно, — это баг.
Я думаю, что самое простое решение с нашей стороны — выбирать 51, а затем отображать в интерфейсе текст «50+», если получаем 51.
Это кажется подходящим для pr-welcome , но я оставлю @lindsey решить и распределить задачу.
sam
(Sam Saffron)
31.Март.2025 05:43:51
7
А, я понял:
Further to what I thought was a bug but is seemingly by design, the topic link counter stops at 50:
Even if there are thousands of links in the topic
And:
With this in mind, rather than showing an inaccurate number to the end user could we simply display a + symbol if there are more than 50 links in a topic?
For example, this:
[Screenshot 2025-03-30 at 16.48.20]
Would simply become 50+ like so:
[Screenshot 2025-03-30 at 16.48.30]
This way the user is not being told in…
Похоже, нам стоит обсудить это там.