Merge branch 'rep_quality' of https://git.trustie.net/jacknudt/trustieforge into rep_quality

This commit is contained in:
Tim 2016-08-01 16:53:44 +08:00
commit e33bbfff3f
12 changed files with 81 additions and 7 deletions

View File

@ -0,0 +1,3 @@
# Place all the behaviors and hooks related to the matching controller here.
# All this logic will automatically be available in application.js.
# You can use CoffeeScript in this file: http://jashkenas.github.com/coffee-script/

View File

@ -0,0 +1,3 @@
// Place all the styles related to the pull_requests controller here.
// They will automatically be included in application.css.
// You can use Sass (SCSS) here: http://sass-lang.com/

View File

@ -0,0 +1,36 @@
class PullRequestsController < ApplicationController
before_filter :find_project_and_repository
before_filter :connect_gitlab, :only => [:index, :show]
layout "base_projects"
def index
results = @g.merge_requests(@project.gpid)
end
def new
end
def create
end
def show
end
private
def connect_gitlab
@g = Gitlab.client
end
def find_project_and_repository
@project = Project.find(params[:project_id])
render_404 if @project.gpid.blank?
@repository = Repository.where(:project_id => @project.id, :type => "Repository::Gitlab")
rescue ActiveRecord::RecordNotFound
render_404
end
end

View File

@ -1,17 +1,30 @@
class PullRquestsController < ApplicationController class PullRquestsController < ApplicationController
before_filter :find_project before_filter :find_project_and_repository
before_filter :connect_gitlab, :only => [:index, :show]
layout "base_projects" layout "base_projects"
def index def index
results = @g.merge_requests(@project.gpid)
end end
def new def new
end end
def find_project def create
end
private
def connect_gitlab
@g = Gitlab.client
end
def find_project_and_repository
@project = Project.find(params[:project_id]) @project = Project.find(params[:project_id])
render_404 if @project.gpid.blank?
@repository = Repository.where(:project_id => @project.id, :type => "Repository::Gitlab")
rescue ActiveRecord::RecordNotFound rescue ActiveRecord::RecordNotFound
render_404 render_404
end end

View File

@ -814,6 +814,18 @@ module ApplicationHelper
return @result return @result
end end
# 必须是项目成,项目必须提交过代码
def allow_pull_request project
return false if project.gpid.nil?
g = Gitlab.client
count = g.user_static(project.gpid, :rev => "master").count
if User.current.member_of?(project) && count > 0
true
else
false
end
end
# 判断版本库是否初始为gitlab # 判断版本库是否初始为gitlab
def rep_is_gitlab?(project) def rep_is_gitlab?(project)
rep = project.repositories.where("type =?", "Repository::Gitlab") rep = project.repositories.where("type =?", "Repository::Gitlab")

View File

@ -0,0 +1,2 @@
module PullRequestsHelper
end

View File

@ -57,11 +57,11 @@
</div> </div>
<% end %> <% end %>
<!-- more --> <!-- more -->
<% if User.current.member_of?(@project) %> <% if allow_pull_request(@project) %>
<div class="subNav"> <div class="subNav">
<%= link_to "Pull Requests", project_files_path(@project), :class => "f14 c_blue02" %> <%= link_to "Pull Requests", project_pull_requests_path(@project), :class => "f14 c_blue02" %>
<% unless @project.project_score.attach_num == 0 %> <% unless @project.project_score.attach_num == 0 %>
<%= link_to "(#{@project.project_score.attach_num})", project_files_path(@project), :class => "subnav_num c_orange",:id=>'project_files_count_nav' %> <%#= link_to "(#{@project.project_score.attach_num})", project_files_path(@project), :class => "subnav_num c_orange",:id=>'project_files_count_nav' %>
<% end %> <% end %>
</div> </div>
<% end %> <% end %>

View File

View File

View File

View File

@ -805,7 +805,7 @@ RedmineApp::Application.routes.draw do
end end
end end
resources :pull_rquests do resources :pull_requests do
collection do collection do
end end
member do member do

View File

@ -0,0 +1,5 @@
require 'rails_helper'
RSpec.describe PullRequestsController, :type => :controller do
end