Commit 26959be0 authored by Douwe Maan's avatar Douwe Maan Committed by Rémy Coutable

Merge branch 'issue_13623' into 'master'

Show days remaining instead of elapsed time for Milestone.

Closes #13623

See merge request !2978
parent a8ca1d50
...@@ -5,6 +5,7 @@ v 8.5.2 ...@@ -5,6 +5,7 @@ v 8.5.2
- Don't repeat labels listed on Labels tab - Don't repeat labels listed on Labels tab
- Bring the "branded appearance" feature from EE to CE - Bring the "branded appearance" feature from EE to CE
- Fix error 500 when commenting on a commit - Fix error 500 when commenting on a commit
- Show days remaining instead of elapsed time for Milestone
- Fix broken icons on installations with relative URL (Artem Sidorenko) - Fix broken icons on installations with relative URL (Artem Sidorenko)
- Fix import from gitlab.com (KazSawada) - Fix import from gitlab.com (KazSawada)
- Improve implementation to check read access to forks and add pagination - Improve implementation to check read access to forks and add pagination
......
...@@ -39,7 +39,7 @@ li.milestone { ...@@ -39,7 +39,7 @@ li.milestone {
margin-right: 10px; margin-right: 10px;
} }
.time-elapsed { .remaining-days {
color: $orange-light; color: $orange-light;
} }
} }
......
...@@ -36,4 +36,14 @@ module MilestonesHelper ...@@ -36,4 +36,14 @@ module MilestonesHelper
options_from_collection_for_select(grouped_milestones, 'name', 'title', params[:milestone_title]) options_from_collection_for_select(grouped_milestones, 'name', 'title', params[:milestone_title])
end end
def milestone_remaining_days(milestone)
if milestone.expired?
content_tag(:strong, 'expired')
elsif milestone.due_date
days = milestone.remaining_days
content = content_tag(:strong, days)
content << " #{'day'.pluralize(days)} remaining"
end
end
end end
...@@ -110,17 +110,10 @@ class Milestone < ActiveRecord::Base ...@@ -110,17 +110,10 @@ class Milestone < ActiveRecord::Base
0 0
end end
# Returns the elapsed time (in percent) since the Milestone creation date until today. def remaining_days
# If the Milestone doesn't have a due_date then returns 0 since we can't calculate the elapsed time. return 0 if !due_date || expired?
# If the Milestone is overdue then it returns 100%.
def percent_time_used
return 0 unless due_date
return 100 if expired?
duration = ((created_at - due_date.to_datetime) / 1.day) (due_date - Date.today).to_i
days_elapsed = ((created_at - Time.now) / 1.day)
((days_elapsed.to_f / duration) * 100).floor
end end
def expires_at def expires_at
......
...@@ -60,9 +60,7 @@ ...@@ -60,9 +60,7 @@
%strong== #{@milestone.percent_complete}% %strong== #{@milestone.percent_complete}%
complete complete
%span.milestone-stat %span.milestone-stat
%span.time-elapsed %span.remaining-days= milestone_remaining_days(@milestone)
%strong== #{@milestone.percent_time_used}%
time elapsed
%span.pull-right.tab-issues-buttons %span.pull-right.tab-issues-buttons
- if can?(current_user, :create_issue, @project) - if can?(current_user, :create_issue, @project)
= link_to new_namespace_project_issue_path(@project.namespace, @project, issue: { milestone_id: @milestone.id }), class: "btn btn-grouped", title: "New Issue" do = link_to new_namespace_project_issue_path(@project.namespace, @project, issue: { milestone_id: @milestone.id }), class: "btn btn-grouped", title: "New Issue" do
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment