FIX: Always use site default locale when creating notes
This commit is contained in:
parent
0ad4c3b3f8
commit
ef36fc39da
16
plugin.rb
16
plugin.rb
|
@ -229,7 +229,9 @@ after_initialize do
|
||||||
user = User.find_by_id(self.user_id)
|
user = User.find_by_id(self.user_id)
|
||||||
created_by_user = User.find_by_id(self.created_by_id)
|
created_by_user = User.find_by_id(self.created_by_id)
|
||||||
warning_topic = Topic.find_by_id(self.topic_id)
|
warning_topic = Topic.find_by_id(self.topic_id)
|
||||||
raw_note = I18n.t("user_notes.official_warning", username: created_by_user.username, warning_link: "[#{warning_topic.title}](#{warning_topic.url})")
|
raw_note = I18n.with_locale(SiteSetting.default_locale) do
|
||||||
|
I18n.t("user_notes.official_warning", username: created_by_user.username, warning_link: "[#{warning_topic.title}](#{warning_topic.url})")
|
||||||
|
end
|
||||||
::DiscourseUserNotes.add_note(
|
::DiscourseUserNotes.add_note(
|
||||||
user,
|
user,
|
||||||
raw_note,
|
raw_note,
|
||||||
|
@ -242,7 +244,13 @@ after_initialize do
|
||||||
return unless self.action == UserHistory.actions[:suspend_user]
|
return unless self.action == UserHistory.actions[:suspend_user]
|
||||||
target_user = User.find_by_id(self.target_user_id)
|
target_user = User.find_by_id(self.target_user_id)
|
||||||
created_by_user = User.find_by_id(self.acting_user_id)
|
created_by_user = User.find_by_id(self.acting_user_id)
|
||||||
raw_note = I18n.t("user_notes.user_suspended", username: created_by_user.username, suspended_till: I18n.l(target_user.suspended_till, format: :date_only), reason: self.details)
|
raw_note = I18n.with_locale(SiteSetting.default_locale) do
|
||||||
|
I18n.t("user_notes.user_suspended",
|
||||||
|
username: created_by_user.username,
|
||||||
|
suspended_till: I18n.l(target_user.suspended_till, format: :date_only),
|
||||||
|
reason: self.details
|
||||||
|
)
|
||||||
|
end
|
||||||
::DiscourseUserNotes.add_note(
|
::DiscourseUserNotes.add_note(
|
||||||
target_user,
|
target_user,
|
||||||
raw_note,
|
raw_note,
|
||||||
|
@ -253,12 +261,14 @@ after_initialize do
|
||||||
end
|
end
|
||||||
|
|
||||||
on(:user_silenced) do |details|
|
on(:user_silenced) do |details|
|
||||||
raw_note = I18n.t(
|
raw_note = I18n.with_locale(SiteSetting.default_locale) do
|
||||||
|
I18n.t(
|
||||||
"user_notes.user_silenced",
|
"user_notes.user_silenced",
|
||||||
username: details[:silenced_by]&.username || '',
|
username: details[:silenced_by]&.username || '',
|
||||||
silenced_till: I18n.l(details[:silenced_till], format: :date_only),
|
silenced_till: I18n.l(details[:silenced_till], format: :date_only),
|
||||||
reason: details[:reason]
|
reason: details[:reason]
|
||||||
)
|
)
|
||||||
|
end
|
||||||
note_args = {}
|
note_args = {}
|
||||||
if post = Post.with_deleted.where(id: details[:post_id]).first
|
if post = Post.with_deleted.where(id: details[:post_id]).first
|
||||||
note_args = { post_id: post.id, topic_id: post.topic_id }
|
note_args = { post_id: post.id, topic_id: post.topic_id }
|
||||||
|
|
|
@ -17,6 +17,19 @@ describe UserHistory do
|
||||||
|
|
||||||
expect(PluginStore.get('user_notes', "notes:#{user.id}")).to be_present
|
expect(PluginStore.get('user_notes', "notes:#{user.id}")).to be_present
|
||||||
end
|
end
|
||||||
|
|
||||||
|
it "should use system language" do
|
||||||
|
freeze_time
|
||||||
|
|
||||||
|
UserHistory.create!(action: UserHistory.actions[:suspend_user], target_user_id: user.id, acting_user_id: admin.id)
|
||||||
|
|
||||||
|
I18n.with_locale(:fr) do # Simulate request from french user
|
||||||
|
UserHistory.create!(action: UserHistory.actions[:suspend_user], target_user_id: user.id, acting_user_id: admin.id)
|
||||||
|
end
|
||||||
|
|
||||||
|
notes = PluginStore.get('user_notes', "notes:#{user.id}")
|
||||||
|
expect(notes[0]['raw']).to eq(notes[1]['raw'])
|
||||||
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -18,6 +18,20 @@ describe UserWarning do
|
||||||
|
|
||||||
expect(PluginStore.get('user_notes', "notes:#{user.id}")).to be_present
|
expect(PluginStore.get('user_notes', "notes:#{user.id}")).to be_present
|
||||||
end
|
end
|
||||||
|
|
||||||
|
it "should use system language" do
|
||||||
|
freeze_time
|
||||||
|
|
||||||
|
warning = UserWarning.create!(topic_id: topic.id, user_id: user.id, created_by_id: admin.id)
|
||||||
|
warning.destroy!
|
||||||
|
|
||||||
|
I18n.with_locale(:fr) do # Simulate request from french user
|
||||||
|
UserWarning.create(topic_id: topic.id, user_id: user.id, created_by_id: admin.id)
|
||||||
|
end
|
||||||
|
|
||||||
|
notes = PluginStore.get('user_notes', "notes:#{user.id}")
|
||||||
|
expect(notes[0]['raw']).to eq(notes[1]['raw'])
|
||||||
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
Loading…
Reference in New Issue