OSDN Git Service

Display Merge Requests <-> Milestone relations
authorSergio Visinoni <sergio.visinoni@blocket.se>
Fri, 26 Oct 2012 13:53:45 +0000 (15:53 +0200)
committerSergio Visinoni <sergio.visinoni@blocket.se>
Fri, 26 Oct 2012 14:12:40 +0000 (16:12 +0200)
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
app/models/milestone.rb
app/views/merge_requests/show/_mr_box.html.haml
app/views/milestones/_milestone.html.haml
app/views/milestones/show.html.haml

index fa202cf..ac28f00 100644 (file)
@@ -32,6 +32,7 @@ class MilestonesController < ProjectResourceController
   def show
     @issues = @milestone.issues
     @users = @milestone.participants
+    @merge_requests = @milestone.merge_requests
 
     respond_to do |format|
       format.html
index 06c0943..b924dc5 100644 (file)
@@ -3,6 +3,7 @@ class Milestone < ActiveRecord::Base
 
   belongs_to :project
   has_many :issues
+  has_many :merge_requests
 
   validates :title, presence: true
   validates :project, presence: true
index 89c3110..2663643 100644 (file)
       %strong.author= link_to_merge_request_author(@merge_request)
 
       - if @merge_request.assignee
-        %cite.cgray and currently assigned to
+        %cite.cgray , currently assigned to
         = image_tag gravatar_icon(@merge_request.assignee_email), width: 16, class: "lil_av"
         %strong.author= link_to_merge_request_assignee(@merge_request)
+      - if @merge_request.milestone
+        - milestone = @merge_request.milestone
+        %cite.cgray and attached to milestone
+        %strong= link_to_gfm truncate(milestone.title, length: 20), project_milestone_path(milestone.project, milestone)
 
 
   - if @merge_request.closed
index 205b864..3ccd936 100644 (file)
@@ -4,6 +4,10 @@
       %span.btn.small.disabled.grouped= pluralize milestone.issues.count, 'issues'
     - if milestone.issues.count > 0
       = link_to 'Browse Issues', project_issues_path(milestone.project, milestone_id: milestone.id), class: "btn small grouped"
+    - if milestone.merge_requests.any?
+      %span.btn.small.disabled.grouped= pluralize milestone.issues.count, 'Merge Requests'
+    - if milestone.merge_requests.count > 0
+      = link_to 'Browse Merge Requests', project_merge_requests_path(milestone.project, milestone_id: milestone.id), class: "btn small grouped"
     - if can? current_user, :admin_milestone, milestone.project
       = link_to 'Edit', edit_project_milestone_path(milestone.project, milestone), class: "btn small edit-milestone-link grouped"
   %h4
index c113c81..ad4580d 100644 (file)
     %br
 
   .span6
+    %table.milestone-merge_requests-filter
+      %thead
+        %th
+          %ul.nav.nav-pills
+            %li.active= link_to('Open Merge Requests', '#')
+            %li=link_to('All Merge Requests', '#')
+      - @merge_requests.each do |merge_request|
+        %tr{data: {closed: merge_request.closed}}
+          %td
+            = link_to [@project, merge_request] do
+              %span.badge.badge-info ##{merge_request.id}
+            &ndash;
+            = link_to_gfm truncate(merge_request.title, length: 60), [@project, merge_request]
+    %br
+
+  .span6
     %table
       %thead
         %th Participants