a0f59a55cc
FIX: when a post is moved copy notifications level ( #9311 )
...
This is a revert of 2c011252f1
More information on meta: https://meta.discourse.org/t/when-a-reply-is-moved-to-a-new-topic-the-followers-of-the-previous-topic-are-automatically-follower-of-the-new-topic-as-well/130025
2020-03-31 16:19:47 +11:00
71849242fa
PERF: Speed up moving posts on large databases
...
Old exection plan:
```
Delete on post_replies pr (cost=6.59..20462.62 rows=2254 width=24) (actual time=2.580..2.580 rows=0 loops=1)
-> Nested Loop (cost=6.59..20462.62 rows=2254 width=24) (actual time=0.086..2.557 rows=4 loops=1)
Join Filter: (p.topic_id <> r.topic_id)
Rows Removed by Join Filter: 328
-> Nested Loop (cost=6.16..16845.77 rows=2254 width=26) (actual time=0.020..1.886 rows=332 loops=1)
-> Nested Loop (cost=5.74..13257.09 rows=2254 width=20) (actual time=0.016..1.361 rows=332 loops=1)
-> Seq Scan on moved_posts mp (cost=0.00..19.70 rows=970 width=10) (actual time=0.002..0.028 rows=263 loops=1)
-> Bitmap Heap Scan on post_replies pr (cost=5.74..13.63 rows=2 width=14) (actual time=0.004..0.005 rows=1 loops=263)
Recheck Cond: ((reply_post_id = mp.old_post_id) OR (post_id = mp.old_post_id))
Heap Blocks: exact=278
-> BitmapOr (cost=5.74..5.74 rows=2 width=0) (actual time=0.004..0.004 rows=0 loops=263)
-> Bitmap Index Scan on index_post_replies_on_reply_post_id (cost=0.00..2.87 rows=1 width=0) (actual time=0.001..0.001 rows=1 loops=263)
Index Cond: (reply_post_id = mp.old_post_id)
-> Bitmap Index Scan on index_post_replies_on_post_id_and_reply_post_id (cost=0.00..2.87 rows=1 width=0) (actual time=0.002..0.002 rows=1 loops=263)
Index Cond: (post_id = mp.old_post_id)
-> Index Scan using posts_pkey on posts p (cost=0.42..1.59 rows=1 width=14) (actual time=0.001..0.001 rows=1 loops=332)
Index Cond: (id = pr.post_id)
-> Index Scan using posts_pkey on posts r (cost=0.42..1.59 rows=1 width=14) (actual time=0.001..0.002 rows=1 loops=332)
Index Cond: (id = pr.reply_post_id)
Planning Time: 0.305 ms
Execution Time: 2.600 ms
```
New execution plan:
```
Delete on post_replies pr (cost=15.34..6538275.37 rows=364157 width=12) (actual time=1.961..1.961 rows=0 loops=1)
-> Nested Loop (cost=15.34..6538275.37 rows=364157 width=12) (actual time=0.048..1.827 rows=187 loops=1)
-> Seq Scan on moved_posts mp (cost=0.00..19.70 rows=970 width=10) (actual time=0.004..0.029 rows=188 loops=1)
-> Bitmap Heap Scan on post_replies pr (cost=15.34..6736.72 rows=375 width=14) (actual time=0.009..0.009 rows=1 loops=188)
Recheck Cond: ((reply_post_id = mp.old_post_id) OR (post_id = mp.old_post_id))
Filter: ((SubPlan 1) <> (SubPlan 2))
Heap Blocks: exact=187
-> BitmapOr (cost=15.34..15.34 rows=377 width=0) (actual time=0.003..0.003 rows=0 loops=188)
-> Bitmap Index Scan on index_post_replies_on_reply_post_id (cost=0.00..4.33 rows=1 width=0) (actual time=0.001..0.001 rows=1 loops=188)
Index Cond: (reply_post_id = mp.old_post_id)
-> Bitmap Index Scan on index_post_replies_on_post_id_and_reply_post_id (cost=0.00..10.82 rows=376 width=0) (actual time=0.001..0.001 rows=0 loops=188)
Index Cond: (post_id = mp.old_post_id)
SubPlan 1
-> Index Scan using posts_pkey on posts p (cost=0.43..8.45 rows=1 width=4) (actual time=0.002..0.002 rows=1 loops=187)
Index Cond: (id = pr.post_id)
SubPlan 2
-> Index Scan using posts_pkey on posts r (cost=0.43..8.45 rows=1 width=4) (actual time=0.002..0.003 rows=1 loops=187)
Index Cond: (id = pr.reply_post_id)
Planning Time: 0.136 ms
Execution Time: 1.990 ms
```
2020-02-04 12:30:43 +01:00
1b3b0708c0
FEATURE: Update upload security status on post move, topic conversion, category change ( #8731 )
...
Add TopicUploadSecurityManager to handle post moves. When a post moves around or a topic changes between categories and public/private message status the uploads connected to posts in the topic need to have their secure status updated, depending on the security context the topic now lives in.
2020-01-23 12:01:10 +10:00
ab07b945c2
Merge pull request #8736 from gschlager/rename_reply_id_column
...
REFACTOR: Rename `post_replies.reply_id` column to `post_replies.reply_post_id`
2020-01-17 17:24:49 +01:00
bbcce08712
FIX: Update quotes after moving posts ( #8326 )
2019-11-12 15:16:39 +02:00
2c011252f1
FIX: Move notification level only when user posted
...
Moving posts also moves the read state (`topic_users` table) to the destination topic. This changes that behavior so that only users who posted in the destination topic will have the original notification level (probably "watching") of the original topic. The notification level for all other users will be set to "regular".
2019-10-14 15:06:09 +02:00
f1742617fb
PERF: Faster moving of read state
...
This should improve the performance of moving the read state of lots of posts to a new/existing topic.
2019-10-14 15:06:09 +02:00
10e509e47f
FIX: Don't swallow the original error when moving posts
...
Dropping the temp table in an `ensure` block hides the actual exception. Creating the table with `ON COMMIT DROP` makes the temp table disappear automatically at the end of the transaction. We only need the explicit `DROP` in tests, because tests already run inside a transaction, so the temp table won't be dropped after each test which leads to spec failures.
2019-10-09 17:02:17 +02:00
bee000bcec
FIX: Existing post timings could prevent moving posts
...
Post timings are created by `topic_id` and `post_number` and it's possible that the destination topic already contains post timings for non-existent posts. For example, this can happen if the destination topic was previously split and Discourse recorded post timings for moved posts in the destination topic.
This commit ensures that all timings which reference non-existent posts are deleted from the destination topic before the posts are moved.
2019-10-08 21:07:29 +02:00
52461abad9
FIX: Move read state when moving posts
...
* Moves / copies post timings
* Moves / copies topic users
* Fixes a small bug in the calculation of post numbers
2019-09-06 20:52:44 +02:00
2a95c5c5d6
FIX: Don't update watching_first_post
notifications when moving first post
...
The first post isn't moved. It gets copied during a move. Notifications of this special type should still link to the original first post.
2019-08-12 22:59:43 +02:00
50db6a1d62
FIX: Correctly update replies when first post gets moved
2019-08-01 22:07:21 +02:00
4113b57cfe
REFACTOR: Use less queries when moving posts
2019-08-01 22:04:45 +02:00
845fd42153
FIX: Update reply count when moving posts
2019-07-22 21:42:24 +02:00
271ddac467
FIX: Delete notifications users can't see after moving posts
...
No need to let notifications stay around when users can't access
a topic after it was converted into a PM or posts were moved
into a restricted topic.
Also makes sure that moving to a new topic correctly uses the
guardian for the first post by enqueuing jobs outside of a
transaction.
2019-07-22 19:02:21 +02:00
1235105c03
FIX: Old notifications didn't link to correct post after moving post
2019-07-22 17:38:45 +02:00
1d3375b176
FEATURE: Preserve notifications levels when splitting topics. ( #7494 )
2019-05-15 17:29:29 +10:00
30990006a9
DEV: enable frozen string literal on all files
...
This reduces chances of errors where consumers of strings mutate inputs
and reduces memory usage of the app.
Test suite passes now, but there may be some stuff left, so we will run
a few sites on a branch prior to merging
2019-05-13 09:31:32 +08:00
a40dcbde9b
FIX: Do not move hidden post actions. ( #7424 )
...
Hidden (staff-only) post actions are whisper posts with no content, that
are later transformed by the client into post actions (discourse-assign
uses this).
2019-05-06 16:21:42 +03:00
d6d71de855
FIX: allow banner topic posts to be moved to regular topic (and vice versa)
2019-03-14 23:41:23 +05:30
c02956e29c
FIX: when posts are moved to a message then small action post should not be publicly visible ( #7085 )
...
This fix is inspired from what we do in discourse-assigned plugin.
https://github.com/discourse/discourse-assign/blob/master/lib/topic_assigner.rb#L184
https://github.com/discourse/discourse-assign/blob/master/assets/javascripts/discourse-assign/initializers/extend-for-assigns.js.es6#L125-L133
2019-02-28 19:49:26 +05:30
66901f67f6
UX: Moderator post wasn't completely translatable
2019-02-20 16:37:47 +01:00
7da7a30e02
PERF: Restore exists?
in favor of blank?
.
...
Regression from dcd7b925327ac3523ccbf94216e43f3f6b56df52.
2019-02-18 10:04:21 +08:00
dcd7b92532
FIX: some posters were not getting added to topic_allowed_users when moving posts to a new PM
...
If a user posted twice in a topic then subsequent posters were not getting added as topic_allowed_users.
2019-02-11 17:05:21 +05:30
70fdc10365
FEATURE: move posts to new/existing PM ( #6802 )
2018-12-31 17:17:22 +05:30
f4ca105498
FIX: Moving posts to existing topic didn't update topic metadata
2018-08-01 18:05:43 +02:00
69450750d1
shorter method name and better specs
2018-07-20 10:13:27 +03:00
547b571d84
FIX: topic owner should watch the new topic when moving posts to a new topic
2018-07-18 15:23:32 +03:00
b068a8a771
Fix the build.
2018-07-18 14:03:27 +08:00
18f5f646b1
FEATURE: allow selecting a tag when moving posts to a new topic ( #6072 )
2018-07-06 18:21:32 +02:00
89ad2b5900
DEV: Rails 5.2 upgrade and global gem upgrade
...
This updates tests to use latest rails 5 practice
and updates ALL dependencies that could be updated
Performance testing shows that performance has not regressed
if anything it is marginally faster now.
2018-06-07 14:21:33 +10:00
3e9230714f
UX: moved posts message links to the first post at the destination topic
2018-04-13 12:47:36 -04:00
0ecdf90023
FIX: Validations could prevent moving posts
2018-02-08 13:36:13 +01:00
8ab6689f43
FIX: Preserve original date when moving first post
2018-02-08 12:55:32 +01:00
e8559f222c
FIX: After moving the posts topic timestamp should be updated with newest post
2018-02-02 19:30:52 +05:30
b3094e9954
FIX: incoming and outgoing emails got lost when post was moved
2017-11-24 11:45:36 +01:00
39810e4425
FIX: do not move small post actions
2017-11-23 17:25:53 +01:00
77d4c4d8dc
Fix all the errors to get our tests green on Rails 5.1.
2017-09-25 13:48:58 +08:00
efef422416
FIX: Use default locale for moderator post when posts are moved
2017-09-14 17:17:37 +02:00
c2061aae3d
Add new 'post_moved' event
2017-08-12 04:12:09 +02:00
5012d46cbd
Add rubocop to our build. ( #5004 )
2017-07-28 10:20:09 +09:00
984778d3ac
FIX: handle moving first post to a closed/archived topic
2017-07-03 21:21:20 +05:30
5794ff53a1
FIX: Copy custom fields when moving first post of a topic.
...
https://meta.discourse.org/t/transfer-poll-votes-when-moving-a-topic-into-an-existing-one/63678
2017-06-07 19:04:48 +09:00
a7fc93acac
FIX: post mover not clearing reply_to_user_id
2017-06-01 18:00:14 -04:00
0d66529d2b
PostReply doesn't have a primary key, so no luck here
2017-04-24 23:14:01 +02:00
1787c45b38
PERF: don't load all replies in memory when moving posts
2017-04-24 23:00:32 +02:00
934bff43d9
FIX: Copy post actions when moving a topic.
2017-04-06 12:16:22 +08:00
8aea3caf00
FIX: Ensure that we only move posts that belong to the original topic.
2017-03-06 15:04:10 +08:00
e5b529f8e1
FIX: Couldn't move posts with deleted replies
2016-08-04 11:56:01 -04:00
5fed886c8f
FIX: Update post replies when we move posts. ( #4324 )
2016-07-13 17:34:21 +02:00