##// END OF EJS Templates
Store relation type instead of i18n key in journals (#15704)....
Jean-Philippe Lang -
r12141:77665b52523d
parent child
Show More
@@ -0,0 +1,26
1 class StoreRelationTypeInJournalDetails < ActiveRecord::Migration
2
3 MAPPING = {
4 "label_relates_to" => "relates",
5 "label_duplicates" => "duplicates",
6 "label_duplicated_by" => "duplicated",
7 "label_blocks" => "blocks",
8 "label_blocked_by" => "blocked",
9 "label_precedes" => "precedes",
10 "label_follows" => "follows",
11 "label_copied_to" => "copied_to",
12 "label_copied_from" => "copied_from"
13 }
14
15 def up
16 StoreRelationTypeInJournalDetails::MAPPING.each do |prop_key, replacement|
17 JournalDetail.where(:property => 'relation', :prop_key => prop_key).update_all(:prop_key => replacement)
18 end
19 end
20
21 def down
22 StoreRelationTypeInJournalDetails::MAPPING.each do |prop_key, replacement|
23 JournalDetail.where(:property => 'relation', :prop_key => replacement).update_all(:prop_key => prop_key)
24 end
25 end
26 end
@@ -340,7 +340,8 module IssuesHelper
340 old_value = rel_issue.nil? ? "#{l(:label_issue)} ##{detail.old_value}" :
340 old_value = rel_issue.nil? ? "#{l(:label_issue)} ##{detail.old_value}" :
341 (no_html ? rel_issue : link_to_issue(rel_issue, :only_path => options[:only_path]))
341 (no_html ? rel_issue : link_to_issue(rel_issue, :only_path => options[:only_path]))
342 end
342 end
343 label = l(detail.prop_key.to_sym)
343 relation_type = IssueRelation::TYPES[detail.prop_key]
344 label = l(relation_type[:name]) if relation_type
344 end
345 end
345 call_hook(:helper_issues_show_detail_after_setting,
346 call_hook(:helper_issues_show_detail_after_setting,
346 {:detail => detail, :label => label, :value => value, :old_value => old_value })
347 {:detail => detail, :label => label, :value => value, :old_value => old_value })
@@ -185,12 +185,12 class IssueRelation < ActiveRecord::Base
185 def create_journal_after_create
185 def create_journal_after_create
186 journal = issue_from.init_journal(User.current)
186 journal = issue_from.init_journal(User.current)
187 journal.details << JournalDetail.new(:property => 'relation',
187 journal.details << JournalDetail.new(:property => 'relation',
188 :prop_key => label_for(issue_from).to_s,
188 :prop_key => relation_type_for(issue_from),
189 :value => issue_to.id)
189 :value => issue_to.id)
190 journal.save
190 journal.save
191 journal = issue_to.init_journal(User.current)
191 journal = issue_to.init_journal(User.current)
192 journal.details << JournalDetail.new(:property => 'relation',
192 journal.details << JournalDetail.new(:property => 'relation',
193 :prop_key => label_for(issue_to).to_s,
193 :prop_key => relation_type_for(issue_to),
194 :value => issue_from.id)
194 :value => issue_from.id)
195 journal.save
195 journal.save
196 end
196 end
@@ -198,12 +198,12 class IssueRelation < ActiveRecord::Base
198 def create_journal_after_delete
198 def create_journal_after_delete
199 journal = issue_from.init_journal(User.current)
199 journal = issue_from.init_journal(User.current)
200 journal.details << JournalDetail.new(:property => 'relation',
200 journal.details << JournalDetail.new(:property => 'relation',
201 :prop_key => label_for(issue_from).to_s,
201 :prop_key => relation_type_for(issue_from),
202 :old_value => issue_to.id)
202 :old_value => issue_to.id)
203 journal.save
203 journal.save
204 journal = issue_to.init_journal(User.current)
204 journal = issue_to.init_journal(User.current)
205 journal.details << JournalDetail.new(:property => 'relation',
205 journal.details << JournalDetail.new(:property => 'relation',
206 :prop_key => label_for(issue_to).to_s,
206 :prop_key => relation_type_for(issue_to),
207 :old_value => issue_from.id)
207 :old_value => issue_from.id)
208 journal.save
208 journal.save
209 end
209 end
@@ -213,7 +213,7 class IssuesHelperTest < ActionView::TestCase
213
213
214 def test_show_detail_relation_added
214 def test_show_detail_relation_added
215 detail = JournalDetail.new(:property => 'relation',
215 detail = JournalDetail.new(:property => 'relation',
216 :prop_key => 'label_precedes',
216 :prop_key => 'precedes',
217 :value => 1)
217 :value => 1)
218 assert_equal "Precedes Bug #1: Can't print recipes added", show_detail(detail, true)
218 assert_equal "Precedes Bug #1: Can't print recipes added", show_detail(detail, true)
219 assert_match %r{<strong>Precedes</strong> <i><a href="/issues/1" class=".+">Bug #1</a>: Can&#x27;t print recipes</i> added},
219 assert_match %r{<strong>Precedes</strong> <i><a href="/issues/1" class=".+">Bug #1</a>: Can&#x27;t print recipes</i> added},
@@ -224,7 +224,7 class IssuesHelperTest < ActionView::TestCase
224 inexistant_issue_number = 9999
224 inexistant_issue_number = 9999
225 assert_nil Issue.find_by_id(inexistant_issue_number)
225 assert_nil Issue.find_by_id(inexistant_issue_number)
226 detail = JournalDetail.new(:property => 'relation',
226 detail = JournalDetail.new(:property => 'relation',
227 :prop_key => 'label_precedes',
227 :prop_key => 'precedes',
228 :value => inexistant_issue_number)
228 :value => inexistant_issue_number)
229 assert_equal "Precedes Issue ##{inexistant_issue_number} added", show_detail(detail, true)
229 assert_equal "Precedes Issue ##{inexistant_issue_number} added", show_detail(detail, true)
230 assert_equal "<strong>Precedes</strong> <i>Issue ##{inexistant_issue_number}</i> added", show_detail(detail, false)
230 assert_equal "<strong>Precedes</strong> <i>Issue ##{inexistant_issue_number}</i> added", show_detail(detail, false)
@@ -233,7 +233,7 class IssuesHelperTest < ActionView::TestCase
233 def test_show_detail_relation_added_should_not_disclose_issue_that_is_not_visible
233 def test_show_detail_relation_added_should_not_disclose_issue_that_is_not_visible
234 issue = Issue.generate!(:is_private => true)
234 issue = Issue.generate!(:is_private => true)
235 detail = JournalDetail.new(:property => 'relation',
235 detail = JournalDetail.new(:property => 'relation',
236 :prop_key => 'label_precedes',
236 :prop_key => 'precedes',
237 :value => issue.id)
237 :value => issue.id)
238
238
239 assert_equal "Precedes Issue ##{issue.id} added", show_detail(detail, true)
239 assert_equal "Precedes Issue ##{issue.id} added", show_detail(detail, true)
@@ -242,7 +242,7 class IssuesHelperTest < ActionView::TestCase
242
242
243 def test_show_detail_relation_deleted
243 def test_show_detail_relation_deleted
244 detail = JournalDetail.new(:property => 'relation',
244 detail = JournalDetail.new(:property => 'relation',
245 :prop_key => 'label_precedes',
245 :prop_key => 'precedes',
246 :old_value => 1)
246 :old_value => 1)
247 assert_equal "Precedes deleted (Bug #1: Can't print recipes)", show_detail(detail, true)
247 assert_equal "Precedes deleted (Bug #1: Can't print recipes)", show_detail(detail, true)
248 assert_match %r{<strong>Precedes</strong> deleted \(<i><a href="/issues/1" class=".+">Bug #1</a>: Can&#x27;t print recipes</i>\)},
248 assert_match %r{<strong>Precedes</strong> deleted \(<i><a href="/issues/1" class=".+">Bug #1</a>: Can&#x27;t print recipes</i>\)},
@@ -253,7 +253,7 class IssuesHelperTest < ActionView::TestCase
253 inexistant_issue_number = 9999
253 inexistant_issue_number = 9999
254 assert_nil Issue.find_by_id(inexistant_issue_number)
254 assert_nil Issue.find_by_id(inexistant_issue_number)
255 detail = JournalDetail.new(:property => 'relation',
255 detail = JournalDetail.new(:property => 'relation',
256 :prop_key => 'label_precedes',
256 :prop_key => 'precedes',
257 :old_value => inexistant_issue_number)
257 :old_value => inexistant_issue_number)
258 assert_equal "Precedes deleted (Issue #9999)", show_detail(detail, true)
258 assert_equal "Precedes deleted (Issue #9999)", show_detail(detail, true)
259 assert_equal "<strong>Precedes</strong> deleted (<i>Issue #9999</i>)", show_detail(detail, false)
259 assert_equal "<strong>Precedes</strong> deleted (<i>Issue #9999</i>)", show_detail(detail, false)
@@ -262,7 +262,7 class IssuesHelperTest < ActionView::TestCase
262 def test_show_detail_relation_deleted_should_not_disclose_issue_that_is_not_visible
262 def test_show_detail_relation_deleted_should_not_disclose_issue_that_is_not_visible
263 issue = Issue.generate!(:is_private => true)
263 issue = Issue.generate!(:is_private => true)
264 detail = JournalDetail.new(:property => 'relation',
264 detail = JournalDetail.new(:property => 'relation',
265 :prop_key => 'label_precedes',
265 :prop_key => 'precedes',
266 :old_value => issue.id)
266 :old_value => issue.id)
267
267
268 assert_equal "Precedes deleted (Issue ##{issue.id})", show_detail(detail, true)
268 assert_equal "Precedes deleted (Issue ##{issue.id})", show_detail(detail, true)
@@ -183,11 +183,11 class IssueRelationTest < ActiveSupport::TestCase
183 assert_equal from.journals.size, (from_journals + 1)
183 assert_equal from.journals.size, (from_journals + 1)
184 assert_equal to.journals.size, (to_journals + 1)
184 assert_equal to.journals.size, (to_journals + 1)
185 assert_equal 'relation', from.journals.last.details.last.property
185 assert_equal 'relation', from.journals.last.details.last.property
186 assert_equal 'label_precedes', from.journals.last.details.last.prop_key
186 assert_equal 'precedes', from.journals.last.details.last.prop_key
187 assert_equal '2', from.journals.last.details.last.value
187 assert_equal '2', from.journals.last.details.last.value
188 assert_nil from.journals.last.details.last.old_value
188 assert_nil from.journals.last.details.last.old_value
189 assert_equal 'relation', to.journals.last.details.last.property
189 assert_equal 'relation', to.journals.last.details.last.property
190 assert_equal 'label_follows', to.journals.last.details.last.prop_key
190 assert_equal 'follows', to.journals.last.details.last.prop_key
191 assert_equal '1', to.journals.last.details.last.value
191 assert_equal '1', to.journals.last.details.last.value
192 assert_nil to.journals.last.details.last.old_value
192 assert_nil to.journals.last.details.last.old_value
193 end
193 end
@@ -205,11 +205,11 class IssueRelationTest < ActiveSupport::TestCase
205 assert_equal from.journals.size, (from_journals + 1)
205 assert_equal from.journals.size, (from_journals + 1)
206 assert_equal to.journals.size, (to_journals + 1)
206 assert_equal to.journals.size, (to_journals + 1)
207 assert_equal 'relation', from.journals.last.details.last.property
207 assert_equal 'relation', from.journals.last.details.last.property
208 assert_equal 'label_blocks', from.journals.last.details.last.prop_key
208 assert_equal 'blocks', from.journals.last.details.last.prop_key
209 assert_equal '9', from.journals.last.details.last.old_value
209 assert_equal '9', from.journals.last.details.last.old_value
210 assert_nil from.journals.last.details.last.value
210 assert_nil from.journals.last.details.last.value
211 assert_equal 'relation', to.journals.last.details.last.property
211 assert_equal 'relation', to.journals.last.details.last.property
212 assert_equal 'label_blocked_by', to.journals.last.details.last.prop_key
212 assert_equal 'blocked', to.journals.last.details.last.prop_key
213 assert_equal '10', to.journals.last.details.last.old_value
213 assert_equal '10', to.journals.last.details.last.old_value
214 assert_nil to.journals.last.details.last.value
214 assert_nil to.journals.last.details.last.value
215 end
215 end
General Comments 0
You need to be logged in to leave comments. Login now