diff --git a/app/assets/javascripts/admin/proposal_dashboard_actions.coffee b/app/assets/javascripts/admin/proposal_dashboard_actions.coffee deleted file mode 100644 index 24f83d18b..000000000 --- a/app/assets/javascripts/admin/proposal_dashboard_actions.coffee +++ /dev/null @@ -1,3 +0,0 @@ -# Place all the behaviors and hooks related to the matching controller here. -# All this logic will automatically be available in application.js. -# You can use CoffeeScript in this file: http://coffeescript.org/ diff --git a/app/assets/javascripts/dashboard_graphs.js b/app/assets/javascripts/dashboard_graphs.js index 75de05bca..cba106998 100644 --- a/app/assets/javascripts/dashboard_graphs.js +++ b/app/assets/javascripts/dashboard_graphs.js @@ -73,51 +73,3 @@ }); }); })(); - -// function drawProposalGraph(data) { -// var xColumnValues = [ 'x' ], -// progressColumnValues = [ 'Progreso' ]; // [ '<%= t('.progress') %>' ], -// key; -// -// for (key in data) { -// if (data.hasOwnProperty(key)) { -// xColumnValues.push(key); -// progressColumnValues.push(data[key]); -// } -// } -// -// c3.generate({ -// bindto: '#proposal-graph', -// data: { -// x: 'x', -// columns: [ -// xColumnValues, -// progressColumnValues -// ] -// }, -// axis: { -// y: { -// label: { -// text: 'Apoyos', // '<%= t '.supports' %> ', -// position: 'outer-middle' -// } -// }, -// x: { -// type: 'category' -// } -// } -// }); -// } -// -// $(document).ready(function () { -// $.ajax({ -// url: '<%= supports_proposal_dashboard_index_path(proposal, format: :json) %>', -// cache: false, -// success: function (data) { -// drawProposalGraph(data); -// }, -// data: { -// group_by: '<%= params[:group_by] %>' -// } -// }); -// }); diff --git a/app/assets/stylesheets/admin/proposal_dashboard_actions.scss b/app/assets/stylesheets/admin/proposal_dashboard_actions.scss deleted file mode 100644 index 6153445cd..000000000 --- a/app/assets/stylesheets/admin/proposal_dashboard_actions.scss +++ /dev/null @@ -1,3 +0,0 @@ -// Place all the styles related to the Admin::ProposalDashboardActions controller here. -// They will automatically be included in application.css. -// You can use Sass (SCSS) here: http://sass-lang.com/ diff --git a/app/controllers/admin/proposal_dashboard_actions_controller.rb b/app/controllers/admin/proposal_dashboard_actions_controller.rb index 30fa994fe..811e3e45b 100644 --- a/app/controllers/admin/proposal_dashboard_actions_controller.rb +++ b/app/controllers/admin/proposal_dashboard_actions_controller.rb @@ -38,8 +38,13 @@ class Admin::ProposalDashboardActionsController < Admin::BaseController end def destroy - proposal_dashboard_action.destroy - redirect_to admin_proposal_dashboard_actions_path, notice: t('admin.proposal_dashboard_actions.delete.success') + if proposal_dashboard_action.destroy + flash[:notice] = t('admin.proposal_dashboard_actions.delete.success') + else + flash[:error] = proposal_dashboard_action.errors.full_messages.join(',') + end + + redirect_to admin_proposal_dashboard_actions_path end private diff --git a/app/controllers/moderation/administrator_tasks_controller.rb b/app/controllers/moderation/administrator_tasks_controller.rb deleted file mode 100644 index efdb727f8..000000000 --- a/app/controllers/moderation/administrator_tasks_controller.rb +++ /dev/null @@ -1,27 +0,0 @@ -# frozen_string_literal: true - -class Moderation::AdministratorTasksController < Moderation::BaseController - helper_method :administrator_task - - def index - authorize! :index, AdministratorTask - @administrator_tasks = AdministratorTask.pending - end - - def edit - authorize! :edit, administrator_task - end - - def update - authorize! :update, administrator_task - - administrator_task.update(user: current_user, executed_at: Time.now) - redirect_to moderation_administrator_tasks_path, { flash: { notice: t('.success') } } - end - - private - - def administrator_task - @administrator_task ||= AdministratorTask.find(params[:id]) - end -end diff --git a/app/helpers/admin_helper.rb b/app/helpers/admin_helper.rb index 988d03a00..3de223f8e 100644 --- a/app/helpers/admin_helper.rb +++ b/app/helpers/admin_helper.rb @@ -44,6 +44,10 @@ module AdminHelper ["homepage", "cards"].include?(controller_name) end + def menu_proposals_dashboard? + ["proposal_dashboard_actions", "administrator_tasks"].include?(controller_name) + end + def official_level_options options = [["", 0]] (1..5).each do |i| diff --git a/app/views/admin/_menu.html.erb b/app/views/admin/_menu.html.erb index ea26637bb..3c8a3637d 100644 --- a/app/views/admin/_menu.html.erb +++ b/app/views/admin/_menu.html.erb @@ -223,10 +223,6 @@ <%= link_to t("admin.menu.geozones"), admin_geozones_path %> -
  • > - <%= link_to ProposalDashboardAction.model_name.human(count: 2), admin_proposal_dashboard_actions_path %> -
  • -
  • > <%= link_to t("admin.menu.site_customization.images"), admin_site_customization_images_path %> @@ -238,5 +234,21 @@
  • - +
  • + + + <%= t("admin.menu.proposals_dashboard") %> + + +
  • diff --git a/app/views/moderation/_menu.html.erb b/app/views/moderation/_menu.html.erb index e13c74b2b..8d7abb85d 100644 --- a/app/views/moderation/_menu.html.erb +++ b/app/views/moderation/_menu.html.erb @@ -42,12 +42,5 @@ <%= t("moderation.menu.users") %> <% end %> - -
  • > - <%= link_to moderation_administrator_tasks_path do %> - - <%= t 'moderation.menu.administrator_tasks' %> - <% end %> -
  • diff --git a/app/views/moderation/administrator_tasks/_form.html.erb b/app/views/moderation/administrator_tasks/_form.html.erb deleted file mode 100644 index a5bd8ca81..000000000 --- a/app/views/moderation/administrator_tasks/_form.html.erb +++ /dev/null @@ -1,15 +0,0 @@ -<%= form_for [:moderation, administrator_task] do |f| %> - -
    -
    <%=t '.proposal', title: administrator_task.source.proposal.title %>
    -

    <%=t '.request', title: administrator_task.source.proposal_dashboard_action.title %>

    - <%== administrator_task.source.comments unless administrator_task.source.comments.blank? %> - <%= link_to t('.check_details'), proposal_path(administrator_task.source.proposal), target: '_blank' %> -
    - -
    -
    - <%= f.submit(class: 'button expanded', value: t('.solve')) %> -
    -
    -<% end %> diff --git a/app/views/moderation/administrator_tasks/edit.html.erb b/app/views/moderation/administrator_tasks/edit.html.erb deleted file mode 100644 index 155cae8c2..000000000 --- a/app/views/moderation/administrator_tasks/edit.html.erb +++ /dev/null @@ -1,9 +0,0 @@ -
    -
    - <%= back_link_to moderation_administrator_tasks_path, t('.back') %> - -

    <%= t('.solving') %>

    - - <%= render 'form' %> -
    -
    diff --git a/app/views/moderation/administrator_tasks/index.html.erb b/app/views/moderation/administrator_tasks/index.html.erb deleted file mode 100644 index 73ad994cc..000000000 --- a/app/views/moderation/administrator_tasks/index.html.erb +++ /dev/null @@ -1,34 +0,0 @@ -

    - <%= AdministratorTask.model_name.human(count: 2) %> -

    - - - - - - - - - - - <% if @administrator_tasks.empty? %> - - - - <% end %> - - <% @administrator_tasks.each do |task| %> - - - - - <% end %> - -
    <%= AdministratorTask.human_attribute_name(:source) %>
    <%= t '.no_records' %>
    - <%= task.source.proposal.title %>: - <%= task.source.proposal_dashboard_action.title %> - - <%= link_to t('.solve'), - edit_moderation_administrator_task_path(task), - class: 'edit-banner button hollow' %> -
    diff --git a/config/locales/en/admin.yml b/config/locales/en/admin.yml index 1c81a9343..bd0825c5f 100644 --- a/config/locales/en/admin.yml +++ b/config/locales/en/admin.yml @@ -545,6 +545,8 @@ en: title_booths: Voting booths legislation: Collaborative Legislation users: Users + proposals_dashboard: Proposals dashboard + administrator_tasks: Pending tasks administrators: index: title: Administrators @@ -1318,3 +1320,17 @@ en: submit_header: Save header card_title: Edit card submit_card: Save card + administrator_tasks: + index: + solve: Solve + no_records: There are no pending tasks + edit: + back: Back to pending tasks list + solving: Solve pending task + form: + solve: Mark as solved + proposal: "The proposal: %{title}" + request: "Has requested: %{title}" + check_details: Check the proposal details + update: + success: The task has been marked as solved. diff --git a/config/locales/en/moderation.yml b/config/locales/en/moderation.yml index 79494f94c..4b1568538 100644 --- a/config/locales/en/moderation.yml +++ b/config/locales/en/moderation.yml @@ -49,7 +49,6 @@ en: proposals: Proposals proposal_notifications: Proposals notifications users: Block users - administrator_tasks: Pending tasks proposals: index: block_authors: Block authors @@ -96,17 +95,3 @@ en: search_placeholder: email or name of user title: Block users notice_hide: User blocked. All of this user's debates and comments have been hidden. - administrator_tasks: - index: - solve: Solve - no_records: There are no pending tasks - edit: - back: Back to pending tasks list - solving: Solve pending task - form: - solve: Mark as solved - proposal: "The proposal: %{title}" - request: "Has requested: %{title}" - check_details: Check the proposal details - update: - success: The task has been marked as solved. diff --git a/config/locales/es/admin.yml b/config/locales/es/admin.yml index 13b66a2dc..4f88bb7ee 100644 --- a/config/locales/es/admin.yml +++ b/config/locales/es/admin.yml @@ -545,6 +545,8 @@ es: title_booths: Urnas de votación legislation: Legislación colaborativa users: Usuarios + proposals_dashboard: Panel de control de propuestas + administrator_tasks: Tareas pendientes administrators: index: title: Administradores @@ -1319,3 +1321,17 @@ es: submit_header: Guardar encabezado card_title: Editar tarjeta submit_card: Guardar tarjeta + administrator_tasks: + index: + solve: Resolver + no_records: No hay tareas pendientes + edit: + back: Volver a la lista de tareas pendientes + solving: Resolver tarea pendiente + form: + solve: Marcar como resuelta + proposal: "La propuesta: %{title}" + request: "Ha solicitado: %{title}" + check_details: Ver los detalles de la propuesta + update: + success: La tarea ha sido marcada como resuelta diff --git a/config/locales/es/moderation.yml b/config/locales/es/moderation.yml index 289d06018..c51013aee 100644 --- a/config/locales/es/moderation.yml +++ b/config/locales/es/moderation.yml @@ -49,7 +49,6 @@ es: proposals: Propuestas proposal_notifications: Notificaciones de propuestas users: Bloquear usuarios - administrator_tasks: Tareas pendientes proposals: index: block_authors: Bloquear autores @@ -96,17 +95,3 @@ es: search_placeholder: email o nombre de usuario title: Bloquear usuarios notice_hide: Usuario bloqueado. Se han ocultado todos sus debates y comentarios. - administrator_tasks: - index: - solve: Resolver - no_records: No hay tareas pendientes - edit: - back: Volver a la lista de tareas pendientes - solving: Resolver tarea pendiente - form: - solve: Marcar como resuelta - proposal: "La propuesta: %{title}" - request: "Ha solicitado: %{title}" - check_details: Ver los detalles de la propuesta - update: - success: La tarea ha sido marcada como resuelta diff --git a/config/routes/admin.rb b/config/routes/admin.rb index 62c24bd96..b01cb3be7 100644 --- a/config/routes/admin.rb +++ b/config/routes/admin.rb @@ -196,5 +196,6 @@ namespace :admin do resources :feeds, only: [:update] end - resources :proposal_dashboard_actions, only: %i[index new create edit update destroy] + resources :proposal_dashboard_actions, only: [:index, :new, :create, :edit, :update, :destroy] + resources :administrator_tasks, only: [:index, :edit, :update] end diff --git a/spec/features/moderation/administrator_tasks_spec.rb b/spec/features/moderation/administrator_tasks_spec.rb deleted file mode 100644 index 148967b44..000000000 --- a/spec/features/moderation/administrator_tasks_spec.rb +++ /dev/null @@ -1,74 +0,0 @@ -# frozen_string_literal: true - -require 'rails_helper' - -describe 'Administrator tasks moderation' do - let(:moderator) { create(:moderator) } - - before do - login_as moderator.user - end - - context 'when accessing the pending task list' do - context 'and no pending task' do - before do - visit moderation_administrator_tasks_path - end - - it 'informs that there are no pending tasks' do - expect(page).to have_content('There are no pending tasks') - end - end - - context 'and there are pending tasks' do - let!(:task) { create :administrator_task, :pending } - - before do - visit moderation_administrator_tasks_path - end - - it 'shows the related proposal title' do - expect(page).to have_content(task.source.proposal.title) - end - - it 'shows the requested action title' do - expect(page).to have_content(task.source.proposal_dashboard_action.title) - end - - it 'has a link that allows solving the request' do - expect(page).to have_link('Solve') - end - end - end - - context 'when solving a pending task' do - let!(:task) { create :administrator_task, :pending } - - before do - visit moderation_administrator_tasks_path - click_link 'Solve' - end - - it 'contains a link to the proposal' do - expect(page).to have_link('Check the proposal details') - end - - it 'contains a button that solves the request' do - expect(page).to have_button('Mark as solved') - end - - it 'shows the comments added by the user during the request' do - expect(page).to have_content(task.source.comments) - end - - context 'and the Mark as solved button is pressed' do - before do - click_button 'Mark as solved' - end - - it 'The proposal dissapears from the list' do - expect(page).not_to have_content(task.source.proposal.title) - end - end - end -end diff --git a/spec/models/abilities/administrator_spec.rb b/spec/models/abilities/administrator_spec.rb index 8408ab7f7..fcf2652d7 100644 --- a/spec/models/abilities/administrator_spec.rb +++ b/spec/models/abilities/administrator_spec.rb @@ -28,6 +28,8 @@ describe Abilities::Administrator do let(:hidden_comment) { create(:comment, :hidden) } let(:hidden_proposal) { create(:proposal, :hidden) } + let(:administrator_task) { create(:administrator_task) } + it { should be_able_to(:index, Debate) } it { should be_able_to(:show, debate) } it { should be_able_to(:vote, debate) } @@ -88,4 +90,7 @@ describe Abilities::Administrator do it { should_not be_able_to(:destroy, budget_investment_image) } it { should_not be_able_to(:destroy, budget_investment_document) } it { should be_able_to(:manage, ProposalDashboardAction) } + + it { is_expected.to be_able_to :manage, AdministratorTask } + it { is_expected.to be_able_to :manage, administrator_task } end diff --git a/spec/models/abilities/moderator_spec.rb b/spec/models/abilities/moderator_spec.rb index 9088e4468..a2b374a85 100644 --- a/spec/models/abilities/moderator_spec.rb +++ b/spec/models/abilities/moderator_spec.rb @@ -21,7 +21,6 @@ describe Abilities::Moderator do let(:hidden_debate) { create(:debate, :hidden) } let(:hidden_comment) { create(:comment, :hidden) } let(:hidden_proposal) { create(:proposal, :hidden) } - let(:administrator_task) { create(:administrator_task) } it { should be_able_to(:index, Debate) } it { should be_able_to(:show, debate) } @@ -32,9 +31,6 @@ describe Abilities::Moderator do it { should be_able_to(:read, Organization) } - it { is_expected.to be_able_to :manage, AdministratorTask } - it { is_expected.to be_able_to :manage, administrator_task } - describe "organizations" do let(:pending_organization) { create(:organization) } let(:rejected_organization) { create(:organization, :rejected) }