Add related content section on proposal dashboard
This commit is contained in:
@@ -86,6 +86,17 @@
|
|||||||
margin: $line-height 0;
|
margin: $line-height 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.dashboard-related-content {
|
||||||
|
|
||||||
|
.related-content {
|
||||||
|
border-top: 0;
|
||||||
|
|
||||||
|
.margin-bottom {
|
||||||
|
margin-bottom: 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// 02. Actions
|
// 02. Actions
|
||||||
// -----------
|
// -----------
|
||||||
|
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
class DashboardController < Dashboard::BaseController
|
class DashboardController < Dashboard::BaseController
|
||||||
helper_method :dashboard_action, :active_resources, :course
|
helper_method :dashboard_action, :active_resources, :course
|
||||||
before_action :set_done_and_pending_actions, only: [:recommended_actions, :progress]
|
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
|
def show
|
||||||
end
|
end
|
||||||
@@ -25,6 +25,10 @@ class DashboardController < Dashboard::BaseController
|
|||||||
def messages
|
def messages
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def related_content
|
||||||
|
@related_contents = Kaminari.paginate_array(proposal.relationed_contents).page(params[:page]).per(5)
|
||||||
|
end
|
||||||
|
|
||||||
private
|
private
|
||||||
|
|
||||||
def active_resources
|
def active_resources
|
||||||
|
|||||||
@@ -11,6 +11,10 @@ module ProposalsDashboardHelper
|
|||||||
controller_name == "dashboard" && action_name == "messages"
|
controller_name == "dashboard" && action_name == "messages"
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def related_content_menu_active?
|
||||||
|
controller_name == "dashboard" && action_name == "related_content"
|
||||||
|
end
|
||||||
|
|
||||||
def progress_menu_active?
|
def progress_menu_active?
|
||||||
is_proposed_action_request? || (controller_name == "dashboard" && action_name == "progress")
|
is_proposed_action_request? || (controller_name == "dashboard" && action_name == "progress")
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -96,4 +96,11 @@
|
|||||||
<strong><%= t("dashboard.menu.messages") %></strong>
|
<strong><%= t("dashboard.menu.messages") %></strong>
|
||||||
<% end %>
|
<% end %>
|
||||||
</li>
|
</li>
|
||||||
|
|
||||||
|
<li class="section-title <%= "is-active" if related_content_menu_active? %>">
|
||||||
|
<span class="icon-comments"></span>
|
||||||
|
<%= link_to related_content_proposal_dashboard_path(proposal) do %>
|
||||||
|
<strong><%= t("dashboard.menu.related_content") %></strong>
|
||||||
|
<% end %>
|
||||||
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
|
|||||||
3
app/views/dashboard/related_content.html.erb
Normal file
3
app/views/dashboard/related_content.html.erb
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
<div class="dashboard-related-content">
|
||||||
|
<%= render "relationable/related_content", relationable: @proposal %>
|
||||||
|
</div>
|
||||||
@@ -488,6 +488,7 @@ en:
|
|||||||
poster: Poster
|
poster: Poster
|
||||||
recommended_actions: Recommended actions
|
recommended_actions: Recommended actions
|
||||||
messages: Message to users
|
messages: Message to users
|
||||||
|
related_content: Related content
|
||||||
form:
|
form:
|
||||||
request: Request
|
request: Request
|
||||||
create_request:
|
create_request:
|
||||||
|
|||||||
@@ -488,6 +488,7 @@ es:
|
|||||||
poster: Póster
|
poster: Póster
|
||||||
recommended_actions: Acciones recomendadas
|
recommended_actions: Acciones recomendadas
|
||||||
messages: Mensajes a usuarios
|
messages: Mensajes a usuarios
|
||||||
|
related_content: Contenido relacionado
|
||||||
form:
|
form:
|
||||||
request: Solicitar
|
request: Solicitar
|
||||||
create_request:
|
create_request:
|
||||||
|
|||||||
@@ -6,6 +6,7 @@ resources :proposals do
|
|||||||
get :community
|
get :community
|
||||||
get :recommended_actions
|
get :recommended_actions
|
||||||
get :messages
|
get :messages
|
||||||
|
get :related_content
|
||||||
end
|
end
|
||||||
|
|
||||||
resources :resources, only: [:index], controller: "dashboard/resources"
|
resources :resources, only: [:index], controller: "dashboard/resources"
|
||||||
|
|||||||
@@ -389,6 +389,31 @@ describe "Proposal's dashboard" do
|
|||||||
anchor: "tab-notifications"))
|
anchor: "tab-notifications"))
|
||||||
end
|
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
|
scenario "On recommended actions section display from the fourth proposed actions
|
||||||
when click see_proposed_actions_link", js: true do
|
when click see_proposed_actions_link", js: true do
|
||||||
create_list(:dashboard_action, 4, :proposed_action, :active)
|
create_list(:dashboard_action, 4, :proposed_action, :active)
|
||||||
|
|||||||
Reference in New Issue
Block a user