@issue = Issue.find(params[:issue_id])
comment = @issue.comments.build(issue_comment_params)
comment.user = current_user
- # if params[:reassign]
- # reassign_issue
- # @issue_comment.reassign = true
- # end
comment.save!
notice = t("issues.comment.comment_created")
+ reassign_issue(@issue) if params[:reassign]
redirect_to @issue, :notice => notice
end
redirect_to root_path
end
end
+
+ # This sort of assumes there are only two roles
+ def reassign_issue(issue)
+ role = (Issue::ASSIGNED_ROLES - [issue.assigned_role]).first
+ issue.assigned_role = role
+ issue.save!
+ end
end
end
end
- # Reassign Issues between Administrators and Moderators
- def reassign_issue
- @issue.assigned_role = upgrade_issue(@issue.assigned_role)
- @issue.save!
- end
-
private
- def upgrade_issue(type)
- if type == "moderator"
- "administrator"
- else
- "moderator"
- end
- end
-
def set_issues
@admin_issues = %w[DiaryEntry DiaryComment User]
@moderator_issues = %w[Changeset Note]
validates :reportable_id, :uniqueness => { :scope => [:reportable_type] }
validates :reported_user_id, :presence => true
- validates :assigned_role, :presence => true, :inclusion => %w[administrator moderator]
+
+ ASSIGNED_ROLES = %w[administrator moderator].freeze
+ validates :assigned_role, :presence => true, :inclusion => ASSIGNED_ROLES
before_validation :set_default_assigned_role
before_validation :set_reported_user
<div class="comment">
<%= form_for @new_comment, url: issue_comments_path(@issue) do |f| %>
<%= richtext_area :issue_comment, :body, :cols => 10, :rows => 8, :required => true %>
- <%= label_tag t('issues.show.comments.reassign_param') %> <%= check_box_tag :reassign, true %>
+ <%= label_tag :reassign, t('issues.show.comments.reassign_param') %> <%= check_box_tag :reassign, true %>
<br/>
<br/>
<%= submit_tag 'Submit' %>
issue.reload
assert_equal issue.comments.first.body, "test comment"
end
+
+ def test_reassign_issue
+ issue = create(:issue)
+ assert_equal "administrator", issue.assigned_role
+ sign_in_as(create(:administrator_user))
+
+ visit issue_path(issue)
+
+ fill_in :issue_comment_body, :with => "reassigning to moderators"
+ check :reassign
+ click_on "Submit"
+
+ issue.reload
+ assert_equal "moderator", issue.assigned_role
+ end
end