@@ -47,7 +47,7 @@ class Issue < ActiveRecord::Base
4747 :preload => [ :project , :status , :tracker ] ,
4848 :scope => lambda { |options | options [ :open_issues ] ? self . open : self . all }
4949
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 } " } ,
5151 :url => Proc . new { |o | { :controller => 'issues' , :action => 'show' , :id => o . id } } ,
5252 :type => Proc . new { |o | 'issue' + ( o . closed? ? '-closed' : '' ) }
5353
@@ -1453,6 +1453,17 @@ def css_classes(user=User.current)
14531453 s
14541454 end
14551455
1456+ # Retrieves issue's original status from journal if modified since issue creation
1457+ # TODO: 書けそうだったらissue_test.rbにテスト追加
1458+ def event_status
1459+ changed_statuses = JournalDetail . joins ( "LEFT OUTER JOIN #{ Journal . table_name } ON #{ JournalDetail . table_name } .journal_id = #{ Journal . table_name } .id" ) .
1460+ where ( "#{ Journal . table_name } .journalized_id = ? AND #{ Journal . table_name } .journalized_type = 'Issue' AND #{ JournalDetail . table_name } .prop_key = 'status_id'" , self . id ) .
1461+ order ( "#{ Journal . table_name } .created_on" )
1462+
1463+ initial_status_id = changed_statuses . first . try ( :old_value )
1464+ initial_status_id ? IssueStatus . find_by_id ( initial_status_id . to_i ) : self . status
1465+ end
1466+
14561467 # Unassigns issues from +version+ if it's no longer shared with issue's project
14571468 def self . update_versions_from_sharing_change ( version )
14581469 # Update issues assigned to the version
0 commit comments