diff --git a/app/controllers/dashboard/base_controller.rb b/app/controllers/dashboard/base_controller.rb index 2755e74c9..14a4f7ff6 100644 --- a/app/controllers/dashboard/base_controller.rb +++ b/app/controllers/dashboard/base_controller.rb @@ -1,5 +1,5 @@ class Dashboard::BaseController < ApplicationController - before_action :authenticate_user! + before_action :authenticate_user!, :detect_new_actions_after_last_login include Dashboard::HasProposal @@ -35,4 +35,9 @@ class Dashboard::BaseController < ApplicationController def next_goal @next_goal ||= Dashboard::Action.next_goal_for(proposal) end + + def detect_new_actions_after_last_login + author_last_login = proposal.author.last_sign_in_at.to_date + @new_actions_since_last_login = Dashboard::Action.detect_new_actions_since(author_last_login, proposal) + end end diff --git a/app/helpers/proposals_dashboard_helper.rb b/app/helpers/proposals_dashboard_helper.rb index 58d468e1b..e45cd50ed 100644 --- a/app/helpers/proposals_dashboard_helper.rb +++ b/app/helpers/proposals_dashboard_helper.rb @@ -83,4 +83,12 @@ module ProposalsDashboardHelper return t("dashboard.resource.resource_requested") if resource.requested_for?(proposal) t("dashboard.resource.request_resource") end + + def is_new_action_since_last_login?(proposed_action, new_actions_since_last_login) + new_actions_since_last_login.include?(proposed_action.id) if new_actions_since_last_login.present? + end + + def new_resources_since_last_login?(resources, new_actions_since_last_login) + resources.pluck(:id).any? {|id| new_actions_since_last_login.include?(id) } if resources.present? + end end diff --git a/app/views/dashboard/_menu.html.erb b/app/views/dashboard/_menu.html.erb index 463ad470c..c6d633e79 100644 --- a/app/views/dashboard/_menu.html.erb +++ b/app/views/dashboard/_menu.html.erb @@ -18,12 +18,18 @@ <%= link_to recommended_actions_proposal_dashboard_path(proposal.to_param) do %> <%= t("dashboard.menu.recommended_actions") %> <% end %> + <% if new_resources_since_last_login?(proposed_actions, @new_actions_since_last_login) %> + <%= t("dashboard.progress.new_action" ) %> + <% end %> <% if resources_menu_visible?(proposal, resources) %>
  • <%= t("dashboard.menu.resources") %> + <% if new_resources_since_last_login?(resources, @new_actions_since_last_login) %> + <%= t("dashboard.progress.new_action" ) %> + <% end %>