Explore topics: improve counter consistency

Problem

On the Explore topics page, you get a list of topics ordered by the number of associated projects. All projects are taken into account for counting, even those that are not visible to the current user. This leads to the situation that a topic is displayed very high in the list, although the user is unable to see any of the assigned projects:

List page Empty detail page of top topic
image image

This is confusing for the user: if a topic is very high up in the list of topics, surely some assigned projects should be shown. We can't just show the private projects that are not visible to the current user. So we need to optimize the order of the list on the Explore topics page and thus the project counter.

Proposal

Currently, the counter of a topic considers all assigned projects - regardless of visibility. So let's add a counter that only considers the assigned projects that are public or internal. And because the topics of private projects are then no longer considered, let's split the Explore topics page into two tabs:

  • Tab "Public" "All": topics ordered by number of assigned public and internal projects
  • Tab "Personal" "Your projects": topics ordered by number of assigned projects of which the current user is a member

Implementation plan

  1. !79140 (merged): Add a non_private_projects_count counter to the Topic model (including database background migration)
  2. !80478 (merged): Finalize and cleanup the database background migration
  3. !80478 (merged): Switch to use non_private_projects_count instead of total_projects_count for ordering on the Explore topics page
  4. !81519 (closed): Split Explore topics page into two tabs: "All" and "Your projects"
Edited by Jonas Wälter