Class: IssuePriority

Inherits:
Enumeration show all
Defined in:
app/models/issue_priority.rb

Overview

Redmine - project management software Copyright © 2006- Jean-Philippe Lang

This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.

Constant Summary collapse

OptionName =
:enumeration_issue_priorities

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from Enumeration

#<=>, #check_default, default, #destroy, #destroy_without_reassign, get_subclasses, #in_use?, #is_override?, overriding_change?, same_active_state?, same_custom_values?, #to_s

Methods included from Redmine::SubclassFactory

included

Methods inherited from ApplicationRecord

human_attribute_name

Class Method Details

.clear_position_namesObject

Clears position_name for all priorities Called from migration 20121026003537_populate_enumerations_position_name



51
52
53
# File 'app/models/issue_priority.rb', line 51

def self.clear_position_names
  update_all :position_name => nil
end

.compute_position_namesObject

Updates position_name for active priorities Called from migration 20121026003537_populate_enumerations_position_name



72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
# File 'app/models/issue_priority.rb', line 72

def self.compute_position_names
  priorities = active
  if priorities.any?
    default_position = default_or_middle.position
    priorities.each_with_index do |priority, index|
      name =
        case
        when priority.position == default_position
          "default"
        when priority.position < default_position
          index == 0 ? "lowest" : "low#{index+1}"
        else
          index == (priorities.size - 1) ? "highest" : "high#{priorities.size - index}"
        end

      where(:id => priority.id).update_all({:position_name => name})
    end
  end
end

.default_or_middleObject



55
56
57
58
59
60
# File 'app/models/issue_priority.rb', line 55

def self.default_or_middle
  default || begin
    priorities = active
    priorities[(priorities.size - 1) / 2]
  end
end

Instance Method Details

#css_classesObject



45
46
47
# File 'app/models/issue_priority.rb', line 45

def css_classes
  "priority-#{id} priority-#{position_name}"
end

#high?Boolean

Returns:

  • (Boolean)


62
63
64
# File 'app/models/issue_priority.rb', line 62

def high?
  position > self.class.default_or_middle.position
end

#low?Boolean

Returns:

  • (Boolean)


66
67
68
# File 'app/models/issue_priority.rb', line 66

def low?
  position < self.class.default_or_middle.position
end

#objects_countObject



37
38
39
# File 'app/models/issue_priority.rb', line 37

def objects_count
  issues.count
end

#option_nameObject



33
34
35
# File 'app/models/issue_priority.rb', line 33

def option_name
  OptionName
end

#transfer_relations(to) ⇒ Object



41
42
43
# File 'app/models/issue_priority.rb', line 41

def transfer_relations(to)
  issues.update_all(:priority_id => to.id)
end