Page MenuHomePhabricator

Allow for sorting Special:UnreviewedPages by time since creation
Closed, ResolvedPublicFeature

Description

Allow for sorting Special:UnreviewedPages by time since creation.

Requested on pl.wikipedia: https://pl.wikipedia.org/wiki/Wikipedia:Kawiarenka/Kwestie_techniczne#Nieprzejrzane_strony

See Also:
T17293: Provide time sorting for OldReviewedPages

Details

Reference
bz43857

Event Timeline

bzimport raised the priority of this task from to Medium.Nov 22 2014, 1:36 AM
bzimport added a project: FlaggedRevs.
bzimport set Reference to bz43857.
bzimport added a subscriber: Unknown Object (MLST).

This request makes a lot of sense. I would even say that sorting by date is more relevant that sorting alphabetically. Is it EASY enough to deserve such keyword?

No idea.

It has, however, just been asked for again on the same venue at pl.wp.

QEDK reopened this task as Open.
QEDK claimed this task.

Oops.

QEDK removed QEDK as the assignee of this task.Jan 18 2016, 3:42 PM
QEDK subscribed.

It seems rather hard. It queries the page table with left join on flaggedpages to filter out pages which have a reviewed version. page has a lexicographic index but no time-based index; doesn't even contain that information in an unindexed way. You'd have to rely on the page creation log (which is unreliable in many ways) or walk the revision table's (rev_page, rev_id) index. And it uses the querycache table (in a custom hacky way as it's not actually a QueryPage subclass) so you would need to cache the two sorting modes separately. And the code is of course 100% undocumented.

...although maybe for querycache it's fine to just do a filesort on the page table (filtered by namespace)? It's a few million rows at most.

Aklapper changed the subtype of this task from "Task" to "Feature Request".Feb 4 2022, 12:24 PM
Aklapper removed a subscriber: wikibugs-l-list.
Tgr assigned this task to Krinkle.

It seems like this is fixed:

Screenshot Capture - 2023-02-12 - 11-13-29.png (1×1 px, 531 KB)

I think what happened is that the code was inconsistent: UnreviewedPages / UnreviewedPagesPager have a live version and a less performance-intense querycache-based version, the live version sets $this->mIndexField = 'page_title';, the querycache-based version sets $this->mIndexField = 'qc_value'; - the querycache value is the page ID, which is effectively sorted by time. rEFLR74c2ec41b161: Replace wfQueriesMustScale() and generalQueryOK() with MiserMode changed the logic of choosing the cached view, which previously happened if a significant fraction of the wiki's articles were unreviewed (typically false as the point of FlagRev-based patrolling workflows is to keep these low), now it happens on miser mode (ie. always on Wikimedia wikis).