mirror of
https://github.com/discourse/discourse.git
synced 2025-02-25 18:55:32 -06:00
some minimal site settings diags
fix issue where days_visited was totally out of sync
This commit is contained in:
@@ -299,7 +299,7 @@ class User < ActiveRecord::Base
|
||||
|
||||
unless seen?(date) || has_visit_record?(date)
|
||||
adding_visit_record(date)
|
||||
User.increment_counter(:days_visited, 1)
|
||||
User.update_all('days_visited = days_visited + 1', id: self.id)
|
||||
end
|
||||
end
|
||||
|
||||
@@ -493,7 +493,7 @@ class User < ActiveRecord::Base
|
||||
.where(['id in (
|
||||
SELECT topic_id FROM posts p
|
||||
JOIN topics t2 ON t2.id = p.topic_id
|
||||
WHERE deleted_at IS NULL AND
|
||||
WHERE p.deleted_at IS NULL AND
|
||||
t2.user_id <> p.user_id AND
|
||||
p.user_id = ?
|
||||
)', self.id])
|
||||
|
||||
@@ -5,4 +5,17 @@ class UserVisit < ActiveRecord::Base
|
||||
def self.by_day(sinceDaysAgo=30)
|
||||
where("visited_at >= ?", sinceDaysAgo.days.ago).group(:visited_at).order(:visited_at).count
|
||||
end
|
||||
|
||||
def self.ensure_consistency!
|
||||
exec_sql <<SQL
|
||||
UPDATE users u set days_visited =
|
||||
(
|
||||
SELECT COUNT(*) FROM user_visits v WHERE v.user_id = u.id
|
||||
)
|
||||
WHERE days_visited <>
|
||||
(
|
||||
SELECT COUNT(*) FROM user_visits v WHERE v.user_id = u.id
|
||||
)
|
||||
SQL
|
||||
end
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user