@@ -47,7 +47,7 @@ class Issue < ActiveRecord::Base
47
47
:preload => [ :project , :status , :tracker ] ,
48
48
:scope => lambda { |options | options [ :open_issues ] ? self . open : self . all }
49
49
50
- acts_as_event :title => Proc . new { |o | "#{ o . tracker . name } ##{ o . id } (#{ o . status } ): #{ o . subject } " } ,
50
+ acts_as_event :title => Proc . new { |o | "#{ o . tracker . name } ##{ o . id } (#{ o . event_status } ): #{ o . subject } " } ,
51
51
:url => Proc . new { |o | { :controller => 'issues' , :action => 'show' , :id => o . id } } ,
52
52
:type => Proc . new { |o | 'issue' + ( o . closed? ? '-closed' : '' ) }
53
53
@@ -1465,6 +1465,17 @@ def css_classes(user=User.current)
1465
1465
s
1466
1466
end
1467
1467
1468
+ # Retrieves issue's original status from journal if modified since issue creation
1469
+ # TODO: 書けそうだったらissue_test.rbにテスト追加
1470
+ def event_status
1471
+ changed_statuses = JournalDetail . joins ( "LEFT OUTER JOIN #{ Journal . table_name } ON #{ JournalDetail . table_name } .journal_id = #{ Journal . table_name } .id" ) .
1472
+ where ( "#{ Journal . table_name } .journalized_id = ? AND #{ Journal . table_name } .journalized_type = 'Issue' AND #{ JournalDetail . table_name } .prop_key = 'status_id'" , self . id ) .
1473
+ order ( "#{ Journal . table_name } .created_on" )
1474
+
1475
+ initial_status_id = changed_statuses . first . try ( :old_value )
1476
+ initial_status_id ? IssueStatus . find_by_id ( initial_status_id . to_i ) : self . status
1477
+ end
1478
+
1468
1479
# Unassigns issues from +version+ if it's no longer shared with issue's project
1469
1480
def self . update_versions_from_sharing_change ( version )
1470
1481
# Update issues assigned to the version
0 commit comments