Commit e51c37bdbda1822f93e1f8bcc21e970686eec464

Authored by Sergio Visinoni
1 parent a7d08169

Display Merge Requests <-> Milestone relations

Show the relation between Merge Requests and Mileston in different
places:
- Merge Request page
- Milestone list page
- Milestone details page
app/controllers/milestones_controller.rb
... ... @@ -32,6 +32,7 @@ class MilestonesController &lt; ProjectResourceController
32 32 def show
33 33 @issues = @milestone.issues
34 34 @users = @milestone.participants
  35 + @merge_requests = @milestone.merge_requests
35 36  
36 37 respond_to do |format|
37 38 format.html
... ...
app/models/milestone.rb
... ... @@ -3,6 +3,7 @@ class Milestone &lt; ActiveRecord::Base
3 3  
4 4 belongs_to :project
5 5 has_many :issues
  6 + has_many :merge_requests
6 7  
7 8 validates :title, presence: true
8 9 validates :project, presence: true
... ...
app/views/merge_requests/show/_mr_box.html.haml
... ... @@ -14,9 +14,13 @@
14 14 %strong.author= link_to_merge_request_author(@merge_request)
15 15  
16 16 - if @merge_request.assignee
17   - %cite.cgray and currently assigned to
  17 + %cite.cgray , currently assigned to
18 18 = image_tag gravatar_icon(@merge_request.assignee_email), width: 16, class: "lil_av"
19 19 %strong.author= link_to_merge_request_assignee(@merge_request)
  20 + - if @merge_request.milestone
  21 + - milestone = @merge_request.milestone
  22 + %cite.cgray and attached to milestone
  23 + %strong= link_to_gfm truncate(milestone.title, length: 20), project_milestone_path(milestone.project, milestone)
20 24  
21 25  
22 26 - if @merge_request.closed
... ...
app/views/milestones/_milestone.html.haml
... ... @@ -4,6 +4,10 @@
4 4 %span.btn.small.disabled.grouped= pluralize milestone.issues.count, 'issues'
5 5 - if milestone.issues.count > 0
6 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"
7 11 - if can? current_user, :admin_milestone, milestone.project
8 12 = link_to 'Edit', edit_project_milestone_path(milestone.project, milestone), class: "btn small edit-milestone-link grouped"
9 13 %h4
... ...
app/views/milestones/show.html.haml
... ... @@ -61,6 +61,22 @@
61 61 %br
62 62  
63 63 .span6
  64 + %table.milestone-merge_requests-filter
  65 + %thead
  66 + %th
  67 + %ul.nav.nav-pills
  68 + %li.active= link_to('Open Merge Requests', '#')
  69 + %li=link_to('All Merge Requests', '#')
  70 + - @merge_requests.each do |merge_request|
  71 + %tr{data: {closed: merge_request.closed}}
  72 + %td
  73 + = link_to [@project, merge_request] do
  74 + %span.badge.badge-info ##{merge_request.id}
  75 + &ndash;
  76 + = link_to_gfm truncate(merge_request.title, length: 60), [@project, merge_request]
  77 + %br
  78 +
  79 + .span6
64 80 %table
65 81 %thead
66 82 %th Participants
... ...