Class: IssuePriority

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

Overview

Redmine - project management software Copyright (C) 2006-2020 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

Class Method Details

.clear_position_namesObject

Clears position_name for all priorities Called from migration 20121026003537_populate_enumerations_position_name


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

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


67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
# File 'app/models/issue_priority.rb', line 67

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


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

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

Instance Method Details

#css_classesObject


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

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

#high?Boolean

Returns:

  • (Boolean)

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

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

#low?Boolean

Returns:

  • (Boolean)

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

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

#objects_countObject


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

def objects_count
  issues.count
end

#option_nameObject


28
29
30
# File 'app/models/issue_priority.rb', line 28

def option_name
  OptionName
end

#transfer_relations(to) ⇒ Object


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

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