Class: IssuePriority

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

Overview

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

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



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

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



50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
# File 'app/models/issue_priority.rb', line 50

def self.compute_position_names
  priorities = where(:active => true).sort_by(&:position)
  if priorities.any?
    default = priorities.detect(&:is_default?) || priorities[(priorities.size - 1) / 2]
    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

Instance Method Details

#css_classesObject



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

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

#objects_countObject



30
31
32
# File 'app/models/issue_priority.rb', line 30

def objects_count
  issues.count
end

#option_nameObject



26
27
28
# File 'app/models/issue_priority.rb', line 26

def option_name
  OptionName
end

#transfer_relations(to) ⇒ Object



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

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