Feature #38416 » ability-to-disable-priority_id.patch
app/models/issue.rb | ||
---|---|---|
2050 | 2050 |
tracker.disabled_core_fields.each do |attribute| |
2051 | 2051 |
send "#{attribute}=", nil |
2052 | 2052 |
end |
2053 |
self.priority_id ||= IssuePriority.default&.id || IssuePriority.active.first.id |
|
2053 | 2054 |
self.done_ratio ||= 0 |
2054 | 2055 |
end |
2055 | 2056 |
end |
app/models/tracker.rb | ||
---|---|---|
20 | 20 |
class Tracker < ActiveRecord::Base |
21 | 21 |
include Redmine::SafeAttributes |
22 | 22 | |
23 |
CORE_FIELDS_UNDISABLABLE = %w(project_id tracker_id subject priority_id is_private).freeze
|
|
23 |
CORE_FIELDS_UNDISABLABLE = %w(project_id tracker_id subject is_private).freeze |
|
24 | 24 |
# Fields that can be disabled |
25 | 25 |
# Other (future) fields should be appended, not inserted! |
26 | 26 |
CORE_FIELDS = |
27 |
%w(assigned_to_id category_id fixed_version_id parent_issue_id |
|
27 |
%w(priority_id assigned_to_id category_id fixed_version_id parent_issue_id
|
|
28 | 28 |
start_date due_date estimated_hours done_ratio description).freeze |
29 | 29 |
CORE_FIELDS_ALL = (CORE_FIELDS_UNDISABLABLE + CORE_FIELDS).freeze |
30 | 30 |
app/views/issues/show.html.erb | ||
---|---|---|
47 | 47 |
<div class="attributes"> |
48 | 48 |
<%= issue_fields_rows do |rows| |
49 | 49 |
rows.left l(:field_status), @issue.status.name, :class => 'status' |
50 |
rows.left l(:field_priority), @issue.priority.name, :class => 'priority' |
|
51 | 50 | |
51 |
unless @issue.disabled_core_fields.include?('priority_id') |
|
52 |
rows.left l(:field_priority), @issue.priority.name, :class => 'priority' |
|
53 |
end |
|
52 | 54 |
unless @issue.disabled_core_fields.include?('assigned_to_id') |
53 | 55 |
rows.left l(:field_assigned_to), (@issue.assigned_to ? link_to_principal(@issue.assigned_to) : "-"), :class => 'assigned-to' |
54 | 56 |
end |
test/functional/trackers_controller_test.rb | ||
---|---|---|
209 | 209 |
assert_select 'input[name=?][value=category_id]', 'tracker[core_fields][]' |
210 | 210 |
assert_select 'input[name=?][value=category_id][checked=checked]', 'tracker[core_fields][]', 0 |
211 | 211 | |
212 |
assert_select 'input[name=?][value=priority_id]', 'tracker[core_fields][]' |
|
213 |
assert_select 'input[name=?][value=priority_id][checked=checked]', 'tracker[core_fields][]', 0 |
|
214 | ||
212 | 215 |
assert_select 'input[name=?][value=""][type=hidden]', 'tracker[core_fields][]' |
213 | 216 |
end |
214 | 217 |
test/unit/issue_test.rb | ||
---|---|---|
83 | 83 |
assert_save issue |
84 | 84 |
end |
85 | 85 | |
86 |
def test_default_priority_should_be_set_when_priority_field_is_disabled |
|
87 |
tracker = Tracker.find(1) |
|
88 |
tracker.core_fields = tracker.core_fields - ['priority_id'] |
|
89 |
tracker.save! |
|
90 | ||
91 |
issue = Issue.new(:project_id => 1, :tracker_id => tracker.id, :author_id => 1, :subject => 'priority_id is disabled') |
|
92 |
issue.save! |
|
93 |
assert_equal IssuePriority.default, issue.priority |
|
94 |
end |
|
95 | ||
86 | 96 |
def test_start_date_format_should_be_validated |
87 | 97 |
set_language_if_valid 'en' |
88 | 98 |
['2012', 'ABC', '2012-15-20'].each do |invalid_date| |