diff options
author | Marius Mathiesen <marius@shortcut.no> | 2009-12-10 11:10:48 +0100 |
---|---|---|
committer | Marius Mathiesen <marius@shortcut.no> | 2009-12-10 11:11:59 +0100 |
commit | c2c20fe017a96c00811dcbd7939eceea5fd998ef (patch) | |
tree | 28399696c531463087bf67d77a8b9d74665ab0b9 /app | |
parent | 9efab315b1e6271b975b05dbbe9c12058931e434 (diff) | |
download | gitorious-mainline-outdated-c2c20fe017a96c00811dcbd7939eceea5fd998ef.zip gitorious-mainline-outdated-c2c20fe017a96c00811dcbd7939eceea5fd998ef.tar.gz gitorious-mainline-outdated-c2c20fe017a96c00811dcbd7939eceea5fd998ef.tar.bz2 |
Change the way reviewers are notified about new merge requests
When a merge request is created, each reviewer has this added as a favorite. In the same process, a FeedItem is created
for the event associated (now created in the model and accessible as #creation_event). Messages are no longer sent to the
reviewers, as this gave a lot of email to the reviewers. Instead, they will now be able to track the creation (and updates) of merge
requests through their newsfeed.
Since notifications are no longer sent to reviewers, the checkbox on Repositories#edit is no longer displayed (it has no effect). It
is still in the database, though.
Diffstat (limited to 'app')
-rw-r--r-- | app/controllers/merge_requests_controller.rb | 2 | ||||
-rw-r--r-- | app/models/merge_request.rb | 32 | ||||
-rw-r--r-- | app/views/repositories/edit.html.erb | 9 |
3 files changed, 20 insertions, 23 deletions
diff --git a/app/controllers/merge_requests_controller.rb b/app/controllers/merge_requests_controller.rb index 3ecfd64..4ccf682 100644 --- a/app/controllers/merge_requests_controller.rb +++ b/app/controllers/merge_requests_controller.rb @@ -126,7 +126,7 @@ class MergeRequestsController < ApplicationController def terms_accepted @merge_request = @repository.merge_requests.find_by_sequence_number!(params[:id]) if @merge_request.terms_accepted - @owner.create_event(Action::REQUEST_MERGE, @merge_request, current_user) + @merge_request.add_creation_event(@owner, current_user) if @merge_request.has_contribution_notice? flash[:notice] = @merge_request.contribution_notice end diff --git a/app/models/merge_request.rb b/app/models/merge_request.rb index 6fdb4e8..9e8c8bb 100644 --- a/app/models/merge_request.rb +++ b/app/models/merge_request.rb @@ -371,19 +371,11 @@ class MergeRequest < ActiveRecord::Base end def notify_subscribers_about_creation - return unless target_repository.notify_committers_on_new_merge_request? - reviewers.each do |reviewer| - message = messages.build({ - :sender => user, - :recipient => reviewer, - :subject => I18n.t("mailer.request_notification", - :login => user.login, - :title => target_repository.project.title), - :body => proposal, - :notifiable => self - }) - message.save - add_to_reviewers_favorites(reviewer) + reviewers.each { |reviewer| + add_to_reviewers_favorites(reviewer) + } + if event = creation_event + FeedItem.bulk_create_from_watcher_list_and_event!(reviewers.map(&:id), event) end end @@ -395,6 +387,20 @@ class MergeRequest < ActiveRecord::Base reviewer.favorites.create(:watchable => self, :skip_events => true) end + def add_creation_event(owner, user) + owner.create_event( + Action::REQUEST_MERGE, self, user + ) + end + + def creation_event + Event.find(:first, :conditions => { + :action => Action::REQUEST_MERGE, + :target_id => self.id, + :target_type => self.class.name + }) + end + def oauth_request_token=(token) self.oauth_token = token.token self.oauth_secret = token.secret diff --git a/app/views/repositories/edit.html.erb b/app/views/repositories/edit.html.erb index cce1b78..e5f0149 100644 --- a/app/views/repositories/edit.html.erb +++ b/app/views/repositories/edit.html.erb @@ -49,15 +49,6 @@ </span> </p> <p> - <%= f.label :notify_committers_on_new_merge_request -%>: - <%= f.check_box :notify_committers_on_new_merge_request -%><br /> - <span class="hint"> - Turning this off will not send a notification message to the - committers of the target repository when a new new merge request - is created - </span> - </p> - <p> <%= f.label :merge_requests_enabled, "Enable merge requests?" -%> <%= f.check_box :merge_requests_enabled -%> <br /> <span class="hint"> |