changeset 145:e80647437550 live

Issue #31: issue submitters and assignees are added to the watchers list. incomplete: there is no option to select/unselect the assignee.
author luisf
date Thu, 20 Jan 2011 13:08:43 +0000
parents 09910262eb0b
children 5f4f786486d1
files app/controllers/issues_controller.rb app/models/issue.rb app/views/issues/_attributes.rhtml app/views/issues/_form.rhtml
diffstat 4 files changed, 13 insertions(+), 16 deletions(-) [+]
line wrap: on
line diff
--- a/app/controllers/issues_controller.rb	Wed Jan 12 17:06:18 2011 +0000
+++ b/app/controllers/issues_controller.rb	Thu Jan 20 13:08:43 2011 +0000
@@ -135,15 +135,12 @@
       
       call_hook(:controller_issues_new_after_save, { :params => params, :issue => @issue})
 
-      # Adds user to watcher's list
-      # @issue.add_watcher(User.current)
-
       # Also adds the assignee to the watcher's list
-      # if params[:issue][:assigned_to_id] && !params[:issue][:assigned_to_id].empty?:
-      #  unless @issue.watcher_ids.include?(params[:issue][:assigned_to_id]):
-      #    @issue.add_watcher(User.find(params[:issue][:assigned_to_id]))
-      #  end
-      # end
+      if params[:issue][:assigned_to_id] && !params[:issue][:assigned_to_id].empty?:
+       unless @issue.watcher_ids.include?(params[:issue][:assigned_to_id]):
+         @issue.add_watcher(User.find(params[:issue][:assigned_to_id]))
+       end
+      end
 
       respond_to do |format|
         format.html {
@@ -291,11 +288,11 @@
     # is in this issues watcher's list
     # if not, adds it.
 
-    # if params[:issue][:assigned_to_id] && !params[:issue][:assigned_to_id].empty?:
-    #  unless @issue.watcher_ids.include?(params[:issue][:assigned_to_id]):
-    #    @issue.add_watcher(User.find(params[:issue][:assigned_to_id]))
-    #  end
-    # end
+    if params[:issue][:assigned_to_id] && !params[:issue][:assigned_to_id].empty?:
+     unless @issue.watched_by?(User.find(params[:issue][:assigned_to_id])):
+       @issue.add_watcher(User.find(params[:issue][:assigned_to_id]))
+     end
+    end
 
 
   end
--- a/app/models/issue.rb	Wed Jan 12 17:06:18 2011 +0000
+++ b/app/models/issue.rb	Thu Jan 20 13:08:43 2011 +0000
@@ -90,7 +90,7 @@
   after_save :reschedule_following_issues, :update_nested_set_attributes, :update_parent_attributes, :create_journal
   after_destroy :destroy_children
   after_destroy :update_parent_attributes
-  
+
   # Returns true if usr or current user is allowed to view the issue
   def visible?(usr=nil)
     (usr || User.current).allowed_to?(:view_issues, self.project)
--- a/app/views/issues/_attributes.rhtml	Wed Jan 12 17:06:18 2011 +0000
+++ b/app/views/issues/_attributes.rhtml	Thu Jan 20 13:08:43 2011 +0000
@@ -8,7 +8,7 @@
 <% end %>
 
 <p><%= f.select :priority_id, (@priorities.collect {|p| [p.name, p.id]}), {:required => true}, :disabled => !@issue.leaf? %></p>
-<p><%= f.select :assigned_to_id, (@issue.assignable_users.collect {|m| [m.name, m.id]}), :include_blank => true %></p>
+<p><%= f.select :assigned_to_id, (@issue.assignable_users.collect {|m| [m.name, m.id]}), {:include_blank => true} %></p>
 <% unless @project.issue_categories.empty? %>
 <p><%= f.select :category_id, (@project.issue_categories.collect {|c| [c.name, c.id]}), :include_blank => true %>
 <%= prompt_to_remote(image_tag('add.png', :style => 'vertical-align: middle;'),
--- a/app/views/issues/_form.rhtml	Wed Jan 12 17:06:18 2011 +0000
+++ b/app/views/issues/_form.rhtml	Thu Jan 20 13:08:43 2011 +0000
@@ -35,7 +35,7 @@
 <% if @issue.new_record? && User.current.allowed_to?(:add_issue_watchers, @project) -%>
 <p id="watchers_form"><label><%= l(:label_issue_watchers) %></label>
 <% @issue.project.users.sort.each do |user| -%>
-<label class="floating"><%= check_box_tag 'issue[watcher_user_ids][]', user.id, @issue.watched_by?(user) %> <%=h user %></label>
+<label class="floating"><%= check_box_tag 'issue[watcher_user_ids][]', user.id, !!(@issue.watched_by?(user) or user == User.current) %> <%=h user %></label>
 <% end -%>
 </p>
 <% end %>