changeset 295:3b367754d2b0 luisf

merge from branch bug_97
author Luis Figueira <luis.figueira@eecs.qmul.ac.uk>
date Thu, 24 Mar 2011 13:00:03 +0000
parents b369f41c7199 (current diff) ba87afa76607 (diff)
children e941e6aa2b7c a41158bde9e0
files
diffstat 6 files changed, 56 insertions(+), 4 deletions(-) [+]
line wrap: on
line diff
--- a/app/controllers/members_controller.rb	Wed Mar 23 11:32:11 2011 +0000
+++ b/app/controllers/members_controller.rb	Thu Mar 24 13:00:03 2011 +0000
@@ -28,12 +28,24 @@
       attrs = params[:member].dup
       if (user_ids = attrs.delete(:user_ids))
         user_ids.each do |user_id|
-          members << Member.new(attrs.merge(:user_id => user_id))
+          @new_member = Member.new(attrs.merge(:user_id => user_id))
+          members << @new_member
+
+          # send notification to member
+          Mailer.deliver_added_to_project(@new_member, @project)
+
         end
       else
-        members << Member.new(attrs)
+        @new_member = Member.new(attrs)
+        members << @new_member
+        
+        # send notification to member
+        Mailer.deliver_added_to_project(@new_member, @project)
+        
       end
+
       @project.members << members
+
     end
     respond_to do |format|
       if members.present? && members.all? {|m| m.valid? }
--- a/app/models/mailer.rb	Wed Mar 23 11:32:11 2011 +0000
+++ b/app/models/mailer.rb	Thu Mar 24 13:00:03 2011 +0000
@@ -31,6 +31,31 @@
     h = h.to_s.gsub(%r{\/.*$}, '') unless Redmine::Utils.relative_url_root.blank?
     { :host => h, :protocol => Setting.protocol }
   end
+
+
+
+  # Builds a tmail object used to email the specified user that he was added to a project
+  #
+  # Example:
+  #   add_to_project(user) => tmail object
+  #   Mailer.deliver_add_to_project(user) => sends an email to the registered user
+  def added_to_project(member, project)
+
+    user = User.find(member.user_id)
+
+    logger.debug "ABRACADABRA"
+    logger.debug project.name
+
+
+    set_language_if_valid user.language
+    recipients user.mail
+    subject l(:mail_subject_added_to_project, Setting.app_title)
+    body :project_url => url_for(:controller => 'projects', :action => 'show', :id => project.id),
+        :project_name => project.name
+    render_multipart('added_to_project', body)
+  end
+
+
   
   # Builds a tmail object used to email recipients of the added issue.
   #
@@ -440,3 +465,7 @@
     end
   end
 end
+
+
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/app/views/mailer/added_to_project.text.html.rhtml	Thu Mar 24 13:00:03 2011 +0000
@@ -0,0 +1,3 @@
+<p><%= l(:notice_added_to_project, :project_name => @project_name) %></p>
+<p><%= l(:notice_project_homepage, :project_url => @project_url) %></p>
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/app/views/mailer/added_to_project.text.plain.rhtml	Thu Mar 24 13:00:03 2011 +0000
@@ -0,0 +1,2 @@
+<%= l(:notice_added_to_project, :project_name => @project_name) %>
+<%= l(:notice_project_homepage, :project_url => @project_url)  %>
--- a/config/locales/en-GB.yml	Wed Mar 23 11:32:11 2011 +0000
+++ b/config/locales/en-GB.yml	Thu Mar 24 13:00:03 2011 +0000
@@ -971,4 +971,8 @@
   label_developer_description: Can commit to repository and carry out most project editing tasks
   label_reporter_description: Can submit bug reports; has read access for private projects
 
-  label_set_role_plural: Choose roles for new member
\ No newline at end of file
+  label_set_role_plural: Choose roles for new member
+  notice_added_to_project: 'You have been added to the project "{{project_name}}".'
+  notice_project_homepage: "You can visit the project using the following link: {{project_url}}"
+  mail_subject_added_to_project: "You've been added to a project on {{value}}"
+  
\ No newline at end of file
--- a/config/locales/en.yml	Wed Mar 23 11:32:11 2011 +0000
+++ b/config/locales/en.yml	Thu Mar 24 13:00:03 2011 +0000
@@ -965,4 +965,6 @@
   label_reporter_description: Can submit bug reports; has read access for private projects
 
   label_set_role_plural: Choose roles for new member
-
+  notice_added_to_project: 'You have been added to the project "{{project_name}}".'
+  notice_project_homepage: "You can visit the project using the following link: {{project_url}}"
+  mail_subject_added_to_project: "You've been added to a project on {{value}}"