mirror of
https://github.com/codeninjasllc/discourse.git
synced 2024-11-23 23:58:31 -05:00
Merge branch 'rewrite_update_alls' of git://github.com/stephankaag/discourse-1 into stephankaag-rewrite_update_alls
Conflicts: app/services/spam_rules_enforcer.rb
This commit is contained in:
commit
6364fc74ef
18 changed files with 52 additions and 49 deletions
|
@ -8,7 +8,7 @@ class EmailLog < ActiveRecord::Base
|
|||
|
||||
after_create do
|
||||
# Update last_emailed_at if the user_id is present
|
||||
User.update_all("last_emailed_at = CURRENT_TIMESTAMP", id: user_id) if user_id.present?
|
||||
User.where(id: user_id).update_all("last_emailed_at = CURRENT_TIMESTAMP") if user_id.present?
|
||||
end
|
||||
|
||||
def self.count_per_day(sinceDaysAgo = 30)
|
||||
|
|
|
@ -11,7 +11,7 @@ class EmailToken < ActiveRecord::Base
|
|||
|
||||
after_create do
|
||||
# Expire the previous tokens
|
||||
EmailToken.update_all 'expired = true', ['user_id = ? and id != ?', self.user_id, self.id]
|
||||
EmailToken.where(['user_id = ? and id != ?', self.user_id, self.id]).update_all 'expired = true'
|
||||
end
|
||||
|
||||
def self.token_length
|
||||
|
@ -43,7 +43,7 @@ class EmailToken < ActiveRecord::Base
|
|||
|
||||
user = email_token.user
|
||||
User.transaction do
|
||||
row_count = EmailToken.update_all 'confirmed = true', id: email_token.id, expired: false
|
||||
row_count = EmailToken.where(id: email_token.id, expired: false).update_all 'confirmed = true'
|
||||
if row_count == 1
|
||||
# If we are activating the user, send the welcome message
|
||||
user.send_welcome_message = !user.active?
|
||||
|
|
|
@ -27,9 +27,8 @@ InviteRedeemer = Struct.new(:invite) do
|
|||
end
|
||||
|
||||
def mark_invite_redeemed
|
||||
Invite.update_all('redeemed_at = CURRENT_TIMESTAMP',
|
||||
['id = ? AND redeemed_at IS NULL AND created_at >= ?',
|
||||
invite.id, SiteSetting.invite_expiry_days.days.ago])
|
||||
Invite.where(['id = ? AND redeemed_at IS NULL AND created_at >= ?',
|
||||
invite.id, SiteSetting.invite_expiry_days.days.ago]).update_all('redeemed_at = CURRENT_TIMESTAMP')
|
||||
end
|
||||
|
||||
def get_invited_user
|
||||
|
@ -62,7 +61,7 @@ InviteRedeemer = Struct.new(:invite) do
|
|||
end
|
||||
|
||||
def send_welcome_message
|
||||
if Invite.update_all(['user_id = ?', invited_user.id], ['email = ?', invite.email]) == 1
|
||||
if Invite.where(['email = ?', invite.email]).update_all(['user_id = ?', invited_user.id]) == 1
|
||||
invited_user.send_welcome_message = true
|
||||
end
|
||||
end
|
||||
|
|
|
@ -32,7 +32,7 @@ class Notification < ActiveRecord::Base
|
|||
end
|
||||
|
||||
def self.mark_posts_read(user, topic_id, post_numbers)
|
||||
Notification.update_all "read = 't'", user_id: user.id, topic_id: topic_id, post_number: post_numbers, read: false
|
||||
Notification.where(user_id: user.id, topic_id: topic_id, post_number: post_numbers, read: false).update_all "read = 't'"
|
||||
end
|
||||
|
||||
def self.interesting_after(min_date)
|
||||
|
|
|
@ -366,7 +366,7 @@ class Post < ActiveRecord::Base
|
|||
return if post.nil?
|
||||
post_reply = post.post_replies.new(reply_id: id)
|
||||
if post_reply.save
|
||||
Post.update_all ['reply_count = reply_count + 1'], id: post.id
|
||||
Post.where(id: post.id).update_all ['reply_count = reply_count + 1']
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
|
@ -63,9 +63,9 @@ class PostAction < ActiveRecord::Base
|
|||
moderator_id == -1 ? PostActionType.auto_action_flag_types.values : PostActionType.flag_types.values
|
||||
end
|
||||
|
||||
PostAction.update_all({ deleted_at: Time.zone.now, deleted_by: moderator_id }, { post_id: post.id, post_action_type_id: actions })
|
||||
PostAction.where({ post_id: post.id, post_action_type_id: actions }).update_all({ deleted_at: Time.zone.now, deleted_by: moderator_id })
|
||||
f = actions.map{|t| ["#{PostActionType.types[t]}_count", 0]}
|
||||
Post.with_deleted.update_all(Hash[*f.flatten], id: post.id)
|
||||
Post.where(id: post.id).with_deleted.update_all(Hash[*f.flatten])
|
||||
update_flagged_posts_count
|
||||
end
|
||||
|
||||
|
@ -224,19 +224,19 @@ class PostAction < ActiveRecord::Base
|
|||
case post_action_type
|
||||
when :vote
|
||||
# Voting also changes the sort_order
|
||||
Post.update_all ["vote_count = vote_count + :delta, sort_order = :max - (vote_count + :delta)",
|
||||
Post.where(id: post_id).update_all ["vote_count = vote_count + :delta, sort_order = :max - (vote_count + :delta)",
|
||||
delta: delta,
|
||||
max: Topic.max_sort_order], id: post_id
|
||||
max: Topic.max_sort_order]
|
||||
when :like
|
||||
# `like_score` is weighted higher for staff accounts
|
||||
Post.update_all ["like_count = like_count + :delta, like_score = like_score + :score_delta",
|
||||
Post.where(id: post_id).update_all ["like_count = like_count + :delta, like_score = like_score + :score_delta",
|
||||
delta: delta,
|
||||
score_delta: user.staff? ? delta * SiteSetting.staff_like_weight : delta], id: post_id
|
||||
score_delta: user.staff? ? delta * SiteSetting.staff_like_weight : delta]
|
||||
else
|
||||
Post.update_all ["#{column} = #{column} + ?", delta], id: post_id
|
||||
Post.where(id: post_id).update_all ["#{column} = #{column} + ?", delta]
|
||||
end
|
||||
|
||||
Topic.update_all ["#{column} = #{column} + ?", delta], id: post.topic_id
|
||||
Topic.where(id: post.topic_id).update_all ["#{column} = #{column} + ?", delta]
|
||||
|
||||
|
||||
if PostActionType.notify_flag_type_ids.include?(post_action_type_id)
|
||||
|
@ -271,10 +271,9 @@ class PostAction < ActiveRecord::Base
|
|||
reason = guess_hide_reason(old_flags)
|
||||
end
|
||||
|
||||
Post.update_all(["hidden = true, hidden_reason_id = COALESCE(hidden_reason_id, ?)", reason], id: post.id)
|
||||
Topic.update_all({ visible: false },
|
||||
["id = :topic_id AND NOT EXISTS(SELECT 1 FROM POSTS WHERE topic_id = :topic_id AND NOT hidden)",
|
||||
topic_id: post.topic_id])
|
||||
Post.where(id: post.id).update_all(["hidden = true, hidden_reason_id = COALESCE(hidden_reason_id, ?)", reason])
|
||||
Topic.where(["id = :topic_id AND NOT EXISTS(SELECT 1 FROM POSTS WHERE topic_id = :topic_id AND NOT hidden)",
|
||||
topic_id: post.topic_id]).update_all({ visible: false })
|
||||
|
||||
# inform user
|
||||
if post.user
|
||||
|
|
|
@ -67,7 +67,7 @@ class PostMover
|
|||
def move(post, post_number)
|
||||
@first_post_number_moved ||= post.post_number
|
||||
|
||||
Post.update_all(
|
||||
Post.where(id: post.id, topic_id: original_topic.id).update_all(
|
||||
[
|
||||
['post_number = :post_number',
|
||||
'topic_id = :topic_id',
|
||||
|
@ -75,9 +75,7 @@ class PostMover
|
|||
].join(', '),
|
||||
post_number: post_number,
|
||||
topic_id: destination_topic.id
|
||||
],
|
||||
id: post.id,
|
||||
topic_id: original_topic.id
|
||||
]
|
||||
)
|
||||
|
||||
# Move any links from the post to the new topic
|
||||
|
|
|
@ -16,7 +16,7 @@ class PostTiming < ActiveRecord::Base
|
|||
args)
|
||||
|
||||
if rows == 0
|
||||
Post.update_all 'reads = reads + 1', ['topic_id = :topic_id and post_number = :post_number', args]
|
||||
Post.where(['topic_id = :topic_id and post_number = :post_number', args]).update_all 'reads = reads + 1'
|
||||
exec_sql("INSERT INTO post_timings (topic_id, user_id, post_number, msecs)
|
||||
SELECT :topic_id, :user_id, :post_number, :msecs
|
||||
WHERE NOT EXISTS(SELECT 1 FROM post_timings
|
||||
|
|
|
@ -311,14 +311,14 @@ class Topic < ActiveRecord::Base
|
|||
old_category = category
|
||||
|
||||
if category_id.present? && category_id != cat.id
|
||||
Category.update_all 'topic_count = topic_count - 1', ['id = ?', category_id]
|
||||
Category.where(['id = ?', category_id]).update_all 'topic_count = topic_count - 1'
|
||||
end
|
||||
|
||||
self.category_id = cat.id
|
||||
save
|
||||
|
||||
CategoryFeaturedTopic.feature_topics_for(old_category)
|
||||
Category.update_all 'topic_count = topic_count + 1', id: cat.id
|
||||
Category.where(id: cat.id).update_all 'topic_count = topic_count + 1'
|
||||
CategoryFeaturedTopic.feature_topics_for(cat) unless old_category.try(:id) == cat.try(:id)
|
||||
end
|
||||
end
|
||||
|
@ -354,7 +354,7 @@ class Topic < ActiveRecord::Base
|
|||
if name.blank?
|
||||
if category_id.present?
|
||||
CategoryFeaturedTopic.feature_topics_for(category)
|
||||
Category.update_all 'topic_count = topic_count - 1', id: category_id
|
||||
Category.where(id: category_id).update_all 'topic_count = topic_count - 1'
|
||||
end
|
||||
self.category_id = nil
|
||||
save
|
||||
|
|
|
@ -87,7 +87,7 @@ class TopicUser < ActiveRecord::Base
|
|||
|
||||
attrs_sql = attrs_array.map { |t| "#{t[0]} = ?" }.join(", ")
|
||||
vals = attrs_array.map { |t| t[1] }
|
||||
rows = TopicUser.update_all([attrs_sql, *vals], topic_id: topic_id, user_id: user_id)
|
||||
rows = TopicUser.where(topic_id: topic_id, user_id: user_id).update_all([attrs_sql, *vals])
|
||||
|
||||
if rows == 0
|
||||
now = DateTime.now
|
||||
|
@ -109,7 +109,7 @@ class TopicUser < ActiveRecord::Base
|
|||
|
||||
def track_visit!(topic,user)
|
||||
now = DateTime.now
|
||||
rows = TopicUser.update_all({last_visited_at: now}, {topic_id: topic.id, user_id: user.id})
|
||||
rows = TopicUser.where({topic_id: topic.id, user_id: user.id}).update_all({last_visited_at: now})
|
||||
if rows == 0
|
||||
TopicUser.create(topic_id: topic.id, user_id: user.id, last_visited_at: now, first_visited_at: now)
|
||||
else
|
||||
|
|
|
@ -230,8 +230,7 @@ class User < ActiveRecord::Base
|
|||
end
|
||||
|
||||
def saw_notification_id(notification_id)
|
||||
User.update_all ["seen_notification_id = ?", notification_id],
|
||||
["seen_notification_id < ?", notification_id]
|
||||
User.where(["seen_notification_id < ?", notification_id]).update_all ["seen_notification_id = ?", notification_id]
|
||||
end
|
||||
|
||||
def publish_notifications_state
|
||||
|
@ -461,7 +460,7 @@ class User < ActiveRecord::Base
|
|||
if last_seen.present?
|
||||
diff = (Time.now.to_f - last_seen.to_f).round
|
||||
if diff > 0 && diff < MAX_TIME_READ_DIFF
|
||||
User.update_all ["time_read = time_read + ?", diff], id: id, time_read: time_read
|
||||
User.where(id: id, time_read: time_read).update_all ["time_read = time_read + ?", diff]
|
||||
end
|
||||
end
|
||||
$redis.set(last_seen_key, Time.now.to_f)
|
||||
|
@ -531,10 +530,10 @@ class User < ActiveRecord::Base
|
|||
|
||||
where_conditions = {notifications_reason_id: nil, user_id: id}
|
||||
if auto_track_topics_after_msecs < 0
|
||||
TopicUser.update_all({notification_level: TopicUser.notification_levels[:regular]}, where_conditions)
|
||||
TopicUser.where(where_conditions).update_all({notification_level: TopicUser.notification_levels[:regular]})
|
||||
else
|
||||
TopicUser.update_all(["notification_level = CASE WHEN total_msecs_viewed < ? THEN ? ELSE ? END",
|
||||
auto_track_topics_after_msecs, TopicUser.notification_levels[:regular], TopicUser.notification_levels[:tracking]], where_conditions)
|
||||
TopicUser.where(where_conditions).update_all(["notification_level = CASE WHEN total_msecs_viewed < ? THEN ? ELSE ? END",
|
||||
auto_track_topics_after_msecs, TopicUser.notification_levels[:regular], TopicUser.notification_levels[:tracking]])
|
||||
end
|
||||
end
|
||||
|
||||
|
|
|
@ -209,9 +209,9 @@ ORDER BY p.created_at desc
|
|||
|
||||
def self.update_like_count(user_id, action_type, delta)
|
||||
if action_type == LIKE
|
||||
User.update_all("likes_given = likes_given + #{delta.to_i}", id: user_id)
|
||||
User.where(id: user_id).update_all("likes_given = likes_given + #{delta.to_i}")
|
||||
elsif action_type == WAS_LIKED
|
||||
User.update_all("likes_received = likes_received + #{delta.to_i}", id: user_id)
|
||||
User.where(id: user_id).update_all("likes_received = likes_received + #{delta.to_i}")
|
||||
end
|
||||
end
|
||||
|
||||
|
|
|
@ -24,7 +24,7 @@ class View < ActiveRecord::Base
|
|||
|
||||
# Update the views count in the parent, if it exists.
|
||||
if parent.respond_to?(:views)
|
||||
parent.class.update_all 'views = views + 1', id: parent.id
|
||||
parent.class.where(id: parent.id).update_all 'views = views + 1'
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
|
@ -34,7 +34,15 @@ Discourse::Application.configure do
|
|||
|
||||
# we recommend you use mailcatcher https://github.com/sj26/mailcatcher
|
||||
config.action_mailer.delivery_method = :smtp
|
||||
config.action_mailer.smtp_settings = { address: "localhost", port: 1025 }
|
||||
config.action_mailer.smtp_settings = {
|
||||
:address => "smtp.mailgun.org",
|
||||
:port => 587,
|
||||
:domain => 'domain.com',
|
||||
:user_name => 'postmaster@domain.com',
|
||||
:password => 'secretpass',
|
||||
:authentication => 'plain',
|
||||
:enable_starttls_auto => true }
|
||||
|
||||
config.action_mailer.raise_delivery_errors = true
|
||||
|
||||
BetterErrors::Middleware.allow_ip! ENV['TRUSTED_IP'] if ENV['TRUSTED_IP']
|
||||
|
|
|
@ -1,9 +1,9 @@
|
|||
class ChangeSupressToSuppress < ActiveRecord::Migration
|
||||
def up
|
||||
SiteSetting.update_all({name: "supress_reply_directly_below"}, name: "suppress_reply_directly_below")
|
||||
SiteSetting.where(name: "suppress_reply_directly_below").update_all({name: "supress_reply_directly_below"})
|
||||
end
|
||||
|
||||
def down
|
||||
SiteSetting.update_all({name: "suppress_reply_directly_below"}, name: "supress_reply_directly_below")
|
||||
SiteSetting.where(name: "supress_reply_directly_below").update_all({name: "suppress_reply_directly_below"})
|
||||
end
|
||||
end
|
||||
|
|
|
@ -30,7 +30,7 @@ class PostDestroyer
|
|||
|
||||
# If the poster doesn't have any other posts in the topic, clear their posted flag
|
||||
unless Post.exists?(["topic_id = ? and user_id = ? and id <> ?", @post.topic_id, @post.user_id, @post.id])
|
||||
TopicUser.update_all 'posted = false', topic_id: @post.topic_id, user_id: @post.user_id
|
||||
TopicUser.where(topic_id: @post.topic_id, user_id: @post.user_id).update_all 'posted = false'
|
||||
end
|
||||
end
|
||||
|
||||
|
@ -40,7 +40,7 @@ class PostDestroyer
|
|||
@post.post_actions.map(&:trash!)
|
||||
|
||||
f = PostActionType.types.map{|k,v| ["#{k}_count", 0]}
|
||||
Post.with_deleted.update_all(Hash[*f.flatten], id: @post.id)
|
||||
Post.with_deleted.where(id: @post.id).update_all(Hash[*f.flatten])
|
||||
|
||||
@post.trash!
|
||||
|
||||
|
|
|
@ -28,13 +28,13 @@ class SiteSettings::DbProvider
|
|||
|
||||
return unless table_exists?
|
||||
|
||||
count = @model.update_all({
|
||||
count = @model.where({
|
||||
name: name
|
||||
}).update_all({
|
||||
name: name,
|
||||
value: value,
|
||||
data_type: data_type,
|
||||
updated_at: Time.now
|
||||
}, {
|
||||
name: name
|
||||
})
|
||||
|
||||
if count == 0
|
||||
|
|
|
@ -39,7 +39,7 @@ module Trashable
|
|||
#
|
||||
# Fixed in Rails 4
|
||||
#
|
||||
self.class.unscoped.update_all({deleted_at: nil}, id: self.id)
|
||||
self.class.unscoped.where(id: self.id).update_all({deleted_at: nil})
|
||||
raw_write_attribute :deleted_at, nil
|
||||
end
|
||||
|
||||
|
|
Loading…
Reference in a new issue