diff --git a/app/controllers/pull_requests_controller.rb b/app/controllers/pull_requests_controller.rb index e4a2dc9df..ff74eb9f3 100644 --- a/app/controllers/pull_requests_controller.rb +++ b/app/controllers/pull_requests_controller.rb @@ -97,8 +97,16 @@ class PullRequestsController < ApplicationController request = @g.create_merge_request(@project.gpid, title, User.current.gid, :description => description, :source_branch => source_branch, :target_branch => target_branch, :target_project_id => target_project_id) @fork_project_name = Project.find(params[:target_project_id]).try(:name) @fork_pr_message = true if @fork_project_name + # 发送消息 + send_message(User.current.id, target_project_id, title) + # 创建Trustie数据 + PullRequest.create(:pull_request_id => request.id, :user_id => User.current.id, :status => 1, :project_id => target_project_id) else request = @g.create_merge_request(@project.gpid, title, User.current.gid, :description => description, :source_branch => source_branch, :target_branch => target_branch) + # 发送消息 + send_message(User.current.id, @project.id, title) + # 创建Trustie数据 + PullRequest.create(:pull_request_id => request.id, :user_id => User.current.id, :status => 1, :project_id => @project.id) respond_to do |format| format.js{redirect_to project_pull_request_path(request.id, :project_id => @project.id)} end @@ -287,6 +295,10 @@ class PullRequestsController < ApplicationController end private + def send_message user_id, project_id, title + self.forge_acts << ForgeMessage.new(:user_id => user_id, :project_id => project_id, :title => title) + end + def authorize_logged if !User.current.logged? redirect_to signin_path diff --git a/app/models/forge_message.rb b/app/models/forge_message.rb index 8bf754719..bc514025e 100644 --- a/app/models/forge_message.rb +++ b/app/models/forge_message.rb @@ -6,7 +6,7 @@ class ForgeMessage < ActiveRecord::Base belongs_to :forge_message ,:polymorphic => true belongs_to :project belongs_to :user - has_many :message_alls, :class_name => 'MessageAll',:as =>:message, :dependent => :destroy + has_many :message_alls, :class_name => 'MessageAll', :as => :message, :dependent => :destroy validates :user_id,presence: true validates :project_id,presence: true diff --git a/app/models/pull_request.rb b/app/models/pull_request.rb index f40397cf0..ec13ff16b 100644 --- a/app/models/pull_request.rb +++ b/app/models/pull_request.rb @@ -1,4 +1,7 @@ class PullRequest < ActiveRecord::Base - attr_accessible :gpid, :pull_request_id, :user_id + # status 1:创建 2:接受 3:重新打开 4:关闭 + attr_accessible :gpid, :pull_request_id, :user_id, :status validates_uniqueness_of :pull_request_id + + has_many :forge_messages, :class_name => 'ForgeMessage', :as => :forge_message, :dependent => :destroy end diff --git a/app/views/pull_requests/_form.html.erb b/app/views/pull_requests/_form.html.erb index d76c3e8a8..0aa2a1177 100644 --- a/app/views/pull_requests/_form.html.erb +++ b/app/views/pull_requests/_form.html.erb @@ -112,4 +112,4 @@ var defaultBranch = $("#targetBranch option:first-child").val(); $("#targetBranch").val(defaultBranch); }); - \ No newline at end of file + diff --git a/app/views/users/_user_message_forge.html.erb b/app/views/users/_user_message_forge.html.erb index 71b051a30..00b141d31 100644 --- a/app/views/users/_user_message_forge.html.erb +++ b/app/views/users/_user_message_forge.html.erb @@ -194,4 +194,24 @@
  • <%= time_tag(ma.created_at).html_safe %>
  • <% end %> + <% end %> \ No newline at end of file diff --git a/db/migrate/20161129032534_add_status_to_pull_requests.rb b/db/migrate/20161129032534_add_status_to_pull_requests.rb new file mode 100644 index 000000000..a8ad71125 --- /dev/null +++ b/db/migrate/20161129032534_add_status_to_pull_requests.rb @@ -0,0 +1,5 @@ +class AddStatusToPullRequests < ActiveRecord::Migration + def change + add_column :pull_requests, :status, :integer, :default => false + end +end diff --git a/db/migrate/20161129033440_add_project_id_to_pull_requests.rb b/db/migrate/20161129033440_add_project_id_to_pull_requests.rb new file mode 100644 index 000000000..563ddf91b --- /dev/null +++ b/db/migrate/20161129033440_add_project_id_to_pull_requests.rb @@ -0,0 +1,5 @@ +class AddProjectIdToPullRequests < ActiveRecord::Migration + def change + add_column :pull_requests, :project_id, :integer + end +end