Project

General

Profile

Patch #27124 » issue.rb.patch

Pavel Rosický, 2017-10-05 03:13

View differences:

issue.rb (working copy)
104 104
    end
105 105
  }
106 106

  
107
  before_save { @in_before_save_callback = true  }
108
  after_save  { @in_before_save_callback = false }
109

  
107 110
  before_validation :default_assign, on: :create
108 111
  before_validation :clear_disabled_fields
109 112
  before_save :close_duplicates, :update_done_ratio_from_issue_status,
......
1009 1012

  
1010 1013
  # Returns the original tracker
1011 1014
  def tracker_was
1012
    Tracker.find_by_id(tracker_id_in_database)
1015
    Tracker.find_by(:id => tracker_id_was)
1013 1016
  end
1014 1017

  
1015
  # Returns the previous assignee whenever we're before the save
1016
  # or in after_* callbacks
1018
  # Returns the previous assignee
1017 1019
  def previous_assignee
1018
    # This is how ActiveRecord::AttributeMethods::Dirty checks if we're in a after_* callback
1019
    if previous_assigned_to_id = mutation_tracker.equal?(mutations_from_database) ? assigned_to_id_in_database : assigned_to_id_before_last_save
1020
      Principal.find_by_id(previous_assigned_to_id)
1021
    end
1020
    Principal.find_by(:id => @in_before_save_callback ? assigned_to_id_before_last_save : assigned_to_id_was)
1022 1021
  end
1023 1022

  
1024 1023
  # Returns the users that should be notified
    (1-1/1)