diff options
author | Yorhel <git@yorhel.nl> | 2011-02-08 11:46:38 +0100 |
---|---|---|
committer | Yorhel <git@yorhel.nl> | 2011-02-08 11:48:12 +0100 |
commit | 5360e67f5808c397a1e931405d47c2f031a95a11 (patch) | |
tree | 9e7e6470e60aa90f52024538423afc1eb9de8f01 /data/notes/tagmod-overrule | |
parent | 64577401e2466911d1a2230f1431714f1d872759 (diff) |
Uploaded some design/implementation notes I had lying around
Used to be private, with the sole purpose of getting a good overview of
things for myself, but I guess these may also be useful to others.
Diffstat (limited to 'data/notes/tagmod-overrule')
-rw-r--r-- | data/notes/tagmod-overrule | 55 |
1 files changed, 55 insertions, 0 deletions
diff --git a/data/notes/tagmod-overrule b/data/notes/tagmod-overrule new file mode 100644 index 00000000..6209b79f --- /dev/null +++ b/data/notes/tagmod-overrule @@ -0,0 +1,55 @@ +Allow moderators to overrule a VN tag score + +Last modified: 2011-01-03 +Status: Implemented + + +SQL implementation #1: + Extra column to tags_vn: + ALTER TABLE tags_vn ADD COLUMN overrule boolean NOT NULL DEFAULT false; + There can only be one row in tags_vn with the same (tag, vid) combination + when one is set with overrule = true; this row then automatically indicates + the final score and spoiler setting. + - Pro: This way none of the final score calculating functions will have to be + modified, and this won't incur an extra performance penalty. + - Con: the votes of all other users for that tag and VN will have to be + removed. This makes overruling a VN a non-reversible operation. + - Determining whether a score was forced by a mod: bool_or(tv.overwrite) + - Regular voting on an overruled tag is simply not allowed + - An other mod should be able to remove the overruled vote and replace it + +SQL implementation #2: + Extra column to tags_vn: + ALTER TABLE tags_vn ADD COLUMN ignore boolean NOT NULL DEFAULT false; + Any tag vote with the ignore flag set is ignored in the score calculation. + When a moderator "overrules" a score, all votes with that (tag, vid) will + have ignore=true, except the mods own vote. + - Pro: Far more flexible than #1, can be used to ignore individual votes. + However, using it for anything other than overruling will make it very + hard or even impossible to reliably implement the overruling feature, so + we'll have avoid making use of this flexibility. + - Pro: Votes of other users don't have to be removed + - Pro: Users can still add votes to the tag (although it will be ignored) + - Con: Requires special coding to automatically set new votes on ignore + - Con: Requires modifying score calculation functions, possibly slower + - Determining whether a score was forced by a mod: bool_or(tv.ignore) + (Assumes we don't use the added flexibility) + +Let's go with #2. Will be slightly more work; but at least it's less prone to +irriversible moderation mistakes and more "friendly" to taggers. + + +UI changes: + Add extra 'overrule' checkbox to the 'you' column for moderators. + - Checking this will take over the mods' tagvote and spoiler level and + ignore the votes of all others. + - Unchecking it will de-overrule the score + - When an overruled vote is removed by the mod (setting '-' as vote), the + tag is de-overruled again. + + Add "overruled" indication to "others" column + - A red "!" next to the score column would work + - Simply indicates whether the score has been overruled by a mod + + Add "ignored" / "not counted" indication to tag link browser + |