TODO: Medium-prio: * (testsuite) Provide ~100% automated test coverage of all functionality. * (feature) Show "you have N pending edits" link to non-automoderated users ("shopping cart" style), so that they would know to which pages to return to continue editing. Low-prio: * (compat) Support PostgreSQL. * (feature) Special page to list users blocked via "Mark as spammer". * (feature) modaction=promote for quickly assigning "automoderated" flag. * (documentation) Ensure that testsuite and hooks have Doxygen-style comments. Testsuite is documented quite well, but those are non-Doxygen comments. The list in README.testsuite is outdated and inconvenient to maintain. * (interface) Improve $wgModerationUseAjax - actions like Approve via Ajax (without leaving Special:Moderation). Partially implemented, but need feedback from users on UX (is it convenient to use or not?) * (testsuite) Selenium testsuite: investigate test flakiness of notify.js (in IE11, notification sometimes doesn't disappear after the click) * (feature) Support gzip compression and external storage of mod_text. Since MediaWiki 1.31, this can be easily done using BlobStore class. * (feature) Backup previous text when a pending change is modified. This would prevent situation when a user has accidentally deleted important text in his own pending change, and the old text wasn't recoverable. It would also make [action=editchange] safe from moderator's errors, and would allow to log what exactly did the moderator change. Note: this backup must be in a separate SQL table. Not having "edit history" in moderation table simplifies everything. Background-prio (may not be needed): * (meta) Display notification "Please run update.php" on Special:Moderation if some new feature (that requires DB update) is disabled because it wasn't done. * (feature) Add "rejected edits" link for moderators in ContributionsToolLinks hook. It's not a simple UI change, because "moderation" SQL table currently doesn't have an index for selecting edits by author. * (feature) Should ApproveHook update timestamps of upload/move logs? * (UX) Improve handling of zero edits. (having to reject them manually doesn't feel right) Tests needed: * PageForms plugin ("continue editing" link in postedit notification) * Notification emails ($ModerationNotification{Enable,NewOnly}, $ModerationEmail) FIXME: * When approving, tags related to moderator (and unrelated to original author) shouldn't be applied (e.g. if moderator clicks Approve in Mobile view, approved edit shouldn't be tagged as "Mobile edit" - unless, of course, the original author also used Mobile view and this tag is in mod_tags).