Commit Graph

1731 Commits

Author SHA1 Message Date
evazion
3dc854c0c8 post_vote.rb: determine vote magnitude from voter, not CurrentUser.
Bug: when moving favorites, the parent is given an upvote for each gold+
favoriter, but the magnitude of these upvotes was based on the
CurrentUser, rather than the upvoter. This meant that upvotes for
supervoter favorites weren't given correctly.

To fix this, `magnitude` is changed to use the voting `user` instead of
CurrentUser.

New problem: when setting the score, `score=` calls `magnitude`, but
`user` isn't initialized yet. So we also refactor so that

    1. `initialize_attributes` initializes `user` before setting `score`
    2. the vote direction is given by `vote`, so it's separate from `score`
    3. updating the score on the post happens in a callback instead of
       directly in `score=`.
2017-03-24 15:43:55 -05:00
evazion
07707b257a post.rb: make non-gold supervoters upvote when fav'ing a post. 2017-03-24 15:43:55 -05:00
evazion
fd24ea5876 posts.rb: vote on behalf of correct user when moving favorites.
Bug: when an approver moves the favorites of a post, each favorite is
removed from the child post and added to the parent post. For gold+
users, this triggers an upvote, but these upvotes were performed by the
approver rather than the favoriter.
2017-03-24 15:43:28 -05:00
evazion
4fde2a26fb post.rb: handle automatic *_(cosplay) tags in TagImplication. 2017-03-23 02:48:03 -05:00
evazion
0793beded9 alias_and_implication_list: refactor alias/implication lookup.
Add alias and implications associations to Tag. Use them in
alias_and_implication list instead of duplicating the alias/implication
lookup code.
2017-03-23 02:47:21 -05:00
r888888888
b3e3012a9c link to upload advice thread for deleted posts 2017-03-22 16:33:14 -07:00
evazion
47ecf034a7 /posts/:id/events - fix exception when viewed by mod.
NoMethodError exception raised

    undefined method `creator' for #<PostEvent:0x007f9a298e64d8> Did you mean? creator_id
    app/views/post_events/index.html.erb:23:in `block in _app_views_post_events_index_html_erb__2088986421112502721_70150054247640'
    app/views/post_events/index.html.erb:18:in `each'
    app/views/post_events/index.html.erb:18:in `_app_views_post_events_index_html_erb__2088986421112502721_70150054247640'
    app/controllers/post_events_controller.rb:6:in `index'
2017-03-21 17:17:18 -05:00
r888888888
23da9c6f89 fixes #2911 2017-03-21 13:56:48 -07:00
r888888888
70d057f8f3 move saved search option to sidebar 2017-03-20 16:19:15 -07:00
evazion
5ba1df5502 /posts/:id/events: list is_resolved correctly for appeals.
/posts/:id/events incorrectly lists appeals as always being resolved.
This is because events UNION together appeals and flags, which doesn't
quite work because for appeals is_resolved is a method, not an
attribute. is_resolved was hardcoded to true so it'd work in the UNION.

This changes PostEvent to be a wrapper object around PostFlag /
PostAppeal, instead of a UNION. PostEvent delegates everything to the
inner flag/appeals object, so that is_resolved works correctly.

Also, this incidentally fixes a problem with /posts/:id/event.xml not
serializing correctly.
2017-03-19 22:47:10 -05:00
r888888888
d22d655d43 fix Post#set_tag_counts 2017-03-17 19:10:55 -07:00
r888888888
f1ba075bea support disable_cache for Tag.categories_for 2017-03-17 18:41:33 -07:00
r888888888
5cef0321f2 switch to use Cache.get_multi for tag types 2017-03-17 18:36:53 -07:00
r888888888
c3c4952e35 do not limit flags for system user 2017-03-17 12:17:27 -07:00
r888888888
ecdea34323 revert e7b3fae215 2017-03-17 12:13:27 -07:00
r888888888
bdeba94b31 fix error case in saved search 2017-03-16 15:17:55 -07:00
r888888888
e7b3fae215 change daily flag limit to 5/day 2017-03-16 14:32:04 -07:00
r888888888
d9a26975ba fix tests 2017-03-15 16:08:47 -07:00
r888888888
da06bee0ab revamp saved search implementation 2017-03-15 15:36:48 -07:00
r888888888
e946d23fa7 enable s3 proxy (wave 1) 2017-03-09 18:18:06 -08:00
r888888888
97cc8b5931 ignore privacy mode settings for admins 2017-03-09 13:52:46 -08:00
r888888888
43f31529d7 fixes #2920: "Undo" function not working for Post Versions 2017-03-09 11:44:28 -08:00
r888888888
7f2ad3c80b validate max length of forum topic 2017-03-06 15:13:30 -08:00
evazion
3db7244109 post_archive.rb: readd associations. 2017-03-02 17:45:16 -06:00
evazion
2bb134f08d modqueue: highlight uploads containing "bad" tags. 2017-03-01 15:31:16 -06:00
r888888888
e94edc9a75 switch approver and post pruners to use system user 2017-02-28 17:10:36 -08:00
r888888888
27f7f4f12e remove postarchive export method 2017-02-28 16:50:51 -08:00
r888888888
12e4a82db3 fix upload tags report 2017-02-28 16:28:58 -08:00
r888888888
7f22baa1bc refactor upload tags report 2017-02-28 15:34:40 -08:00
Albert Yi
458a9692d6 Merge pull request #2864 from r888888888/upload_tags_report
Implement #2863: basic upload tags change report
2017-02-28 15:28:40 -08:00
Albert Yi
fd7cddc909 Merge branch 'master' into fix-mention-dmails 2017-02-27 17:00:24 -08:00
r888888888
80f439f075 fixes #2898: Wiki Page Versions still not recording "is_deleted" 2017-02-27 16:57:24 -08:00
Albert Yi
1fa0aabbe0 Merge pull request #2896 from evazion/fix-username-whitespace
Disallow unicode whitespace in usernames (#2894).
2017-02-27 16:47:44 -08:00
r888888888
b332273378 fixes #2892: after_destroy callbacks should be fired upon comment deletion 2017-02-27 16:45:51 -08:00
r888888888
a90a1bd895 fix boolean checks in postarchive 2017-02-27 15:41:45 -08:00
r888888888
16cd879e08 potential fix for #2900: Post Versions JSON API failure - undefined method join 2017-02-27 15:22:15 -08:00
r888888888
398f58684f Merge branch 'post-archive' 2017-02-27 10:45:13 -08:00
evazion
46280f2227 mentions: include mentioner in subject line.
The template looks like this:

Subject:

    #{creator_name} mentioned you in a comment on post ##{post_id}

Body:

    @#{creator_name} mentioned you in a \"comment\":/posts/#{post_id}#comment-#{id} on post ##{post_id}:

    [quote]
    #{DText.excerpt(body, "@"+user_name)}
    [/quote]
2017-02-25 23:05:44 -06:00
evazion
6e3ddb6ed6 dmails: don't save copies of outgoing dmails sent by DanbooruBot.
There's not much sense in saving copies of everything DanbooruBot sends
in DanbooruBot's inbox. They probably won't be checked so it just bloats
the dmails table.
2017-02-25 23:05:44 -06:00
evazion
6966b74e18 Disallow unicode whitespace in usernames (#2894). 2017-02-25 01:51:33 -06:00
r888888888
2ebdfd7ab3 add s3 methods to amazonbackup 2017-02-24 14:00:59 -08:00
r888888888
8a57d38f38 remove statement about responding in automated messages 2017-02-24 10:36:45 -08:00
evazion
b1af644f67 dmails: send automated dmails from Danbooru.config.system_user.
Sends automated dmails from `Danbooru.config.system_user`, rather than
whichever user is performing the action happens to be (usually User.admins.first).

Also adds a notice in the view that the dmail was automated.
2017-02-23 22:51:17 -06:00
evazion
1400f64338 dmails_controller.rb: convert to strong params. 2017-02-23 22:51:17 -06:00
evazion
0c4b687880 user_name_change_requests.rb: remove unused notify_admins callback. 2017-02-23 22:51:17 -06:00
evazion
d852f98e4f /dmails: remove unused search[owner_id] param.
/dmails is restricted to viewing dmails for CurrentUser only (due to
Dmail.visible in the index action). Remove owner_id from subnavbar links
in /dmails, and don't support it in /dmails?search[owner_id], since it
doesn't actually do anything.

Also removes related dead methods and fixes tests that didn't test owner_id properly.
2017-02-23 22:51:17 -06:00
evazion
6de350cd7d dmail.rb: remove dead new_blank method. 2017-02-23 22:51:17 -06:00
evazion
35bf995276 dmail.rb: make to_name= use User.name_to_id cache. 2017-02-23 22:51:17 -06:00
evazion
2736d31c67 dmail.rb: validate only on creation.
to/from/title/body don't need to be revalidated after creation since
they never change.
2017-02-23 22:51:16 -06:00
r888888888
e699684c61 add css for highliting a specific forum post 2017-02-21 13:40:52 -08:00