When the project is approved or rejected, an email is sent to the
project owner notifying them of the decision.
Signed-off-by: Darryl L. Pierce <mcpierce(a)gmail.com>
---
app/controllers/projects_controller.rb | 2 ++
app/models/user_mailer.rb | 8 ++++++++
doc/ChangeLog | 1 +
test/functional/projects_controller_test.rb | 14 ++++++++++++++
4 files changed, 25 insertions(+), 0 deletions(-)
diff --git a/app/controllers/projects_controller.rb
b/app/controllers/projects_controller.rb
index 7a29e96..4b561cc 100644
--- a/app/controllers/projects_controller.rb
+++ b/app/controllers/projects_controller.rb
@@ -132,6 +132,7 @@ class ProjectsController < ApplicationController
Project.transaction do
@project.approved = true
@project.save!
+ UserMailer.deliver_project_request(@project, true)
flash[:message] = "#{(a)project.name} has been approved."
respond_to do |format|
@@ -144,6 +145,7 @@ class ProjectsController < ApplicationController
def reject
Project.transaction do
@project.destroy
+ UserMailer.deliver_project_request(@project, false)
flash[:message] = "#{(a)project.name} has been rejected/deleted."
respond_to do |format|
diff --git a/app/models/user_mailer.rb b/app/models/user_mailer.rb
index 5609dc8..85b3e1d 100644
--- a/app/models/user_mailer.rb
+++ b/app/models/user_mailer.rb
@@ -40,6 +40,14 @@ class UserMailer < ActionMailer::Base
body :user => user, :new_password => new_password
end
+ # Sends an email to a project requestor about the disposition of the project.
+ def project_request(project, approved)
+ recipients project.owner.email
+ from MAIL_CONFIG[:from]
+ subject "Request project: #{project.name}"
+ body :project => project, :approved => approved)
+ end
+
# Sends an email to a product owner when a user requests a product role.
def product_role_request(requested_role)
recipients requested_role.product.owner.email
diff --git a/doc/ChangeLog b/doc/ChangeLog
index 7e2abdc..534ed3f 100644
--- a/doc/ChangeLog
+++ b/doc/ChangeLog
@@ -6,3 +6,4 @@ Change Log (0.2.0):
* #125 - Added a system title to all pages. - Darryl L. Pierce
<mcpierce(a)gmail.com>
* #131 - Admins can filter out unapproved projects. - Darryl L. Pierce
<mcpierce(a)gmail.com>
* #136 - System title can be changed by the admin. - Darryl L. Pierce
<mcpierce(a)gmail.com>
+ * #137 - An email is sent to the project requestor - Darryl L. Pierce
<mcpierce(a)gmail.com>
diff --git a/test/functional/projects_controller_test.rb
b/test/functional/projects_controller_test.rb
index e0a229c..81312f3 100644
--- a/test/functional/projects_controller_test.rb
+++ b/test/functional/projects_controller_test.rb
@@ -39,6 +39,14 @@ class ProjectsControllerTest < ActionController::TestCase
@admin = users(:project_admin)
raise "Nonadmin and admin cannot be the same user!" if @nonadmin.id ==
@admin.id
raise "Admin must have project admin rights!" unless
@admin.can_create_projects?
+
+ # setup for testing mail
+ ActionMailer::Base.delivery_method = :test
+ ActionMailer::Base.perform_deliveries = true
+ ActionMailer::Base.deliveries = []
+
+ @emails = ActionMailer::Base.deliveries
+ @emails.clear
end
# Ensures that showing the project index works as expected.
@@ -325,6 +333,9 @@ class ProjectsControllerTest < ActionController::TestCase
assert_redirected_to project_path(@unapproved_project)
assert Project.find_by_id((a)unapproved_project.id).approved,
"Project should have been marked as approved."
+ email = @emails.first
+ assert email, "No email was generated."
+ assert_equal @unapproved_project.owner.email, email.to[0], "Email sent to wrong
user."
end
# Ensures that anonymous users can't reject a project.
@@ -366,5 +377,8 @@ class ProjectsControllerTest < ActionController::TestCase
assert_redirected_to projects_path
assert_nil Project.find_by_id((a)unapproved_project.id),
"Rejected project should have been deleted."
+ email = @emails.first
+ assert email, "No email was generated."
+ assert_equal @unapproved_project.owner.email, email.to[0], "Email sent to wrong
user."
end
end
--
1.6.0.6
Show replies by date
On Thu, Mar 26, 2009 at 9:45 PM, Darryl L. Pierce <mcpierce(a)gmail.com> wrote:
When the project is approved or rejected, an email is sent to the
project owner notifying them of the decision.
Signed-off-by: Darryl L. Pierce <mcpierce(a)gmail.com>
---
Pushed.
--
Darryl L. Pierce <mcpierce(a)gmail.com>
Visit the Infobahn Offramp: <
http://mcpierce.multiply.com>
"Bury me next to my wife. Nothing too fancy..." - Ulysses S. Grant