Commit d4e070cfadcccfe503402dd5d0524ca102d372d4

Authored by randx
1 parent ecdf778e

Improve styles. Add merge request completness to milestone percentage

app/assets/stylesheets/common.scss
... ... @@ -670,3 +670,8 @@ pre {
670 670 padding:0;
671 671 }
672 672 }
  673 +
  674 +.milestone .progress {
  675 + margin-bottom: 0;
  676 + margin-top:4px;
  677 +}
... ...
app/contexts/merge_requests_load_context.rb
  1 +# Build collection of Merge Requests
  2 +# based on filtering passed via params for @project
1 3 class MergeRequestsLoadContext < BaseContext
2 4 def execute
3 5 type = params[:f]
4 6  
5   - merge_requests = @project.merge_requests
  7 + merge_requests = project.merge_requests
6 8  
7 9 merge_requests = case type
8 10 when 'all' then merge_requests
9 11 when 'closed' then merge_requests.closed
10 12 when 'assigned-to-me' then merge_requests.opened.assigned(current_user)
11 13 else merge_requests.opened
12   - end.page(params[:page]).per(20)
  14 + end
13 15  
14   - merge_requests.includes(:author, :project).order("closed, created_at desc")
15   -
16   - @merge_requests = merge_requests
  16 + merge_requests = merge_requests.page(params[:page]).per(20)
  17 + merge_requests = merge_requests.includes(:author, :project).order("closed, created_at desc")
17 18  
18 19 # Filter by specific assignee_id (or lack thereof)?
19 20 if params[:assignee_id].present?
20   - @merge_requests = merge_requests.where(assignee_id: (params[:assignee_id] == '0' ? nil : params[:assignee_id]))
  21 + merge_requests = merge_requests.where(assignee_id: (params[:assignee_id] == '0' ? nil : params[:assignee_id]))
21 22 end
22 23  
23 24 # Filter by specific milestone_id (or lack thereof)?
24 25 if params[:milestone_id].present?
25   - @merge_requests = merge_requests.where(milestone_id: (params[:milestone_id] == '0' ? nil : params[:milestone_id]))
  26 + merge_requests = merge_requests.where(milestone_id: (params[:milestone_id] == '0' ? nil : params[:milestone_id]))
26 27 end
27   - @merge_requests
  28 +
  29 + merge_requests
28 30 end
29 31 end
... ...
app/models/milestone.rb
... ... @@ -16,8 +16,16 @@ class Milestone &lt; ActiveRecord::Base
16 16 User.where(id: issues.pluck(:assignee_id))
17 17 end
18 18  
19   - def percent_complete
  19 + def issues_percent_complete
20 20 ((self.issues.closed.count * 100) / self.issues.count).abs
  21 + end
  22 +
  23 + def merge_requests_percent_complete
  24 + ((self.merge_requests.closed.count * 100) / self.merge_requests.count).abs
  25 + end
  26 +
  27 + def percent_complete
  28 + (issues_percent_complete + merge_requests_percent_complete) / 2
21 29 rescue ZeroDivisionError
22 30 100
23 31 end
... ...
app/views/milestones/_milestone.html.haml
1 1 %li{class: "milestone", id: dom_id(milestone) }
2 2 .right
3   - - if milestone.issues.any?
4   - %span.btn.small.disabled.grouped= pluralize milestone.issues.count, 'issues'
5   - - if milestone.issues.count > 0
6   - = link_to 'Browse Issues', project_issues_path(milestone.project, milestone_id: milestone.id), class: "btn small grouped"
7   - - if milestone.merge_requests.any?
8   - %span.btn.small.disabled.grouped= pluralize milestone.issues.count, 'Merge Requests'
9   - - if milestone.merge_requests.count > 0
10   - = link_to 'Browse Merge Requests', project_merge_requests_path(milestone.project, milestone_id: milestone.id), class: "btn small grouped"
11 3 - if can? current_user, :admin_milestone, milestone.project
12   - = link_to 'Edit', edit_project_milestone_path(milestone.project, milestone), class: "btn small edit-milestone-link grouped"
  4 + = link_to edit_project_milestone_path(milestone.project, milestone), class: "btn small edit-milestone-link grouped" do
  5 + %i.icon-edit
  6 + Edit
13 7 %h4
14   - = link_to_gfm truncate(milestone.title, length: 100), project_milestone_path(milestone.project, milestone), class: "row_title"
  8 + = link_to_gfm truncate(milestone.title, length: 100), project_milestone_path(milestone.project, milestone)
15 9 %small
16 10 = milestone.expires_at
17   - %br
18   - .progress.progress-success.span3
  11 + .row
  12 + .progress.progress-success.span4
19 13 .bar{style: "width: #{milestone.percent_complete}%;"}
  14 + .span6
  15 + - if milestone.issues.any?
  16 + = link_to project_issues_path(milestone.project, milestone_id: milestone.id), class: "padded" do
  17 + %strong= pluralize milestone.issues.count, 'Issue'
20 18  
21   -
22   - &nbsp;
  19 + - if milestone.merge_requests.any?
  20 + = link_to project_merge_requests_path(milestone.project, milestone_id: milestone.id), class: "padded" do
  21 + %strong= pluralize milestone.issues.count, 'Merge Request'
... ...