summaryrefslogtreecommitdiff
path: root/data/notes/tagmod-overrule
blob: 6209b79f68855023dd41dbd99f2a4ef2b1e8e36c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
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