From 751c9102917d5ccd07021229c960687fd61693cd Mon Sep 17 00:00:00 2001 From: Julianna Tetreault <32834804+juliannatetreault@users.noreply.github.com> Date: Wed, 9 Sep 2020 10:25:25 -0600 Subject: [PATCH] Give Admins the Ability to Add Co-Authors to Posts (#10252) [deploy] * Adds second_user_id and third_user_id to Admin::Articles::Controller and Article model - Add second_user_id to #update - Add third_user_id to #update - Add second_user_id to #article_params - Add third_user_id to #article_params - Add second and third user_ids to :limited_columns_internal_select * Adds a second_user_id and third_user_id form field to _individual_article.html.erb * Adds tests around adding a co-author and multiple co-authors to an article in articles_spec.rb --- app/controllers/admin/articles_controller.rb | 4 ++++ app/models/article.rb | 2 +- .../articles/_individual_article.html.erb | 10 +++++++++ spec/requests/admin/articles_spec.rb | 21 +++++++++++++++++++ 4 files changed, 36 insertions(+), 1 deletion(-) diff --git a/app/controllers/admin/articles_controller.rb b/app/controllers/admin/articles_controller.rb index 6d6492798..ce3af1c33 100644 --- a/app/controllers/admin/articles_controller.rb +++ b/app/controllers/admin/articles_controller.rb @@ -45,6 +45,8 @@ module Admin article.boosted_additional_articles = article_params[:boosted_additional_articles].to_s == "true" article.boosted_dev_digest_email = article_params[:boosted_dev_digest_email].to_s == "true" article.user_id = article_params[:user_id].to_i + article.second_user_id = article_params[:second_user_id].to_i + article.third_user_id = article_params[:third_user_id].to_i article.update!(article_params) render body: nil end @@ -129,6 +131,8 @@ module Admin main_image_background_hex_color featured_number user_id + second_user_id + third_user_id last_buffered] params.require(:article).permit(allowed_params) end diff --git a/app/models/article.rb b/app/models/article.rb index cb8c85845..f9cddefaf 100644 --- a/app/models/article.rb +++ b/app/models/article.rb @@ -143,7 +143,7 @@ class Article < ApplicationRecord :video_thumbnail_url, :video_closed_caption_track_url, :social_image, :published_from_feed, :crossposted_at, :published_at, :featured_number, :last_buffered, :facebook_last_buffered, :created_at, :body_markdown, - :email_digest_eligible, :processed_html) + :email_digest_eligible, :processed_html, :second_user_id, :third_user_id) } scope :boosted_via_additional_articles, lambda { diff --git a/app/views/admin/articles/_individual_article.html.erb b/app/views/admin/articles/_individual_article.html.erb index 1d1caf300..af451d56a 100644 --- a/app/views/admin/articles/_individual_article.html.erb +++ b/app/views/admin/articles/_individual_article.html.erb @@ -85,6 +85,16 @@ +
+ + +
+
+ + +
diff --git a/spec/requests/admin/articles_spec.rb b/spec/requests/admin/articles_spec.rb index c4d57d50c..42ab5c8e1 100644 --- a/spec/requests/admin/articles_spec.rb +++ b/spec/requests/admin/articles_spec.rb @@ -5,4 +5,25 @@ RSpec.describe "/admin/articles", type: :request do it_behaves_like "an InternalPolicy dependant request", Article do let(:request) { get "/admin/articles" } end + + context "when updating an Article via /admin/articles" do + let(:super_admin) { create(:user, :super_admin) } + let(:article) { create(:article) } + + before { sign_in super_admin } + + it "allows an Admin to add a co-author to an individual article" do + get request + expect do + article.update_columns(second_user_id: 1) + end.to change(article, :second_user_id).from(nil).to(1) + end + + it "allows an Admin to add co-authora to an individual article" do + article.update_columns(second_user_id: 2, third_user_id: 3) + get request + expect(article.second_user_id).to eq(2) + expect(article.third_user_id).to eq(3) + end + end end