Class: IssueStatus
- Inherits:
-
ActiveRecord::Base
- Object
- ActiveRecord::Base
- IssueStatus
- Defined in:
- app/models/issue_status.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.
Class Method Summary collapse
- .new_statuses_allowed(status, roles, tracker, author = false, assignee = false) ⇒ Object
-
.update_issue_done_ratios ⇒ Object
Update all the
Issues
setting their done_ratio to the value of theirIssueStatus
.
Instance Method Summary collapse
- #<=>(status) ⇒ Object
-
#new_statuses_allowed_to(roles, tracker, author = false, assignee = false) ⇒ Object
(also: #find_new_statuses_allowed_to)
Returns an array of all statuses the given role can switch to.
- #to_s ⇒ Object
Class Method Details
.new_statuses_allowed(status, roles, tracker, author = false, assignee = false) ⇒ Object
53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 |
# File 'app/models/issue_status.rb', line 53 def self.new_statuses_allowed(status, roles, tracker, =false, assignee=false) if roles.present? && tracker status_id = status.try(:id) || 0 scope = IssueStatus. joins(:workflow_transitions_as_new_status). where(:workflows => {:old_status_id => status_id, :role_id => roles.map(&:id), :tracker_id => tracker.id}) unless && assignee if || assignee scope = scope.where("author = ? OR assignee = ?", , assignee) else scope = scope.where("author = ? AND assignee = ?", false, false) end end scope.uniq.to_a.sort else [] end end |
.update_issue_done_ratios ⇒ Object
Update all the Issues
setting their done_ratio to the value of
their IssueStatus
37 38 39 40 41 42 43 44 45 |
# File 'app/models/issue_status.rb', line 37 def self.update_issue_done_ratios if Issue.use_status_for_done_ratio? IssueStatus.where("default_done_ratio >= 0").each do |status| Issue.where({:status_id => status.id}).update_all({:done_ratio => status.default_done_ratio}) end end return Issue.use_status_for_done_ratio? end |
Instance Method Details
#<=>(status) ⇒ Object
75 76 77 |
# File 'app/models/issue_status.rb', line 75 def <=>(status) position <=> status.position end |
#new_statuses_allowed_to(roles, tracker, author = false, assignee = false) ⇒ Object Also known as: find_new_statuses_allowed_to
Returns an array of all statuses the given role can switch to
48 49 50 |
# File 'app/models/issue_status.rb', line 48 def new_statuses_allowed_to(roles, tracker, =false, assignee=false) self.class.new_statuses_allowed(self, roles, tracker, , assignee) end |
#to_s ⇒ Object
79 |
# File 'app/models/issue_status.rb', line 79 def to_s; name end |