Patch #20687 » quota-issues.diff
| app/models/issue.rb | ||
|---|---|---|
| 395 | 395 |
'due_date', |
| 396 | 396 |
'done_ratio', |
| 397 | 397 |
'estimated_hours', |
| 398 |
'is_quota', |
|
| 398 | 399 |
'custom_field_values', |
| 399 | 400 |
'custom_fields', |
| 400 | 401 |
'lock_version', |
| db/migrate/20150907080738_add_is_quota_to_issue.rb | ||
|---|---|---|
| 1 |
class AddIsQuotaToIssue < ActiveRecord::Migration |
|
| 2 |
def change |
|
| 3 |
add_column :issues, :is_quota, :boolean |
|
| 4 |
end |
|
| 5 |
end |
|
| 0 |
- |
|
| app/views/issues/_attributes.html.erb | ||
|---|---|---|
| 64 | 64 |
<p><%= f.text_field :estimated_hours, :size => 3, :required => @issue.required_attribute?('estimated_hours') %> <%= l(:field_hours) %></p>
|
| 65 | 65 |
<% end %> |
| 66 | 66 | |
| 67 |
<% if @issue.safe_attribute? 'is_quota' %> |
|
| 68 |
<p><%= f.check_box :is_quota %></p> |
|
| 69 |
<% end %> |
|
| 70 | ||
| 67 | 71 |
<% if @issue.safe_attribute?('done_ratio') && Issue.use_field_for_done_ratio? %>
|
| 68 | 72 |
<p><%= f.select :done_ratio, ((0..10).to_a.collect {|r| ["#{r*10} %", r*10] }), :required => @issue.required_attribute?('done_ratio') %></p>
|
| 69 | 73 |
<% end %> |
| config/locales/en.yml | ||
|---|---|---|
| 307 | 307 |
field_assignable: Issues can be assigned to this role |
| 308 | 308 |
field_redirect_existing_links: Redirect existing links |
| 309 | 309 |
field_estimated_hours: Estimated time |
| 310 |
field_is_quota: Quota issue |
|
| 310 | 311 |
field_column_names: Columns |
| 311 | 312 |
field_time_entries: Log time |
| 312 | 313 |
field_time_zone: Time zone |
| 313 |
- |
|
| app/helpers/issues_helper.rb | ||
|---|---|---|
| 119 | 119 |
l_hours_short(issue.estimated_hours) |
| 120 | 120 |
else |
| 121 | 121 |
s = issue.estimated_hours.present? ? l_hours_short(issue.estimated_hours) : "" |
| 122 |
s << " (#{l(:label_total)}: #{l_hours_short(issue.total_estimated_hours)})"
|
|
| 122 |
s << " (#{l(issue.is_quota? ? :label_subtask_plural : :label_total)}: #{l_hours_short(issue.total_estimated_hours)})"
|
|
| 123 | 123 |
s.html_safe |
| 124 | 124 |
end |
| 125 | 125 |
end |
| app/models/issue.rb | ||
|---|---|---|
| 941 | 941 |
if leaf? |
| 942 | 942 |
estimated_hours |
| 943 | 943 |
else |
| 944 |
@total_estimated_hours ||= self_and_descendants.sum(:estimated_hours) |
|
| 944 |
targets = is_quota? ? descendants : self_and_descendants |
|
| 945 |
@total_estimated_hours ||= targets.sum(:estimated_hours) |
|
| 945 | 946 |
end |
| 946 | 947 |
end |
| 947 | 948 | |
| ... | ... | |
| 1194 | 1195 |
end |
| 1195 | 1196 | |
| 1196 | 1197 |
def done_ratio_derived? |
| 1197 |
!leaf? && Setting.parent_issue_done_ratio == 'derived' |
|
| 1198 |
!leaf? || is_quota? && Setting.parent_issue_done_ratio == 'derived'
|
|
| 1198 | 1199 |
end |
| 1199 | 1200 | |
| 1200 | 1201 |
def <=>(issue) |
| 1201 |
- |
|
| config/locales/de.yml | ||
|---|---|---|
| 307 | 307 |
field_editable: Bearbeitbar |
| 308 | 308 |
field_effective_date: Datum |
| 309 | 309 |
field_estimated_hours: Geschätzter Aufwand |
| 310 |
field_is_quota: Soll-Aufwand |
|
| 310 | 311 |
field_field_format: Format |
| 311 | 312 |
field_filename: Datei |
| 312 | 313 |
field_filesize: Größe |