extensions-website/reviewers
Oleg Komarov 13ac2436ad ApprovalQueue: use a materialized table (#240)
see #238

This change improves the listing performance: old code had to process all
ApprovalActivity to compute an extension's moderation status and position in
the queue.

Now we maintain a sortkey, a reference to the latest "meaningful" activity
object, and a total comment count. These fields are updated in a post_save
signal.

"Meaningful" activity means moderation status changes:
approved, awaiting changes, awaiting review.

"Non-meaningful" activity shouldn't affect queue position anymore and
extensions without "meaningful" activity should not appear in the queue, but
their respective detail pages should still be reachable via a direct link.
This UX may still need improvement, and #210 may be relevant here.

Reviewed-on: #240
Reviewed-by: Anna Sirota <annasirota@noreply.localhost>
2024-08-23 15:11:45 +02:00
..
migrations ApprovalQueue: use a materialized table (#240) 2024-08-23 15:11:45 +02:00
templates/reviewers ApprovalQueue: use a materialized table (#240) 2024-08-23 15:11:45 +02:00
tests ApprovalQueue: use a materialized table (#240) 2024-08-23 15:11:45 +02:00
__init__.py Initial models, tests and other boilerplate 2022-08-25 17:37:48 +02:00
admin.py Review: Admin: Show user 2024-05-08 14:41:27 +02:00
apps.py Notification emails (#80) 2024-04-18 16:11:18 +02:00
forms.py Cleanup: Simplify placeholder text logic for the review form 2024-03-11 15:42:03 +01:00
models.py ApprovalQueue: use a materialized table (#240) 2024-08-23 15:11:45 +02:00
signals.py ApprovalQueue: use a materialized table (#240) 2024-08-23 15:11:45 +02:00
urls.py Notifications: unsubscribe from extension approval activity (#177) (#207) 2024-07-30 12:11:03 +02:00
views.py ApprovalQueue: use a materialized table (#240) 2024-08-23 15:11:45 +02:00