Redmine 4.1.7
This commit is contained in:
parent
55458d3479
commit
3ca3c37487
103 changed files with 2426 additions and 431 deletions
|
@ -201,6 +201,11 @@ class Issue < ActiveRecord::Base
|
|||
user_tracker_permission?(user, :delete_issues)
|
||||
end
|
||||
|
||||
# Overrides Redmine::Acts::Attachable::InstanceMethods#attachments_deletable?
|
||||
def attachments_deletable?(user=User.current)
|
||||
attributes_editable?(user)
|
||||
end
|
||||
|
||||
def initialize(attributes=nil, *args)
|
||||
super
|
||||
if new_record?
|
||||
|
@ -471,7 +476,6 @@ class Issue < ActiveRecord::Base
|
|||
'custom_field_values',
|
||||
'custom_fields',
|
||||
'lock_version',
|
||||
'notes',
|
||||
:if => lambda {|issue, user| issue.new_record? || issue.attributes_editable?(user)})
|
||||
safe_attributes(
|
||||
'notes',
|
||||
|
@ -722,7 +726,7 @@ class Issue < ActiveRecord::Base
|
|||
errors.add :start_date, :earlier_than_minimum_start_date, :date => format_date(soonest_start)
|
||||
end
|
||||
|
||||
if fixed_version
|
||||
if project && fixed_version
|
||||
if !assignable_versions.include?(fixed_version)
|
||||
errors.add :fixed_version_id, :inclusion
|
||||
elsif reopening? && fixed_version.closed?
|
||||
|
@ -737,7 +741,7 @@ class Issue < ActiveRecord::Base
|
|||
end
|
||||
end
|
||||
|
||||
if assigned_to_id_changed? && assigned_to_id.present?
|
||||
if project && assigned_to_id_changed? && assigned_to_id.present?
|
||||
unless assignable_users.include?(assigned_to)
|
||||
errors.add :assigned_to_id, :invalid
|
||||
end
|
||||
|
@ -937,6 +941,8 @@ class Issue < ActiveRecord::Base
|
|||
|
||||
# Users the issue can be assigned to
|
||||
def assignable_users
|
||||
return [] if project.nil?
|
||||
|
||||
users = project.assignable_users(tracker).to_a
|
||||
users << author if author && author.active?
|
||||
if assigned_to_id_was.present? && assignee = Principal.find_by_id(assigned_to_id_was)
|
||||
|
@ -948,6 +954,7 @@ class Issue < ActiveRecord::Base
|
|||
# Versions that the issue can be assigned to
|
||||
def assignable_versions
|
||||
return @assignable_versions if @assignable_versions
|
||||
return [] if project.nil?
|
||||
|
||||
versions = project.shared_versions.open.to_a
|
||||
if fixed_version
|
||||
|
@ -1704,12 +1711,12 @@ class Issue < ActiveRecord::Base
|
|||
if children.any?
|
||||
child_with_total_estimated_hours = children.select {|c| c.total_estimated_hours.to_f > 0.0}
|
||||
if child_with_total_estimated_hours.any?
|
||||
average = child_with_total_estimated_hours.map(&:total_estimated_hours).sum.to_f / child_with_total_estimated_hours.count
|
||||
average = child_with_total_estimated_hours.map(&:total_estimated_hours).sum.to_d / child_with_total_estimated_hours.count
|
||||
else
|
||||
average = 1.0
|
||||
average = 1.0.to_d
|
||||
end
|
||||
done = children.map {|c|
|
||||
estimated = c.total_estimated_hours.to_f
|
||||
estimated = (c.total_estimated_hours || 0.0).to_d
|
||||
estimated = average unless estimated > 0.0
|
||||
ratio = c.closed? ? 100 : (c.done_ratio || 0)
|
||||
estimated * ratio
|
||||
|
@ -1734,8 +1741,8 @@ class Issue < ActiveRecord::Base
|
|||
# a different project and that is not systemwide shared
|
||||
Issue.joins(:project, :fixed_version).
|
||||
where("#{Issue.table_name}.fixed_version_id IS NOT NULL" +
|
||||
" AND #{Issue.table_name}.project_id <> #{Version.table_name}.project_id" +
|
||||
" AND #{Version.table_name}.sharing <> 'system'").
|
||||
" AND #{Issue.table_name}.project_id <> #{::Version.table_name}.project_id" +
|
||||
" AND #{::Version.table_name}.sharing <> 'system'").
|
||||
where(conditions).each do |issue|
|
||||
next if issue.project.nil? || issue.fixed_version.nil?
|
||||
unless issue.project.shared_versions.include?(issue.fixed_version)
|
||||
|
@ -1756,7 +1763,7 @@ class Issue < ActiveRecord::Base
|
|||
|
||||
# Callback on file attachment
|
||||
def attachment_added(attachment)
|
||||
if current_journal && !attachment.new_record?
|
||||
if current_journal && !attachment.new_record? && !copy?
|
||||
current_journal.journalize_attachment(attachment, :added)
|
||||
end
|
||||
end
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue