Skip to content

Commit 181ea2e

Browse files
ishikawa999Redmine Patch Meetup
authored and
Redmine Patch Meetup
committed
Add event_status
1 parent f24c337 commit 181ea2e

File tree

1 file changed

+12
-1
lines changed

1 file changed

+12
-1
lines changed

app/models/issue.rb

+12-1
Original file line numberDiff line numberDiff line change
@@ -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

@@ -1465,6 +1465,17 @@ def css_classes(user=User.current)
14651465
s
14661466
end
14671467

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+
14681479
# Unassigns issues from +version+ if it's no longer shared with issue's project
14691480
def self.update_versions_from_sharing_change(version)
14701481
# Update issues assigned to the version

0 commit comments

Comments
 (0)