diff --git a/app/assets/stylesheets/dashboard.scss b/app/assets/stylesheets/dashboard.scss
index 62fb6210a..b7f9e5e16 100644
--- a/app/assets/stylesheets/dashboard.scss
+++ b/app/assets/stylesheets/dashboard.scss
@@ -86,6 +86,17 @@
margin: $line-height 0;
}
+.dashboard-related-content {
+
+ .related-content {
+ border-top: 0;
+
+ .margin-bottom {
+ margin-bottom: 0;
+ }
+ }
+}
+
// 02. Actions
// -----------
diff --git a/app/controllers/dashboard_controller.rb b/app/controllers/dashboard_controller.rb
index efe8bf9f0..4ed198efa 100644
--- a/app/controllers/dashboard_controller.rb
+++ b/app/controllers/dashboard_controller.rb
@@ -1,7 +1,7 @@
class DashboardController < Dashboard::BaseController
helper_method :dashboard_action, :active_resources, :course
before_action :set_done_and_pending_actions, only: [:recommended_actions, :progress]
- before_action :authorize_dashboard, only: [:show, :progress, :community, :recommended_actions, :messages]
+ before_action :authorize_dashboard, except: :publish
def show
end
@@ -25,6 +25,10 @@ class DashboardController < Dashboard::BaseController
def messages
end
+ def related_content
+ @related_contents = Kaminari.paginate_array(proposal.relationed_contents).page(params[:page]).per(5)
+ end
+
private
def active_resources
diff --git a/app/helpers/proposals_dashboard_helper.rb b/app/helpers/proposals_dashboard_helper.rb
index 576473b93..16efad83a 100644
--- a/app/helpers/proposals_dashboard_helper.rb
+++ b/app/helpers/proposals_dashboard_helper.rb
@@ -11,6 +11,10 @@ module ProposalsDashboardHelper
controller_name == "dashboard" && action_name == "messages"
end
+ def related_content_menu_active?
+ controller_name == "dashboard" && action_name == "related_content"
+ end
+
def progress_menu_active?
is_proposed_action_request? || (controller_name == "dashboard" && action_name == "progress")
end
diff --git a/app/views/dashboard/_menu.html.erb b/app/views/dashboard/_menu.html.erb
index bd71bb2c5..65798f20f 100644
--- a/app/views/dashboard/_menu.html.erb
+++ b/app/views/dashboard/_menu.html.erb
@@ -96,4 +96,11 @@
<%= t("dashboard.menu.messages") %>
<% end %>
+
+
">
+
+ <%= link_to related_content_proposal_dashboard_path(proposal) do %>
+ <%= t("dashboard.menu.related_content") %>
+ <% end %>
+
diff --git a/app/views/dashboard/related_content.html.erb b/app/views/dashboard/related_content.html.erb
new file mode 100644
index 000000000..e9efcc536
--- /dev/null
+++ b/app/views/dashboard/related_content.html.erb
@@ -0,0 +1,3 @@
+
+ <%= render "relationable/related_content", relationable: @proposal %>
+
diff --git a/config/locales/en/general.yml b/config/locales/en/general.yml
index 1b9adb735..dd337a680 100644
--- a/config/locales/en/general.yml
+++ b/config/locales/en/general.yml
@@ -488,6 +488,7 @@ en:
poster: Poster
recommended_actions: Recommended actions
messages: Message to users
+ related_content: Related content
form:
request: Request
create_request:
diff --git a/config/locales/es/general.yml b/config/locales/es/general.yml
index f55bb69d8..51fe7d00a 100644
--- a/config/locales/es/general.yml
+++ b/config/locales/es/general.yml
@@ -488,6 +488,7 @@ es:
poster: Póster
recommended_actions: Acciones recomendadas
messages: Mensajes a usuarios
+ related_content: Contenido relacionado
form:
request: Solicitar
create_request:
diff --git a/config/routes/proposal.rb b/config/routes/proposal.rb
index eed13dc2d..8e1bc54e4 100644
--- a/config/routes/proposal.rb
+++ b/config/routes/proposal.rb
@@ -6,6 +6,7 @@ resources :proposals do
get :community
get :recommended_actions
get :messages
+ get :related_content
end
resources :resources, only: [:index], controller: "dashboard/resources"
diff --git a/spec/features/dashboard/dashboard_spec.rb b/spec/features/dashboard/dashboard_spec.rb
index e6e1d71f4..46952266b 100644
--- a/spec/features/dashboard/dashboard_spec.rb
+++ b/spec/features/dashboard/dashboard_spec.rb
@@ -389,6 +389,31 @@ describe "Proposal's dashboard" do
anchor: "tab-notifications"))
end
+ scenario "Dashboard has a related content section" do
+ related_debate = create(:debate)
+ related_proposal = create(:proposal)
+
+ create(:related_content, parent_relationable: proposal,
+ child_relationable: related_debate, author: build(:user))
+
+ create(:related_content, parent_relationable: proposal,
+ child_relationable: related_proposal, author: build(:user))
+
+ within("#side_menu") do
+ click_link "Related content"
+ end
+
+ expect(page).to have_button("Add related content")
+
+ within(".dashboard-related-content") do
+ expect(page).to have_content("Related content (2)")
+ expect(page).to have_selector(".related-content-title", text: "Proposal")
+ expect(page).to have_link related_proposal.title
+ expect(page).to have_selector(".related-content-title", text: "Debate")
+ expect(page).to have_link related_debate.title
+ end
+ end
+
scenario "On recommended actions section display from the fourth proposed actions
when click see_proposed_actions_link", js: true do
create_list(:dashboard_action, 4, :proposed_action, :active)