diff --git a/app/assets/stylesheets/proposal.scss b/app/assets/stylesheets/proposal.scss index c5d02c38c..98496fe2d 100644 --- a/app/assets/stylesheets/proposal.scss +++ b/app/assets/stylesheets/proposal.scss @@ -264,7 +264,6 @@ min-height: 200pt; .bottom-container { - position: relative; padding-left: 0; padding-right: 0; @@ -276,32 +275,40 @@ } } - .resource-card.success { - background-color: #c5f6eb; - + .resource-card { i { display: inline-block; width: 20pt; height: 20pt; - color: #00cf96; border-radius: 10pt; - border: 1pt solid #00cf96; padding-right: 4pt; } } + .resource-card.primary { + background-color: #d3edf6; + + i { + color: #116f8e; + border: 1pt solid #116f8e; + } + } + + .resource-card.success { + background-color: #c5f6eb; + + i { + color: #00cf96; + border: 1pt solid #00cf96; + } + } + .resource-card.alert { background-color: #ffe5e8; i { - display: inline-block; - width: 20pt; - height: 20pt; color: #ff828b; - border-radius: 10pt; border: 1pt solid #ff828b; - padding-right: 4pt; - } } diff --git a/app/controllers/proposals_dashboard_controller.rb b/app/controllers/proposals_dashboard_controller.rb index de842190f..d023eb7bd 100644 --- a/app/controllers/proposals_dashboard_controller.rb +++ b/app/controllers/proposals_dashboard_controller.rb @@ -37,8 +37,9 @@ class ProposalsDashboardController < Dashboard::BaseController if @proposal_executed_dashboard_action.save AdministratorTask.create(source: @proposal_executed_dashboard_action) - redirect_to proposal_dashboard_index_path(proposal.to_param), { flash: { info: t('.success') } } + redirect_to progress_proposal_dashboard_index_path(proposal.to_param), { flash: { info: t('.success') } } else + flash.now[:alert] = @proposal_executed_dashboard_action.errors.full_messages.join('
') render :new_request end end diff --git a/app/helpers/proposals_dashboard_helper.rb b/app/helpers/proposals_dashboard_helper.rb index b10acbf9c..ace936650 100644 --- a/app/helpers/proposals_dashboard_helper.rb +++ b/app/helpers/proposals_dashboard_helper.rb @@ -90,4 +90,17 @@ module ProposalsDashboardHelper return nil if params[:group_by] == 'month' 'hollow' end + + def resource_card_class(resource, proposal) + return 'alert' unless resource.active_for?(proposal) + return 'success' if resource.executed_for?(proposal) + 'primary' + end + + def resource_tooltip(resource, proposal) + return t('proposals_dashboard.resource.resource_locked') unless resource.active_for?(proposal) + return t('proposals_dashboard.resource.view_resource') if resource.executed_for?(proposal) + return t('proposals_dashboard.resource.resource_requested') if resource.requested_for?(proposal) + t('proposals_dashboard.resource.request_resource') + end end diff --git a/app/models/proposal_dashboard_action.rb b/app/models/proposal_dashboard_action.rb index d70f3ec9f..221034ce5 100644 --- a/app/models/proposal_dashboard_action.rb +++ b/app/models/proposal_dashboard_action.rb @@ -60,6 +60,20 @@ class ProposalDashboardAction < ActiveRecord::Base required_supports <= proposal.votes_for.size && day_offset <= (Date.today - published_at).to_i end + def requested_for?(proposal) + executed_action = proposal_executed_dashboard_actions.find_by(proposal: proposal) + return false if executed_action.nil? + + executed_action.administrator_tasks.any? + end + + def executed_for?(proposal) + executed_action = proposal_executed_dashboard_actions.find_by(proposal: proposal) + return false if executed_action.nil? + + executed_action.administrator_tasks.where.not(executed_at: nil).any? + end + def self.next_goal_for(proposal) course_for(proposal).first end diff --git a/app/views/proposals_dashboard/_form.html.erb b/app/views/proposals_dashboard/_form.html.erb index 262a5a9bd..81e8e35a6 100644 --- a/app/views/proposals_dashboard/_form.html.erb +++ b/app/views/proposals_dashboard/_form.html.erb @@ -1,4 +1,4 @@ -<% if proposal_dashboard_action.request_to_administrators %> +<% if proposal_dashboard_action.request_to_administrators && !proposal_dashboard_action.requested_for?(proposal) %> <%= form_for @proposal_executed_dashboard_action, url: create_request_proposal_dashboard_url(proposal, proposal_dashboard_action) do |f| %>
diff --git a/app/views/proposals_dashboard/_poll_resource.html.erb b/app/views/proposals_dashboard/_poll_resource.html.erb index f5c530d17..02649ff94 100644 --- a/app/views/proposals_dashboard/_poll_resource.html.erb +++ b/app/views/proposals_dashboard/_poll_resource.html.erb @@ -1,9 +1,11 @@ <% if can?(:manage_polls, proposal) %>
-
+

- +

<%= t('proposals_dashboard.menu.polls') %>

@@ -13,7 +15,7 @@

- <%= link_to t('proposals_dashboard.resource.view_resource'), proposal_dashboard_polls_path(proposal.to_param), class: 'button success' %> + <%= link_to t('proposals_dashboard.resource.request_resource'), proposal_dashboard_polls_path(proposal.to_param), class: 'button primary' %>
diff --git a/app/views/proposals_dashboard/_resource.html.erb b/app/views/proposals_dashboard/_resource.html.erb index 8adf199cd..3313c5cc3 100644 --- a/app/views/proposals_dashboard/_resource.html.erb +++ b/app/views/proposals_dashboard/_resource.html.erb @@ -1,9 +1,13 @@
-
+

- <% if resource.active_for?(proposal) %> + <% if resource.executed_for?(proposal) %> + <% elsif resource.active_for?(proposal) %> + <% else %> <% end %> @@ -15,10 +19,16 @@

- <% if resource.active_for?(proposal) %> + <% if resource.executed_for?(proposal) %>
<%= link_to t('.view_resource'), new_request_proposal_dashboard_path(proposal, resource), class: 'button success' %>
+ <% elsif resource.requested_for?(proposal) %> + <%= t('.resource_requested') %> + <% elsif resource.active_for?(proposal) %> +
+ <%= link_to t('.request_resource'), new_request_proposal_dashboard_path(proposal, resource), class: 'button primary' %> +
<% else %> <%== resoure_availability_label(resource) %> diff --git a/config/locales/en/general.yml b/config/locales/en/general.yml index b4b0afa8e..8ff50b829 100644 --- a/config/locales/en/general.yml +++ b/config/locales/en/general.yml @@ -536,6 +536,9 @@ en: required_supports: "%{supports} supports required" and: and view_resource: See resource + resource_requested: Resource already requested + request_resource: Request resource + resource_locked: Resource locked recommended_actions: title: Recommended actions next_goal: diff --git a/config/locales/es/general.yml b/config/locales/es/general.yml index 358f8293b..3c2d6fdd9 100644 --- a/config/locales/es/general.yml +++ b/config/locales/es/general.yml @@ -536,6 +536,9 @@ es: required_supports: "%{supports} apoyos necesarios" and: y view_resource: Ver recurso + resource_requested: Recurso solicitado + request_resource: Solicitar recurso + resource_locked: Recurso bloqueado recommended_actions: title: Acciones recomendadas next_goal: