From ac6d50e06b76766dd66a1349ff69dfdc059a8a37 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Javi=20Mart=C3=ADn?= Date: Fri, 1 Nov 2019 20:08:46 +0100 Subject: [PATCH] Remove tracker role The current tracking section had a few issues: * When browsing as an admin, this section becomes useless since no investments are shown * Browsing investments in the admin section, you're suddenly redirected to the tracking section, making navigation confusing * One test related to the officing dashboard failed due to these changes and had been commented * Several views and controller methods were copied from other sections, leading to duplication and making the code harder to maintain * Tracking routes were defined for proposals and legislation processes, but in the tracking section only investments were shown * Probably many more things, since these issues were detected after only an hour reviewing and testing the code So we're removing this untested section before releasing version 1.1. We might add it back afterwards. --- .../javascripts/budget_edit_associations.js | 4 +- ...budget_investment_milestones_controller.rb | 2 +- ...get_investment_progress_bars_controller.rb | 7 + .../admin/budget_investments_controller.rb | 3 +- app/controllers/admin/budgets_controller.rb | 4 +- .../legislation/milestones_controller.rb | 6 +- .../legislation/progress_bars_controller.rb | 2 +- .../milestones_controller.rb | 11 +- .../progress_bars_controller.rb | 10 +- .../proposal_milestones_controller.rb | 2 +- .../proposal_progress_bars_controller.rb | 2 +- app/controllers/admin/trackers_controller.rb | 57 --- app/controllers/tracking/base_controller.rb | 14 - ...get_investment_progress_bars_controller.rb | 17 - .../tracking/budget_investments_controller.rb | 81 ---- .../tracking/budgets_controller.rb | 14 - .../legislation/milestones_controller.rb | 18 - app/helpers/trackers_helper.rb | 19 - app/helpers/translatable_form_helper.rb | 2 +- app/helpers/users_helper.rb | 10 +- app/models/abilities/administrator.rb | 1 - app/models/abilities/tracker.rb | 12 - app/models/ability.rb | 1 - app/models/budget.rb | 2 - app/models/budget/investment.rb | 7 - app/models/budget/tracker_assignment.rb | 6 - app/models/budget_tracker.rb | 4 - app/models/tracker.rb | 30 -- app/models/user.rb | 5 - app/views/admin/_menu.html.erb | 4 - .../admin/budget_investments/edit.html.erb | 10 - .../admin/budget_investments/show.html.erb | 11 +- app/views/admin/budgets/_form.html.erb | 3 +- .../legislation/milestones/index.html.erb | 2 +- .../milestones/_form.html.erb | 6 +- .../milestones/_milestones.html.erb | 36 +- .../milestones/edit.html.erb | 2 +- .../milestones/new.html.erb | 2 +- .../progress_bars/_form.html.erb | 2 +- .../progress_bars/_progress_bars.html.erb | 22 +- app/views/admin/progress_bars/edit.html.erb | 15 + app/views/admin/progress_bars/index.html.erb | 9 + app/views/admin/progress_bars/new.html.erb | 9 + app/views/admin/proposals/show.html.erb | 2 +- app/views/admin/trackers/edit.html.erb | 15 - app/views/admin/trackers/index.html.erb | 48 --- app/views/admin/trackers/search.html.erb | 58 --- app/views/admin/trackers/show.html.erb | 22 -- app/views/shared/_admin_login_items.html.erb | 7 - app/views/tracking/_menu.html.erb | 17 - .../tracking/budget_investments/edit.html.erb | 12 - .../budget_investments/index.html.erb | 58 --- .../tracking/budget_investments/show.html.erb | 47 --- app/views/tracking/budgets/index.html.erb | 36 -- .../tracking/progress_bars/edit.html.erb | 15 - .../tracking/progress_bars/index.html.erb | 9 - app/views/tracking/progress_bars/new.html.erb | 9 - config/i18n-tasks.yml | 3 +- config/locales/en/admin.yml | 74 ++-- config/locales/en/general.yml | 1 - config/locales/en/tracking.yml | 90 ----- config/locales/es/admin.yml | 74 ++-- config/locales/es/general.yml | 1 - config/locales/es/tracking.yml | 90 ----- config/routes.rb | 1 - config/routes/admin.rb | 11 +- config/routes/tracking.rb | 23 -- db/migrate/20191101183155_remove_trackers.rb | 12 + db/schema.rb | 34 +- spec/factories/users.rb | 4 - spec/features/admin/budgets_spec.rb | 9 +- spec/features/admin/translatable_spec.rb | 2 +- spec/features/officing_spec.rb | 2 +- .../tracking/budget_investments_spec.rb | 351 ------------------ spec/features/tracking/budgets_spec.rb | 29 -- spec/shared/features/admin_progressable.rb | 2 +- 76 files changed, 221 insertions(+), 1433 deletions(-) rename app/controllers/{tracking => admin}/budget_investment_milestones_controller.rb (55%) create mode 100644 app/controllers/admin/budget_investment_progress_bars_controller.rb rename app/controllers/{tracking => admin}/legislation/progress_bars_controller.rb (69%) rename app/controllers/{tracking => admin}/milestones_controller.rb (75%) rename app/controllers/{tracking => admin}/progress_bars_controller.rb (72%) rename app/controllers/{tracking => admin}/proposal_milestones_controller.rb (52%) rename app/controllers/{tracking => admin}/proposal_progress_bars_controller.rb (51%) delete mode 100644 app/controllers/admin/trackers_controller.rb delete mode 100644 app/controllers/tracking/base_controller.rb delete mode 100644 app/controllers/tracking/budget_investment_progress_bars_controller.rb delete mode 100644 app/controllers/tracking/budget_investments_controller.rb delete mode 100644 app/controllers/tracking/budgets_controller.rb delete mode 100644 app/controllers/tracking/legislation/milestones_controller.rb delete mode 100644 app/helpers/trackers_helper.rb delete mode 100644 app/models/abilities/tracker.rb delete mode 100644 app/models/budget/tracker_assignment.rb delete mode 100644 app/models/budget_tracker.rb delete mode 100644 app/models/tracker.rb rename app/views/{tracking => admin}/milestones/_form.html.erb (83%) rename app/views/{tracking => admin}/milestones/_milestones.html.erb (59%) rename app/views/{tracking => admin}/milestones/edit.html.erb (65%) rename app/views/{tracking => admin}/milestones/new.html.erb (72%) rename app/views/{tracking => admin}/progress_bars/_form.html.erb (93%) rename app/views/{tracking => admin}/progress_bars/_progress_bars.html.erb (60%) create mode 100644 app/views/admin/progress_bars/edit.html.erb create mode 100644 app/views/admin/progress_bars/index.html.erb create mode 100644 app/views/admin/progress_bars/new.html.erb delete mode 100644 app/views/admin/trackers/edit.html.erb delete mode 100644 app/views/admin/trackers/index.html.erb delete mode 100644 app/views/admin/trackers/search.html.erb delete mode 100644 app/views/admin/trackers/show.html.erb delete mode 100644 app/views/tracking/_menu.html.erb delete mode 100644 app/views/tracking/budget_investments/edit.html.erb delete mode 100644 app/views/tracking/budget_investments/index.html.erb delete mode 100644 app/views/tracking/budget_investments/show.html.erb delete mode 100644 app/views/tracking/budgets/index.html.erb delete mode 100644 app/views/tracking/progress_bars/edit.html.erb delete mode 100644 app/views/tracking/progress_bars/index.html.erb delete mode 100644 app/views/tracking/progress_bars/new.html.erb delete mode 100644 config/locales/en/tracking.yml delete mode 100644 config/locales/es/tracking.yml delete mode 100644 config/routes/tracking.rb create mode 100644 db/migrate/20191101183155_remove_trackers.rb delete mode 100644 spec/features/tracking/budget_investments_spec.rb delete mode 100644 spec/features/tracking/budgets_spec.rb diff --git a/app/assets/javascripts/budget_edit_associations.js b/app/assets/javascripts/budget_edit_associations.js index 83c7ae3a6..37a2d328e 100644 --- a/app/assets/javascripts/budget_edit_associations.js +++ b/app/assets/javascripts/budget_edit_associations.js @@ -4,15 +4,13 @@ initialize: function() { $(".js-budget-users-list [type='checkbox']").on({ change: function() { - var admin_count, tracker_count, valuator_count; + var admin_count, valuator_count; admin_count = $("#administrators_list :checked").length; valuator_count = $("#valuators_list :checked").length; - tracker_count = $("#trackers_list :checked").length; App.I18n.set_pluralize($(".js-budget-show-administrators-list"), admin_count); App.I18n.set_pluralize($(".js-budget-show-valuators-list"), valuator_count); - App.I18n.set_pluralize($(".js-budget-show-trackers-list"), tracker_count); } }); $(".js-budget-show-users-list").on({ diff --git a/app/controllers/tracking/budget_investment_milestones_controller.rb b/app/controllers/admin/budget_investment_milestones_controller.rb similarity index 55% rename from app/controllers/tracking/budget_investment_milestones_controller.rb rename to app/controllers/admin/budget_investment_milestones_controller.rb index 25ad0cab6..6879298d9 100644 --- a/app/controllers/tracking/budget_investment_milestones_controller.rb +++ b/app/controllers/admin/budget_investment_milestones_controller.rb @@ -1,4 +1,4 @@ -class Tracking::BudgetInvestmentMilestonesController < Tracking::MilestonesController +class Admin::BudgetInvestmentMilestonesController < Admin::MilestonesController private def milestoneable diff --git a/app/controllers/admin/budget_investment_progress_bars_controller.rb b/app/controllers/admin/budget_investment_progress_bars_controller.rb new file mode 100644 index 000000000..4cc34570c --- /dev/null +++ b/app/controllers/admin/budget_investment_progress_bars_controller.rb @@ -0,0 +1,7 @@ +class Admin::BudgetInvestmentProgressBarsController < Admin::ProgressBarsController + private + + def progressable + Budget::Investment.find(params[:budget_investment_id]) + end +end diff --git a/app/controllers/admin/budget_investments_controller.rb b/app/controllers/admin/budget_investments_controller.rb index bb71ef946..78fcfc806 100644 --- a/app/controllers/admin/budget_investments_controller.rb +++ b/app/controllers/admin/budget_investments_controller.rb @@ -87,7 +87,7 @@ class Admin::BudgetInvestmentsController < Admin::BaseController def budget_investment_params attributes = [:external_url, :heading_id, :administrator_id, :tag_list, :valuation_tag_list, :incompatible, :visible_to_valuators, :selected, - :milestone_tag_list, tracker_ids: [], valuator_ids: [], valuator_group_ids: []] + :milestone_tag_list, valuator_ids: [], valuator_group_ids: []] params.require(:budget_investment).permit(attributes, translation_params(Budget::Investment)) end @@ -101,7 +101,6 @@ class Admin::BudgetInvestmentsController < Admin::BaseController def load_staff @admins = @budget.administrators.includes(:user) - @trackers = @budget.trackers.includes(:user).order(description: :asc).order("users.email ASC") @valuators = @budget.valuators.includes(:user).order(description: :asc).order("users.email ASC") end diff --git a/app/controllers/admin/budgets_controller.rb b/app/controllers/admin/budgets_controller.rb index 30395face..f95c8c6d9 100644 --- a/app/controllers/admin/budgets_controller.rb +++ b/app/controllers/admin/budgets_controller.rb @@ -71,8 +71,7 @@ class Admin::BudgetsController < Admin::BaseController valid_attributes = [:phase, :currency_symbol, administrator_ids: [], - valuator_ids: [], - tracker_ids: [] + valuator_ids: [] ] + descriptions params.require(:budget).permit(*valid_attributes, *report_attributes, translation_params(Budget)) end @@ -83,7 +82,6 @@ class Admin::BudgetsController < Admin::BaseController def load_staff @admins = Administrator.includes(:user) - @trackers = Tracker.includes(:user).order(description: :asc).order("users.email ASC") @valuators = Valuator.includes(:user).order(description: :asc).order("users.email ASC") end end diff --git a/app/controllers/admin/legislation/milestones_controller.rb b/app/controllers/admin/legislation/milestones_controller.rb index aba0c673f..09d55f6ca 100644 --- a/app/controllers/admin/legislation/milestones_controller.rb +++ b/app/controllers/admin/legislation/milestones_controller.rb @@ -1,4 +1,4 @@ -class Admin::Legislation::MilestonesController < Tracking::MilestonesController +class Admin::Legislation::MilestonesController < Admin::MilestonesController include FeatureFlags feature_flag :legislation @@ -11,4 +11,8 @@ class Admin::Legislation::MilestonesController < Tracking::MilestonesController def milestoneable ::Legislation::Process.find(params[:process_id]) end + + def milestoneable_path + admin_legislation_process_milestones_path(milestoneable) + end end diff --git a/app/controllers/tracking/legislation/progress_bars_controller.rb b/app/controllers/admin/legislation/progress_bars_controller.rb similarity index 69% rename from app/controllers/tracking/legislation/progress_bars_controller.rb rename to app/controllers/admin/legislation/progress_bars_controller.rb index 38ed60788..ba00d5e91 100644 --- a/app/controllers/tracking/legislation/progress_bars_controller.rb +++ b/app/controllers/admin/legislation/progress_bars_controller.rb @@ -1,4 +1,4 @@ -class Tracking::Legislation::ProgressBarsController < Tracking::ProgressBarsController +class Admin::Legislation::ProgressBarsController < Admin::ProgressBarsController include FeatureFlags feature_flag :legislation diff --git a/app/controllers/tracking/milestones_controller.rb b/app/controllers/admin/milestones_controller.rb similarity index 75% rename from app/controllers/tracking/milestones_controller.rb rename to app/controllers/admin/milestones_controller.rb index 9d916c830..1ee5ecc10 100644 --- a/app/controllers/tracking/milestones_controller.rb +++ b/app/controllers/admin/milestones_controller.rb @@ -1,4 +1,4 @@ -class Tracking::MilestonesController < Tracking::BaseController +class Admin::MilestonesController < Admin::BaseController include Translatable include ImageAttributes @@ -17,7 +17,7 @@ class Tracking::MilestonesController < Tracking::BaseController def create @milestone = @milestoneable.milestones.new(milestone_params) if @milestone.save - redirect_to milestoneable_path, notice: t("tracking.milestones.create.notice") + redirect_to milestoneable_path, notice: t("admin.milestones.create.notice") else render :new end @@ -28,7 +28,7 @@ class Tracking::MilestonesController < Tracking::BaseController def update if @milestone.update(milestone_params) - redirect_to milestoneable_path, notice: t("tracking.milestones.update.notice") + redirect_to milestoneable_path, notice: t("admin.milestones.update.notice") else render :edit end @@ -36,7 +36,7 @@ class Tracking::MilestonesController < Tracking::BaseController def destroy @milestone.destroy! - redirect_to milestoneable_path, notice: t("tracking.milestones.delete.notice") + redirect_to milestoneable_path, notice: t("admin.milestones.delete.notice") end private @@ -67,7 +67,6 @@ class Tracking::MilestonesController < Tracking::BaseController end def milestoneable_path - polymorphic_path([current_user.administrator? ? :admin : :tracking, - *resource_hierarchy_for(@milestone.milestoneable)]) + polymorphic_path([:admin, *resource_hierarchy_for(@milestone.milestoneable)]) end end diff --git a/app/controllers/tracking/progress_bars_controller.rb b/app/controllers/admin/progress_bars_controller.rb similarity index 72% rename from app/controllers/tracking/progress_bars_controller.rb rename to app/controllers/admin/progress_bars_controller.rb index 0eb3340cd..1d05c0027 100644 --- a/app/controllers/tracking/progress_bars_controller.rb +++ b/app/controllers/admin/progress_bars_controller.rb @@ -1,4 +1,4 @@ -class Tracking::ProgressBarsController < Tracking::BaseController +class Admin::ProgressBarsController < Admin::BaseController include Translatable before_action :load_progressable @@ -15,7 +15,7 @@ class Tracking::ProgressBarsController < Tracking::BaseController def create @progress_bar = @progressable.progress_bars.new(progress_bar_params) if @progress_bar.save - redirect_to progress_bars_index, notice: t("tracking.progress_bars.create.notice") + redirect_to progress_bars_index, notice: t("admin.progress_bars.create.notice") else render :new end @@ -26,7 +26,7 @@ class Tracking::ProgressBarsController < Tracking::BaseController def update if @progress_bar.update(progress_bar_params) - redirect_to progress_bars_index, notice: t("tracking.progress_bars.update.notice") + redirect_to progress_bars_index, notice: t("admin.progress_bars.update.notice") else render :edit end @@ -34,7 +34,7 @@ class Tracking::ProgressBarsController < Tracking::BaseController def destroy @progress_bar.destroy! - redirect_to progress_bars_index, notice: t("tracking.progress_bars.delete.notice") + redirect_to progress_bars_index, notice: t("admin.progress_bars.delete.notice") end private @@ -64,6 +64,6 @@ class Tracking::ProgressBarsController < Tracking::BaseController end def progress_bars_index - polymorphic_path([:tracking, *resource_hierarchy_for(@progressable), ProgressBar.new]) + polymorphic_path([:admin, *resource_hierarchy_for(@progressable), ProgressBar.new]) end end diff --git a/app/controllers/tracking/proposal_milestones_controller.rb b/app/controllers/admin/proposal_milestones_controller.rb similarity index 52% rename from app/controllers/tracking/proposal_milestones_controller.rb rename to app/controllers/admin/proposal_milestones_controller.rb index c0507d4bf..5699183a9 100644 --- a/app/controllers/tracking/proposal_milestones_controller.rb +++ b/app/controllers/admin/proposal_milestones_controller.rb @@ -1,4 +1,4 @@ -class Tracking::ProposalMilestonesController < Tracking::MilestonesController +class Admin::ProposalMilestonesController < Admin::MilestonesController private def milestoneable diff --git a/app/controllers/tracking/proposal_progress_bars_controller.rb b/app/controllers/admin/proposal_progress_bars_controller.rb similarity index 51% rename from app/controllers/tracking/proposal_progress_bars_controller.rb rename to app/controllers/admin/proposal_progress_bars_controller.rb index f402b5b85..2da652e05 100644 --- a/app/controllers/tracking/proposal_progress_bars_controller.rb +++ b/app/controllers/admin/proposal_progress_bars_controller.rb @@ -1,4 +1,4 @@ -class Tracking::ProposalProgressBarsController < Tracking::ProgressBarsController +class Admin::ProposalProgressBarsController < Admin::ProgressBarsController private def progressable diff --git a/app/controllers/admin/trackers_controller.rb b/app/controllers/admin/trackers_controller.rb deleted file mode 100644 index c244d052f..000000000 --- a/app/controllers/admin/trackers_controller.rb +++ /dev/null @@ -1,57 +0,0 @@ -class Admin::TrackersController < Admin::BaseController - load_and_authorize_resource - - before_action :set_tracker, only: [:show, :edit, :update, :destroy] - - def show - @tracker = Tracker.find(params[:id]) - end - - def index - @trackers = @trackers.page(params[:page]) - end - - def search - @users = User.search(params[:name_or_email]) - .includes(:tracker) - .page(params[:page]) - .for_render - end - - def create - @tracker = Tracker.new(tracker_params) - @tracker.save! - - redirect_to admin_trackers_path - end - - def edit - @tracker = Tracker.find(params[:id]) - end - - def update - @tracker = Tracker.find(params[:id]) - if @tracker.update(tracker_params) - notice = t("admin.trackers.form.updated") - redirect_to [:admin, @tracker], notice: notice - else - render :edit - end - end - - def destroy - @tracker.destroy! - redirect_to admin_trackers_path - end - - private - - def set_tracker - @tracker = Tracker.find(params[:id]) - end - - def tracker_params - params[:tracker][:description] = nil if params[:tracker][:description].blank? - params.require(:tracker).permit(:user_id, :description, :budget_investment_count) - end -end diff --git a/app/controllers/tracking/base_controller.rb b/app/controllers/tracking/base_controller.rb deleted file mode 100644 index 2e459bc7b..000000000 --- a/app/controllers/tracking/base_controller.rb +++ /dev/null @@ -1,14 +0,0 @@ -class Tracking::BaseController < ApplicationController - layout "admin" - - before_action :authenticate_user! - before_action :verify_tracker - - skip_authorization_check - - private - - def verify_tracker - raise CanCan::AccessDenied unless current_user&.tracker? || current_user&.administrator? - end -end diff --git a/app/controllers/tracking/budget_investment_progress_bars_controller.rb b/app/controllers/tracking/budget_investment_progress_bars_controller.rb deleted file mode 100644 index 6e536d8ed..000000000 --- a/app/controllers/tracking/budget_investment_progress_bars_controller.rb +++ /dev/null @@ -1,17 +0,0 @@ -class Tracking::BudgetInvestmentProgressBarsController < Tracking::ProgressBarsController - before_action :restrict_access_to_assigned_items - - private - - def progressable - Budget::Investment.find(params[:budget_investment_id]) - end - - def restrict_access_to_assigned_items - return if current_user.administrator? || - Budget::TrackerAssignment.exists?(investment_id: params[:budget_investment_id], - tracker_id: current_user.tracker.id) - - raise ActionController::RoutingError.new("Not Found") - end -end diff --git a/app/controllers/tracking/budget_investments_controller.rb b/app/controllers/tracking/budget_investments_controller.rb deleted file mode 100644 index e5fe27f28..000000000 --- a/app/controllers/tracking/budget_investments_controller.rb +++ /dev/null @@ -1,81 +0,0 @@ -class Tracking::BudgetInvestmentsController < Tracking::BaseController - include FeatureFlags - include CommentableActions - - feature_flag :budgets - - before_action :restrict_access_to_assigned_items, only: [:show, :edit] - before_action :load_budget - before_action :load_investment, only: [:show, :edit] - - has_orders %w[oldest], only: [:show, :edit] - - load_and_authorize_resource :investment, class: "Budget::Investment" - - def index - @heading_filters = heading_filters - @investments = if current_user.tracker? && @budget.present? - current_user.tracker.investments_by_heading(heading_params, @budget) - .page(params[:page]) - else - Budget::Investment.none.page(params[:page]) - end - end - - def show - end - - def edit - end - - private - - def resource_model - Budget::Investment - end - - def resource_name - resource_model.parameterize(separator: "_") - end - - def load_budget - @budget = Budget.find(params[:budget_id]) - end - - def load_investment - @investment = @budget.investments.find params[:id] - end - - def heading_filters - investments = @budget.investments.by_tracker(current_user.tracker&.id).distinct - investment_headings = Budget::Heading.where(id: investments.pluck(:heading_id)) - .order(name: :asc) - all_headings_filter = [ - { - name: t("valuation.budget_investments.index.headings_filter_all"), - id: nil, - count: investments.size - } - ] - - investment_headings.reduce(all_headings_filter) do |filters, heading| - filters << { - name: heading.name, - id: heading.id, - count: investments.select { |i| i.heading_id == heading.id }.size - } - end.uniq - end - - def restrict_access_to_assigned_items - return if current_user.administrator? || - Budget::TrackerAssignment.exists?(investment_id: params[:id], - tracker_id: current_user.tracker.id) - - raise ActionController::RoutingError.new("Not Found") - end - - def heading_params - params.permit(:heading_id) - end -end diff --git a/app/controllers/tracking/budgets_controller.rb b/app/controllers/tracking/budgets_controller.rb deleted file mode 100644 index 0e33ecf03..000000000 --- a/app/controllers/tracking/budgets_controller.rb +++ /dev/null @@ -1,14 +0,0 @@ -class Tracking::BudgetsController < Tracking::BaseController - include FeatureFlags - feature_flag :budgets - - load_and_authorize_resource - - def index - @budget = current_budget - if @budget.present? - @investments = @budget.investments - .by_tracker(current_user.tracker) - end - end -end diff --git a/app/controllers/tracking/legislation/milestones_controller.rb b/app/controllers/tracking/legislation/milestones_controller.rb deleted file mode 100644 index 458bdb650..000000000 --- a/app/controllers/tracking/legislation/milestones_controller.rb +++ /dev/null @@ -1,18 +0,0 @@ -class Tracking::Legislation::MilestonesController < Tracking::MilestonesController - include FeatureFlags - feature_flag :legislation - - def index - @process = milestoneable - end - - private - - def milestoneable - ::Legislation::Process.find(params[:process_id]) - end - - def milestoneable_path - admin_legislation_process_milestones_path(milestoneable) - end -end diff --git a/app/helpers/trackers_helper.rb b/app/helpers/trackers_helper.rb deleted file mode 100644 index d0e1368ed..000000000 --- a/app/helpers/trackers_helper.rb +++ /dev/null @@ -1,19 +0,0 @@ -module TrackersHelper - def tracker_label(tracker) - truncate([tracker.name, tracker.email, tracker.description].compact.join(" - "), length: 100) - end - - def tracker_back_path(progressable) - if progressable.class.to_s == "Legislation::Process" - admin_legislation_process_milestones_path(progressable) - else - polymorphic_path([tracker_namespace, *resource_hierarchy_for(progressable)]) - end - end - - private - - def tracker_namespace - current_user.administrator? ? :admin : :tracking - end -end diff --git a/app/helpers/translatable_form_helper.rb b/app/helpers/translatable_form_helper.rb index aeafcc6ea..fb24e9b27 100644 --- a/app/helpers/translatable_form_helper.rb +++ b/app/helpers/translatable_form_helper.rb @@ -10,7 +10,7 @@ module TranslatableFormHelper end def backend_translations_enabled? - (controller.class.parents & [Admin, Management, Valuation, Tracking]).any? + (controller.class.parents & [Admin, Management, Valuation]).any? end def highlight_translation_html_class diff --git a/app/helpers/users_helper.rb b/app/helpers/users_helper.rb index f4ba9d4db..8d2aa8ef6 100644 --- a/app/helpers/users_helper.rb +++ b/app/helpers/users_helper.rb @@ -55,13 +55,11 @@ module UsersHelper current_user&.poll_officer? end - def current_tracker? - current_user&.tracker? - end - def show_admin_menu?(user = nil) - current_administrator? || current_moderator? || current_valuator? || current_manager? || - current_tracker? || (user&.administrator?) || current_poll_officer? + unless namespace == "officing" + current_administrator? || current_moderator? || current_valuator? || current_manager? || + (user&.administrator?) || current_poll_officer? + end end def interests_title_text(user) diff --git a/app/models/abilities/administrator.rb b/app/models/abilities/administrator.rb index 07238f548..e23962230 100644 --- a/app/models/abilities/administrator.rb +++ b/app/models/abilities/administrator.rb @@ -99,7 +99,6 @@ module Abilities can [:create, :destroy], DirectUpload can [:deliver], Newsletter, hidden_at: nil - can [:manage], ::Tracker can [:manage], Dashboard::AdministratorTask can [:edit, :update], DownloadSetting diff --git a/app/models/abilities/tracker.rb b/app/models/abilities/tracker.rb deleted file mode 100644 index a755d26fb..000000000 --- a/app/models/abilities/tracker.rb +++ /dev/null @@ -1,12 +0,0 @@ -module Abilities - class Tracker - include CanCan::Ability - - def initialize(user) - can :index, Budget - can [:index, :show, :edit], Budget::Investment - can :manage, Milestone - can :manage, ProgressBar - end - end -end diff --git a/app/models/ability.rb b/app/models/ability.rb index 128b000d5..38e8a565f 100644 --- a/app/models/ability.rb +++ b/app/models/ability.rb @@ -8,7 +8,6 @@ class Ability if user # logged-in users merge Abilities::Valuator.new(user) if user.valuator? - merge Abilities::Tracker.new(user) if user.tracker? if user.administrator? merge Abilities::Administrator.new(user) diff --git a/app/models/budget.rb b/app/models/budget.rb index 41a6c0869..57be318ca 100644 --- a/app/models/budget.rb +++ b/app/models/budget.rb @@ -32,8 +32,6 @@ class Budget < ApplicationRecord has_many :headings, through: :groups has_many :lines, through: :ballots, class_name: "Budget::Ballot::Line" has_many :phases, class_name: "Budget::Phase" - has_many :budget_trackers - has_many :trackers, through: :budget_trackers has_many :budget_administrators has_many :administrators, through: :budget_administrators has_many :budget_valuators diff --git a/app/models/budget/investment.rb b/app/models/budget/investment.rb index c0beb4b68..9a6fcedde 100644 --- a/app/models/budget/investment.rb +++ b/app/models/budget/investment.rb @@ -51,9 +51,6 @@ class Budget inverse_of: :commentable, class_name: "Comment" - has_many :tracker_assignments, dependent: :destroy - has_many :trackers, through: :tracker_assignments - delegate :name, :email, to: :author, prefix: true validates_translation :title, presence: true, length: { in: 4..Budget::Investment.title_max_length } @@ -108,10 +105,6 @@ class Budget where("budget_valuator_assignments.valuator_id = ?", valuator_id).joins(:valuator_assignments) end - def self.by_tracker(tracker_id) - where("budget_tracker_assignments.tracker_id = ?", tracker_id).joins(:tracker_assignments) - end - def self.by_valuator_group(valuator_group_id) joins(:valuator_group_assignments). where("budget_valuator_group_assignments.valuator_group_id = ?", valuator_group_id) diff --git a/app/models/budget/tracker_assignment.rb b/app/models/budget/tracker_assignment.rb deleted file mode 100644 index 38f1edbba..000000000 --- a/app/models/budget/tracker_assignment.rb +++ /dev/null @@ -1,6 +0,0 @@ -class Budget - class TrackerAssignment < ApplicationRecord - belongs_to :tracker, counter_cache: :budget_investment_count - belongs_to :investment, counter_cache: true - end -end diff --git a/app/models/budget_tracker.rb b/app/models/budget_tracker.rb deleted file mode 100644 index b7598227e..000000000 --- a/app/models/budget_tracker.rb +++ /dev/null @@ -1,4 +0,0 @@ -class BudgetTracker < ApplicationRecord - belongs_to :budget - belongs_to :tracker -end diff --git a/app/models/tracker.rb b/app/models/tracker.rb deleted file mode 100644 index 81f3d8021..000000000 --- a/app/models/tracker.rb +++ /dev/null @@ -1,30 +0,0 @@ -class Tracker < ApplicationRecord - belongs_to :user, touch: true - - delegate :name, :email, :name_and_email, to: :user - - has_many :tracker_assignments, dependent: :destroy, class_name: "Budget::TrackerAssignment" - has_many :investments, through: :tracker_assignments, class_name: "Budget::Investment" - - validates :user_id, presence: true, uniqueness: true - - def description_or_email - description.presence || email - end - - def description_or_name - description.presence || name - end - - def assigned_investment_ids - investment_ids - end - - def investments_by_heading(params, budget) - results = investments.by_budget(budget) - if params[:heading_id].present? - results = results.by_heading(params[:heading_id]) - end - results - end -end diff --git a/app/models/user.rb b/app/models/user.rb index a2afcf858..d8c53200d 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -14,7 +14,6 @@ class User < ApplicationRecord has_one :administrator has_one :moderator has_one :valuator - has_one :tracker has_one :manager has_one :poll_officer, class_name: "Poll::Officer" has_one :organization @@ -198,10 +197,6 @@ class User < ApplicationRecord valuator.present? end - def tracker? - tracker.present? - end - def manager? manager.present? end diff --git a/app/views/admin/_menu.html.erb b/app/views/admin/_menu.html.erb index 91245c0cf..0348cc4d9 100644 --- a/app/views/admin/_menu.html.erb +++ b/app/views/admin/_menu.html.erb @@ -212,10 +212,6 @@ <%= link_to t("admin.menu.valuators"), admin_valuators_path %> -
  • > - <%= link_to t("admin.menu.trackers"), admin_trackers_path %> -
  • -
  • > <%= link_to t("admin.menu.managers"), admin_managers_path %>
  • diff --git a/app/views/admin/budget_investments/edit.html.erb b/app/views/admin/budget_investments/edit.html.erb index e7d36337f..7aaddf857 100644 --- a/app/views/admin/budget_investments/edit.html.erb +++ b/app/views/admin/budget_investments/edit.html.erb @@ -89,16 +89,6 @@ <% end %> - -
    -
    - <%= f.label :tracker_ids, t("admin.budget_investments.edit.assigned_trackers") %> - -
    diff --git a/app/views/admin/budget_investments/show.html.erb b/app/views/admin/budget_investments/show.html.erb index b2584c35a..fe73c2a5f 100644 --- a/app/views/admin/budget_investments/show.html.erb +++ b/app/views/admin/budget_investments/show.html.erb @@ -50,15 +50,6 @@ <% end %>

    -

    - <%= t("admin.budget_investments.show.assigned_trackers") %>: - <% if @investment.trackers.any? %> - <%= @investment.trackers.collect(&:name_and_email).join(", ") %> - <% else %> - <%= t("admin.budget_investments.show.undefined") %> - <% end %> -

    -

    <%= link_to t("admin.budget_investments.show.edit_classification"), edit_admin_budget_budget_investment_path(@budget, @investment, @@ -77,4 +68,4 @@ <%= render "admin/change_logs/change_log", logs: @logs %> -<%= render "tracking/milestones/milestones", milestoneable: @investment %> +<%= render "admin/milestones/milestones", milestoneable: @investment %> diff --git a/app/views/admin/budgets/_form.html.erb b/app/views/admin/budgets/_form.html.erb index fbd7686b8..f9fc67a62 100644 --- a/app/views/admin/budgets/_form.html.erb +++ b/app/views/admin/budgets/_form.html.erb @@ -22,7 +22,7 @@

    - <% %w[administrators valuators trackers].each do |staff| %> + <% %w[administrators valuators].each do |staff| %>
    <%= link_to t("admin.budgets.edit.#{staff}", count: @budget.send(staff).count), "#", @@ -35,7 +35,6 @@
    <%= render "/admin/budgets/association", assignable_type: "administrators", assignables: @admins, form: f %> <%= render "/admin/budgets/association", assignable_type: "valuators", assignables: @valuators, form: f %> - <%= render "/admin/budgets/association", assignable_type: "trackers", assignables: @trackers, form: f %>
    <% if @budget.phases.present? %> diff --git a/app/views/admin/legislation/milestones/index.html.erb b/app/views/admin/legislation/milestones/index.html.erb index 91136e164..456b6154a 100644 --- a/app/views/admin/legislation/milestones/index.html.erb +++ b/app/views/admin/legislation/milestones/index.html.erb @@ -9,4 +9,4 @@ <%= render "admin/legislation/processes/subnav", process: @process, active: "milestones" %> <%= render "summary_form", process: @process %> -<%= render "tracking/milestones/milestones", milestoneable: @process %> +<%= render "admin/milestones/milestones", milestoneable: @process %> diff --git a/app/views/tracking/milestones/_form.html.erb b/app/views/admin/milestones/_form.html.erb similarity index 83% rename from app/views/tracking/milestones/_form.html.erb rename to app/views/admin/milestones/_form.html.erb index a98f99d3b..b7cc30270 100644 --- a/app/views/tracking/milestones/_form.html.erb +++ b/app/views/admin/milestones/_form.html.erb @@ -1,14 +1,14 @@ <%= render "shared/globalize_locales", resource: @milestone %> -<%= translatable_form_for [:tracking, *resource_hierarchy_for(@milestone)] do |f| %> +<%= translatable_form_for [:admin, *resource_hierarchy_for(@milestone)] do |f| %>
    <%= f.select :status_id, @statuses.collect { |s| [s.name, s.id] }, - { include_blank: @statuses.any? ? "" : t("tracking.milestones.form.no_statuses_defined") }, + { include_blank: @statuses.any? ? "" : t("admin.milestones.form.no_statuses_defined") }, { disabled: @statuses.blank? } %> - <%= link_to t("tracking.milestones.form.admin_statuses"), + <%= link_to t("admin.milestones.form.admin_statuses"), admin_milestone_statuses_path %>
    diff --git a/app/views/tracking/milestones/_milestones.html.erb b/app/views/admin/milestones/_milestones.html.erb similarity index 59% rename from app/views/tracking/milestones/_milestones.html.erb rename to app/views/admin/milestones/_milestones.html.erb index 4548011de..bcbf61885 100644 --- a/app/views/tracking/milestones/_milestones.html.erb +++ b/app/views/admin/milestones/_milestones.html.erb @@ -1,7 +1,7 @@ -

    <%= t("tracking.milestones.index.milestone") %>

    +

    <%= t("admin.milestones.index.milestone") %>

    -<%= link_to t("tracking.progress_bars.manage"), - polymorphic_path([:tracking, *resource_hierarchy_for(milestoneable.progress_bars.new)]), +<%= link_to t("admin.progress_bars.manage"), + polymorphic_path([:admin, *resource_hierarchy_for(milestoneable.progress_bars.new)]), class: "button hollow float-right" %> <% if milestoneable.milestone_tag_list.any? %> @@ -16,14 +16,14 @@ - - - - - - - - + + + + + + + + @@ -32,7 +32,7 @@ @@ -43,7 +43,7 @@ <%= milestone.status.present? ? milestone.status.name : "" %> @@ -58,8 +58,8 @@ <% end %> @@ -68,12 +68,12 @@
    <%= t("tracking.milestones.index.table_id") %><%= t("tracking.milestones.index.table_title") %><%= t("tracking.milestones.index.table_description") %><%= t("tracking.milestones.index.table_publication_date") %><%= t("tracking.milestones.index.table_status") %><%= t("tracking.milestones.index.image") %><%= t("tracking.milestones.index.documents") %><%= t("tracking.milestones.index.table_actions") %><%= t("admin.milestones.index.table_id") %><%= t("admin.milestones.index.table_title") %><%= t("admin.milestones.index.table_description") %><%= t("admin.milestones.index.table_publication_date") %><%= t("admin.milestones.index.table_status") %><%= t("admin.milestones.index.image") %><%= t("admin.milestones.index.documents") %><%= t("admin.milestones.index.table_actions") %>
    <%= milestone.id %> <%= link_to milestone.title, - polymorphic_path([:tracking, *resource_hierarchy_for(milestone)], + polymorphic_path([:admin, *resource_hierarchy_for(milestone)], action: :edit) %> <%= milestone.description %> - <%= link_to t("tracking.milestones.index.show_image"), + <%= link_to t("admin.milestones.index.show_image"), milestone.image_url(:large), target: :_blank if milestone.image.present? %> - <%= link_to t("tracking.milestones.index.delete"), - polymorphic_path([:tracking, *resource_hierarchy_for(milestone)]), + <%= link_to t("admin.milestones.index.delete"), + polymorphic_path([:admin, *resource_hierarchy_for(milestone)]), method: :delete, class: "button hollow alert expanded" %>
    <% else %> -

    <%= t("tracking.milestones.index.no_milestones") %>

    +

    <%= t("admin.milestones.index.no_milestones") %>

    <% end %>

    - <%= link_to t("tracking.milestones.index.new_milestone"), - polymorphic_path([:tracking, *resource_hierarchy_for(milestoneable.milestones.new)], + <%= link_to t("admin.milestones.index.new_milestone"), + polymorphic_path([:admin, *resource_hierarchy_for(milestoneable.milestones.new)], action: :new), class: "button hollow" %>

    diff --git a/app/views/tracking/milestones/edit.html.erb b/app/views/admin/milestones/edit.html.erb similarity index 65% rename from app/views/tracking/milestones/edit.html.erb rename to app/views/admin/milestones/edit.html.erb index 4ce62f5a8..297ebccb4 100644 --- a/app/views/tracking/milestones/edit.html.erb +++ b/app/views/admin/milestones/edit.html.erb @@ -1,6 +1,6 @@ <%= back_link_to milestoneable_path %> -

    <%= t("tracking.milestones.edit.title") %>

    +

    <%= t("admin.milestones.edit.title") %>

    <%= render "form" %> diff --git a/app/views/tracking/milestones/new.html.erb b/app/views/admin/milestones/new.html.erb similarity index 72% rename from app/views/tracking/milestones/new.html.erb rename to app/views/admin/milestones/new.html.erb index de664eadb..aa55123c9 100644 --- a/app/views/tracking/milestones/new.html.erb +++ b/app/views/admin/milestones/new.html.erb @@ -3,7 +3,7 @@
    <%= back_link_to milestoneable_path %> -

    <%= t("tracking.milestones.new.creating") %>

    +

    <%= t("admin.milestones.new.creating") %>

    <%= render "form" %>
    diff --git a/app/views/tracking/progress_bars/_form.html.erb b/app/views/admin/progress_bars/_form.html.erb similarity index 93% rename from app/views/tracking/progress_bars/_form.html.erb rename to app/views/admin/progress_bars/_form.html.erb index 7606b17e8..3598aea12 100644 --- a/app/views/tracking/progress_bars/_form.html.erb +++ b/app/views/admin/progress_bars/_form.html.erb @@ -1,6 +1,6 @@ <%= render "shared/globalize_locales", resource: @progress_bar %> -<%= translatable_form_for [:tracking, *resource_hierarchy_for(@progress_bar)] do |f| %> +<%= translatable_form_for [:admin, *resource_hierarchy_for(@progress_bar)] do |f| %>
    diff --git a/app/views/tracking/progress_bars/_progress_bars.html.erb b/app/views/admin/progress_bars/_progress_bars.html.erb similarity index 60% rename from app/views/tracking/progress_bars/_progress_bars.html.erb rename to app/views/admin/progress_bars/_progress_bars.html.erb index 0a47e306d..3715c2f35 100644 --- a/app/views/tracking/progress_bars/_progress_bars.html.erb +++ b/app/views/admin/progress_bars/_progress_bars.html.erb @@ -1,8 +1,8 @@ -

    <%= t("tracking.progress_bars.index.title") %>

    +

    <%= t("admin.progress_bars.index.title") %>

    -<%= link_to t("tracking.progress_bars.index.new_progress_bar"), +<%= link_to t("admin.progress_bars.index.new_progress_bar"), polymorphic_path( - [:tracking, *resource_hierarchy_for(ProgressBar.new(progressable: progressable))], + [:admin, *resource_hierarchy_for(ProgressBar.new(progressable: progressable))], action: :new ), class: "button float-right" %> @@ -11,10 +11,10 @@ - - - - + + + + @@ -29,7 +29,7 @@ <% if progress_bar.title.present? %> <%= progress_bar.title %> <% else %> - <%= t("tracking.progress_bars.index.primary") %> + <%= t("admin.progress_bars.index.primary") %> <% end %> @@ -52,6 +52,6 @@
    <%= t("tracking.progress_bars.index.table_id") %><%= t("tracking.progress_bars.index.table_kind") %><%= t("tracking.progress_bars.index.table_title") %><%= t("tracking.progress_bars.index.table_percentage") %><%= t("admin.progress_bars.index.table_id") %><%= t("admin.progress_bars.index.table_kind") %><%= t("admin.progress_bars.index.table_title") %><%= t("admin.progress_bars.index.table_percentage") %> <%= t("admin.actions.actions") %>
    @@ -37,12 +37,12 @@ <%= link_to t("admin.actions.edit"), - polymorphic_path([:tracking, *resource_hierarchy_for(progress_bar)], + polymorphic_path([:admin, *resource_hierarchy_for(progress_bar)], action: :edit), class: "button hollow" %> <%= link_to t("admin.actions.delete"), - polymorphic_path([:tracking, *resource_hierarchy_for(progress_bar)]), + polymorphic_path([:admin, *resource_hierarchy_for(progress_bar)]), method: :delete, class: "button hollow alert" %>
    <% else %>
    - <%= t("tracking.progress_bars.index.no_progress_bars") %> + <%= t("admin.progress_bars.index.no_progress_bars") %>
    <% end %> diff --git a/app/views/admin/progress_bars/edit.html.erb b/app/views/admin/progress_bars/edit.html.erb new file mode 100644 index 000000000..21dd27d9a --- /dev/null +++ b/app/views/admin/progress_bars/edit.html.erb @@ -0,0 +1,15 @@ +<% if @progress_bar.primary? %> + <% bar_title = t("admin.progress_bars.edit.title.primary") %> +<% else %> + <% bar_title = t("admin.progress_bars.edit.title.secondary", title: @progress_bar.title) %> +<% end %> + +<% provide :title do %> + <%= "#{t("admin.header.title")} - #{bar_title}" %> +<% end %> + +<%= back_link_to progress_bars_index %> + +

    <%= bar_title %>

    + +<%= render "form" %> diff --git a/app/views/admin/progress_bars/index.html.erb b/app/views/admin/progress_bars/index.html.erb new file mode 100644 index 000000000..bcac8d7a4 --- /dev/null +++ b/app/views/admin/progress_bars/index.html.erb @@ -0,0 +1,9 @@ +<% provide :title do %> + <%= "#{t("admin.header.title")} - #{t("admin.progress_bars.index.title")}" %> +<% end %> + +<%= back_link_to polymorphic_path([:admin, *resource_hierarchy_for(@progressable)]) %> + +
    + +<%= render "admin/progress_bars/progress_bars", progressable: @progressable %> diff --git a/app/views/admin/progress_bars/new.html.erb b/app/views/admin/progress_bars/new.html.erb new file mode 100644 index 000000000..8c379ac3a --- /dev/null +++ b/app/views/admin/progress_bars/new.html.erb @@ -0,0 +1,9 @@ +<% provide :title do %> + <%= "#{t("admin.header.title")} - #{t("admin.progress_bars.new.creating")}" %> +<% end %> + +<%= back_link_to progress_bars_index %> + +

    <%= t("admin.progress_bars.new.creating") %>

    + +<%= render "form" %> diff --git a/app/views/admin/proposals/show.html.erb b/app/views/admin/proposals/show.html.erb index ce81e2136..afb2379e3 100644 --- a/app/views/admin/proposals/show.html.erb +++ b/app/views/admin/proposals/show.html.erb @@ -32,4 +32,4 @@
    -<%= render "tracking/milestones/milestones", milestoneable: @proposal %> +<%= render "admin/milestones/milestones", milestoneable: @proposal %> diff --git a/app/views/admin/trackers/edit.html.erb b/app/views/admin/trackers/edit.html.erb deleted file mode 100644 index ec098a9a9..000000000 --- a/app/views/admin/trackers/edit.html.erb +++ /dev/null @@ -1,15 +0,0 @@ -<%= back_link_to admin_trackers_path %> - -

    <%= t("admin.trackers.form.edit_title") %>

    - -
    - <%= @tracker.name %>
    - <%= @tracker.email %> -
    - -
    - <%= form_for [:admin, @tracker] do |f| %> - <%= f.text_field :description %> - <%= f.submit t("admin.trackers.form.update"), class: "button success" %> - <% end %> -
    diff --git a/app/views/admin/trackers/index.html.erb b/app/views/admin/trackers/index.html.erb deleted file mode 100644 index baf7a5311..000000000 --- a/app/views/admin/trackers/index.html.erb +++ /dev/null @@ -1,48 +0,0 @@ -

    <%= t("admin.trackers.index.title") %>

    - -<%= render "admin/shared/user_search", url: search_admin_trackers_path %> - -
    - <% if @trackers.any? %> -

    <%= page_entries_info @trackers %>

    - - - - - - - - - - <% @trackers.each do |tracker| %> - - - - - - - <% end %> - -
    <%= t("admin.trackers.index.name") %><%= t("admin.trackers.index.email") %><%= t("admin.valuators.index.description") %><%= t("admin.actions.actions") %>
    <%= link_to tracker.name, admin_tracker_path(tracker) %><%= tracker.email %> - <% if tracker.description.present? %> - <%= tracker.description %> - <% else %> - <%= t("admin.trackers.index.no_description") %> - <% end %> - - <%= link_to t("admin.actions.edit"), - edit_admin_tracker_path(tracker), - class: "button hollow" %> - <%= link_to t("admin.valuators.valuator.delete"), - admin_tracker_path(tracker), - method: :delete, - class: "button hollow alert" %> -
    - - <%= paginate @trackers %> - <% else %> -
    - <%= t("admin.trackers.index.no_trackers") %> -
    - <% end %> -
    diff --git a/app/views/admin/trackers/search.html.erb b/app/views/admin/trackers/search.html.erb deleted file mode 100644 index 3dc703d50..000000000 --- a/app/views/admin/trackers/search.html.erb +++ /dev/null @@ -1,58 +0,0 @@ -

    <%= t("admin.trackers.search.title") %>

    - -<%= render "admin/shared/user_search", url: search_admin_trackers_path %> - -
    - <% if @users.any? %> -

    <%= page_entries_info @users %>

    - - - - - - - - - - <% @users.each do |user| %> - - - - - - <% end %> - -
    <%= t("admin.trackers.index.name") %><%= t("admin.trackers.index.email") %><%= t("admin.trackers.index.description") %><%= t("admin.shared.actions") %>
    <%= user.name %><%= user.email %> - <% if user.tracker %> - <% if user.tracker.description.present? %> - <%= user.tracker.description %> - <% else %> - <%= t("admin.trackers.index.no_description") %> - <% end %> - <% else %> - <%= t("admin.trackers.index.no_description") %> - <% end %> - - <% if user.tracker? %> - <%= link_to t("admin.actions.edit"), - edit_admin_tracker_path(user.tracker), - class: "button hollow" %> - - <%= link_to t("admin.valuators.valuator.delete"), - admin_tracker_path(user.tracker), - method: :delete, - class: "button hollow alert" %> - <% else %> - <%= form_for Tracker.new(user: user), url: admin_trackers_path do |f| %> - <%= f.hidden_field :user_id %> - <%= f.submit t("admin.trackers.tracker.add"), - class: "button success expanded" %> - <% end %> - <% end %> -
    - <% else %> -
    - <%= t("admin.shared.no_search_results") %> -
    - <% end %> -
    diff --git a/app/views/admin/trackers/show.html.erb b/app/views/admin/trackers/show.html.erb deleted file mode 100644 index 9d3deaeef..000000000 --- a/app/views/admin/trackers/show.html.erb +++ /dev/null @@ -1,22 +0,0 @@ -<%= back_link_to admin_trackers_path %> - -<%= link_to t("admin.actions.edit"), edit_admin_tracker_path(@tracker), class: "button hollow float-right" %> - -
    - -

    <%= @tracker.name %>

    - -
    -

    - <%= t("admin.trackers.show.email") %>
    - <%= @tracker.email %> -

    -

    - <%= t("admin.trackers.show.description") %>
    - <% if @tracker.description.present? %> - <%= @tracker.description %> - <% else %> - <%= t("admin.trackers.show.no_description") %> - <% end %> -

    -
    diff --git a/app/views/shared/_admin_login_items.html.erb b/app/views/shared/_admin_login_items.html.erb index 11bc01444..2d5aba1b2 100644 --- a/app/views/shared/_admin_login_items.html.erb +++ b/app/views/shared/_admin_login_items.html.erb @@ -21,13 +21,6 @@ <% end %> - <% if (feature?(:budgets)) && - (current_user.administrator? || current_user.tracker?) %> -
  • - <%= link_to t("layouts.header.tracking"), tracking_root_path %> -
  • - <% end %> - <% if current_user.administrator? || current_user.manager? %>
  • <%= link_to t("layouts.header.management"), management_sign_in_path %> diff --git a/app/views/tracking/_menu.html.erb b/app/views/tracking/_menu.html.erb deleted file mode 100644 index ed934071e..000000000 --- a/app/views/tracking/_menu.html.erb +++ /dev/null @@ -1,17 +0,0 @@ - diff --git a/app/views/tracking/budget_investments/edit.html.erb b/app/views/tracking/budget_investments/edit.html.erb deleted file mode 100644 index 09a4d30fa..000000000 --- a/app/views/tracking/budget_investments/edit.html.erb +++ /dev/null @@ -1,12 +0,0 @@ -<%= link_to tracking_budget_budget_investment_path(@budget, @investment), class: "back" do %> - - <%= "#{t("tracking.budget_investments.show.title")} #{@investment.id}" %> -<% end %> - -
    - -

    <%= @investment.title %>

    - -<%= auto_link_already_sanitized_html wysiwyg(@investment.description) %> - -<%= render "tracking/milestones/milestones", milestoneable: @investment %> diff --git a/app/views/tracking/budget_investments/index.html.erb b/app/views/tracking/budget_investments/index.html.erb deleted file mode 100644 index 8a777225e..000000000 --- a/app/views/tracking/budget_investments/index.html.erb +++ /dev/null @@ -1,58 +0,0 @@ -

    - <%= @budget.name %> - <%= t("tracking.budget_investments.index.title") %> - <%= t("tracking.budget_investments.index.assigned_to", tracker: current_user.name) %> -

    - -
    - <% @heading_filters.each_slice(8) do |slice| %> -
    - <% slice.each do |filter| %> - <%= link_to tracking_budget_budget_investments_path(budget_id: @budget.id, heading_id: filter[:id]), - class: "#{"is-active" if params[:heading_id].to_s == filter[:id].to_s}" do %> - <%= filter[:name] %> (<%= filter[:count] %>) - <% end %> - <% end %> -
    - <% end %> -
    - -<% if @investments.any? %> -

    <%= page_entries_info @investments %>

    - - - - - - - - - - - - <% @investments.each do |investment| %> - - - - - - - <% end %> - -
    <%= t("tracking.budget_investments.index.table_id") %><%= t("tracking.budget_investments.index.table_title") %><%= t("tracking.budget_investments.index.table_heading_name") %><%= t("tracking.budget_investments.index.table_actions") %>
    - <%= investment.id %> - - <%= link_to investment.title, tracking_budget_budget_investment_path(@budget, investment) %> - - <%= investment.heading.name %> - - <%= link_to t("tracking.budget_investments.index.edit"), - edit_tracking_budget_budget_investment_path(@budget, investment), - class: "button hollow expanded" %> -
    - - <%= paginate @investments %> -<% else %> -
    - <%= t("tracking.budget_investments.index.no_investments") %> -
    -<% end %> diff --git a/app/views/tracking/budget_investments/show.html.erb b/app/views/tracking/budget_investments/show.html.erb deleted file mode 100644 index 1bf3b740e..000000000 --- a/app/views/tracking/budget_investments/show.html.erb +++ /dev/null @@ -1,47 +0,0 @@ -<%= back_link_to tracking_budget_budget_investments_path %> - -

    <%= t("tracking.budget_investments.show.title") %> <%= @investment.id %>

    -

    <%= @investment.title %>

    - -<%= auto_link_already_sanitized_html wysiwyg(@investment.description) %> - -<% if @investment.external_url.present? %> -

    <%= sanitize_and_auto_link @investment.external_url %>

    -<% end %> - -

    <%= t("tracking.budget_investments.show.info") %>

    - -

    <%= t("tracking.budget_investments.show.by") %>: - <%= @investment.author.name %> -

    - -

    <%= t("tracking.budget_investments.show.heading") %>: - <%= @investment.heading.name %> -

    - -

    <%= t("tracking.budget_investments.show.sent") %>: - <%= l @investment.created_at, format: :datetime %> -

    - -

    <%= t("tracking.budget_investments.show.responsibles") %>

    - -

    <%= t("tracking.budget_investments.show.assigned_admin") %>: - <% if @investment.administrator.present? %> - <%= @investment.administrator.name_and_email %> - <% else %> - <%= t("tracking.budget_investments.show.undefined") %> - <% end %> -

    - -

    <%= t("trackers.budget_investments.show.assigned_trackers") %>:

    -
    -
      - <% @investment.trackers.each do |tracker| %> -
    • <%= tracker.name_and_email %>
    • - <% end %> - - <% if @investment.trackers.empty? %> -
    • <%= t("tracking.budget_investments.show.undefined") %>
    • - <% end %> -
    -
    diff --git a/app/views/tracking/budgets/index.html.erb b/app/views/tracking/budgets/index.html.erb deleted file mode 100644 index a8968d029..000000000 --- a/app/views/tracking/budgets/index.html.erb +++ /dev/null @@ -1,36 +0,0 @@ -

    <%= t("tracking.budgets.index.title") %>

    - -<% if @budget.present? %> - - - - - - - - - - - - - - - - - -
    <%= t("tracking.budgets.index.table_name") %><%= t("tracking.budgets.index.table_phase") %><%= t("tracking.budgets.index.table_assigned_investments_tracking_open") %><%= t("tracking.budgets.index.table_actions") %>
    - <%= @budget.name %> - - <%= t("budgets.phase.#{@budget.phase}") %> - - <%= @investments.count %> - - <%= link_to t("tracking.budgets.index.tracking"), - tracking_budget_budget_investments_path(budget_id: @budget.id), - class: "button hollow expanded" %> -
    -<% else %> -
    - <%= t("tracking.budgets.index.no_budgets") %> -
    -<% end %> diff --git a/app/views/tracking/progress_bars/edit.html.erb b/app/views/tracking/progress_bars/edit.html.erb deleted file mode 100644 index 1f0e30eeb..000000000 --- a/app/views/tracking/progress_bars/edit.html.erb +++ /dev/null @@ -1,15 +0,0 @@ -<% if @progress_bar.primary? %> - <% bar_title = t("tracking.progress_bars.edit.title.primary") %> -<% else %> - <% bar_title = t("tracking.progress_bars.edit.title.secondary", title: @progress_bar.title) %> -<% end %> - -<% provide :title do %> - <%= "#{t("tracking.header.title")} - #{bar_title}" %> -<% end %> - -<%= back_link_to progress_bars_index %> - -

    <%= bar_title %>

    - -<%= render "form" %> diff --git a/app/views/tracking/progress_bars/index.html.erb b/app/views/tracking/progress_bars/index.html.erb deleted file mode 100644 index 356350812..000000000 --- a/app/views/tracking/progress_bars/index.html.erb +++ /dev/null @@ -1,9 +0,0 @@ -<% provide :title do %> - <%= "#{t("admin.header.title")} - #{t("tracking.progress_bars.index.title")}" %> -<% end %> - -<%= back_link_to tracker_back_path(@progressable) %> - -
    - -<%= render "tracking/progress_bars/progress_bars", progressable: @progressable %> diff --git a/app/views/tracking/progress_bars/new.html.erb b/app/views/tracking/progress_bars/new.html.erb deleted file mode 100644 index f889a8a81..000000000 --- a/app/views/tracking/progress_bars/new.html.erb +++ /dev/null @@ -1,9 +0,0 @@ -<% provide :title do %> - <%= "#{t("admin.header.title")} - #{t("tracking.progress_bars.new.creating")}" %> -<% end %> - -<%= back_link_to progress_bars_index %> - -

    <%= t("tracking.progress_bars.new.creating") %>

    - -<%= render "form" %> diff --git a/config/i18n-tasks.yml b/config/i18n-tasks.yml index 99bfe965a..ad5d47f85 100644 --- a/config/i18n-tasks.yml +++ b/config/i18n-tasks.yml @@ -47,7 +47,6 @@ data: - config/locales/%{locale}/milestones.yml - config/locales/%{locale}/stats.yml - config/locales/%{locale}/download.yml - - config/locales/%{locale}/tracking.yml # Locale files to write new keys to, based on a list of key pattern => file rules. Matched from top to bottom: # `i18n-tasks normalize -p` will force move the keys according to these rules @@ -141,7 +140,7 @@ ignore_unused: - "admin.hidden_proposals.index.filter*" - "admin.proposal_notifications.index.filter*" - "admin.budgets.index.filter*" - - "admin.budgets.edit.(administrators|trackers|valuators).*" + - "admin.budgets.edit.(administrators|valuators).*" - "admin.budget_investments.index.filter*" - "admin.organizations.index.filter*" - "admin.hidden_users.index.filter*" diff --git a/config/locales/en/admin.yml b/config/locales/en/admin.yml index 19ebc001e..e315b5142 100644 --- a/config/locales/en/admin.yml +++ b/config/locales/en/admin.yml @@ -102,13 +102,8 @@ en: zero: "Select valuators" one: "1 valuator selected" other: "%{count} valuators selected" - trackers: - zero: "Select trackers" - one: "1 tracker selected" - other: "%{count} trackers selected" empty_administrators: "There are no administrators" empty_valuators: "There are no valuators" - empty_trackers: "There are no trackers" destroy: success_notice: Budget deleted successfully unable_notice: You cannot delete a budget that has associated investments @@ -254,7 +249,6 @@ en: "false": "No" valuator_groups: "Valuator Groups" preview: Investment preview - assigned_trackers: "Assigned trackers" edit: classification: Classification compatibility: Compatibility @@ -265,11 +259,36 @@ en: user_tags: User assigned tags tags_placeholder: "Write the tags you want separated by commas (,)" undefined: Undefined - assigned_trackers: "Trackers" search_unfeasible: Search unfeasible milestones: index: + table_id: "ID" + table_title: "Title" + table_description: "Description" + table_publication_date: "Publication date" + table_status: Status + table_actions: "Actions" + delete: "Delete milestone" + no_milestones: "Don't have defined milestones" + image: "Image" + show_image: "Show image" + documents: "Documents" + milestone: Milestone + new_milestone: Create new milestone milestone_tags: Milestone Tags + form: + admin_statuses: Manage statuses + no_statuses_defined: There are no defined statuses yet + new: + creating: Create milestone + edit: + title: Edit milestone + create: + notice: New milestone created successfully! + update: + notice: Milestone updated successfully + delete: + notice: Milestone successfully deleted statuses: index: title: Milestone statuses @@ -291,8 +310,28 @@ en: delete: notice: Milestone status deleted successfully progress_bars: + manage: "Manage progress bars" index: title: "Progress bars" + no_progress_bars: "There are no progress bars" + new_progress_bar: "Create new progress bar" + primary: "Primary progress bar" + table_id: "ID" + table_kind: "Type" + table_title: "Title" + table_percentage: "Current progress" + new: + creating: "Create progress bar" + edit: + title: + primary: "Edit primary progress bar" + secondary: "Edit progress bar %{title}" + create: + notice: "Progress bar created successfully!" + update: + notice: "Progress bar updated successfully" + delete: + notice: "Progress bar deleted successfully" comments: index: id: "ID" @@ -656,7 +695,6 @@ en: title_booths: Voting booths legislation: Collaborative Legislation users: Users - trackers: "Trackers" dashboard: Proposals dashboard administrator_tasks: Resources requested dashboard_actions: Resources and actions @@ -1555,26 +1593,6 @@ en: edited_by: "Edited by" actions: "Actions" empty: "There are not changes logged" - trackers: - index: - title: Trackers - name: Name - email: Email - description: Description - no_description: No description - no_trackers: There are no trackers. - tracker: - add: "Add to trackers" - form: - update: Update Tracker - updated: "Tracker updated succesfully." - edit_title: "Trackers: Edit tracker" - show: - email: Email - description: Description - no_description: No description. - search: - title: Trackers local_census_records: index: title: Manage local census diff --git a/config/locales/en/general.yml b/config/locales/en/general.yml index 43337febb..8cf293097 100644 --- a/config/locales/en/general.yml +++ b/config/locales/en/general.yml @@ -255,7 +255,6 @@ en: other: You have %{count} new notifications notifications: Notifications no_notifications: "You don't have new notifications" - tracking: "Tracking" admin: watch_form_message: "You have unsaved changes. Do you confirm to leave the page?" notifications: diff --git a/config/locales/en/tracking.yml b/config/locales/en/tracking.yml deleted file mode 100644 index f78bac5c9..000000000 --- a/config/locales/en/tracking.yml +++ /dev/null @@ -1,90 +0,0 @@ -en: - tracking: - header: - title: Tracking - menu: - title: Tracking - budgets: Participatory budgets - budgets: - index: - title: Participatory budgets - table_name: Name - table_phase: Phase - table_assigned_investments_tracking_open: Investment projects assigned with tracking open - table_actions: Actions - tracking: Tracking - no_budgets: "There are no budgets" - budget_investments: - index: - assigned_to: "Assigned to %{tracker}" - title: Investment projects - edit: Edit milestones - table_id: ID - table_title: Title - table_heading_name: Heading name - table_actions: Actions - no_investments: "There are no investment projects." - show: - title: Investment project - info: Author info - by: Sent by - sent: Sent at - heading: Heading - undefined: "Undefined" - responsibles: Responsibles - assigned_admin: Assigned admin - milestones: - index: - table_id: "ID" - table_title: "Title" - table_description: "Description" - table_publication_date: "Publication date" - table_status: Status - table_actions: "Actions" - delete: "Delete milestone" - no_milestones: "Don't have defined milestones" - image: "Image" - show_image: "Show image" - documents: "Documents" - milestone: Milestone - new_milestone: Create new milestone - form: - admin_statuses: Manage statuses - no_statuses_defined: There are no defined statuses yet - new: - creating: Create milestone - edit: - title: Edit milestone - create: - notice: New milestone created successfully! - update: - notice: Milestone updated successfully - delete: - notice: Milestone successfully deleted - progress_bars: - manage: "Manage progress bars" - index: - title: "Progress bars" - no_progress_bars: "There are no progress bars" - new_progress_bar: "Create new progress bar" - primary: "Primary progress bar" - table_id: "ID" - table_kind: "Type" - table_title: "Title" - table_percentage: "Current progress" - new: - creating: "Create progress bar" - edit: - title: - primary: "Edit primary progress bar" - secondary: "Edit progress bar %{title}" - create: - notice: "Progress bar created successfully!" - update: - notice: "Progress bar updated successfully" - delete: - notice: "Progress bar deleted successfully" - trackers: - budget_investments: - show: - assigned_trackers: "Assigned trackers" diff --git a/config/locales/es/admin.yml b/config/locales/es/admin.yml index 76fcf12fb..e7f998dd5 100644 --- a/config/locales/es/admin.yml +++ b/config/locales/es/admin.yml @@ -102,13 +102,8 @@ es: zero: "Seleccionar evaluadores" one: "1 evaluador seleccionado" other: "%{count} evaluadores seleccionados" - trackers: - zero: "Seleccionar gestores de seguimiento" - one: "1 gestor de seguimiento seleccionado" - other: "%{count} gestores de seguimiento seleccionados" empty_administrators: "No hay administradores" empty_valuators: "No hay evaluadores" - empty_trackers: "No hay gestores de seguimiento" destroy: success_notice: Presupuesto eliminado correctamente unable_notice: No se puede eliminar un presupuesto con proyectos asociados @@ -254,7 +249,6 @@ es: "false": "No" valuator_groups: "Grupos de evaluadores" preview: Vista previa - assigned_trackers: "Gestores de seguimiento asignados" edit: classification: Clasificación compatibility: Compatibilidad @@ -265,11 +259,36 @@ es: user_tags: Etiquetas asignadas por el usuario tags_placeholder: "Escribe las etiquetas que desees separadas por comas (,)" undefined: Sin definir - assigned_trackers: "Gestores de seguimiento" search_unfeasible: Buscar inviables milestones: index: + table_id: "ID" + table_title: "Título" + table_description: "Descripción" + table_publication_date: "Fecha de publicación" + table_status: Estado + table_actions: "Acciones" + delete: "Eliminar hito" + no_milestones: "No hay hitos definidos" + image: "Imagen" + show_image: "Mostrar imagen" + documents: "Documentos" + milestone: Seguimiento + new_milestone: Crear nuevo hito milestone_tags: Etiquetas de Seguimiento + form: + admin_statuses: Gestionar estados + no_statuses_defined: No hay estados definidos + new: + creating: Crear hito + edit: + title: Editar hito + create: + notice: "¡Nuevo hito creado con éxito!" + update: + notice: Hito actualizado + delete: + notice: Hito borrado correctamente statuses: index: title: Estados de seguimiento @@ -291,8 +310,28 @@ es: delete: notice: Estado de seguimiento eliminado correctamente progress_bars: + manage: "Gestionar barras de progreso" index: title: "Barras de progreso" + no_progress_bars: "No hay barras de progreso" + new_progress_bar: "Crear nueva barra de progreso" + primary: "Barra de progreso principal" + table_id: "ID" + table_kind: "Tipo" + table_title: "Título" + table_percentage: "Progreso" + new: + creating: "Crear barra de progreso" + edit: + title: + primary: "Editar barra de progreso principal" + secondary: "Editar barra de progreso %{title}" + create: + notice: "¡Barra de progreso creada con éxito!" + update: + notice: "Barra de progreso actualizada" + delete: + notice: "Barra de progreso eliminada correctamente" comments: index: id: "ID" @@ -655,7 +694,6 @@ es: title_booths: Urnas de votación legislation: Legislación colaborativa users: Usuarios - trackers: "Gestores de seguimiento" dashboard: Panel de progreso de propuestas administrator_tasks: Recursos solicitados dashboard_actions: Recursos y acciones @@ -1554,26 +1592,6 @@ es: edited_by: "Editado por" actions: "Acciones" empty: "No hay cambios registrados" - trackers: - index: - title: Gestores de seguimiento - name: Nombre - email: Email - description: Descripción - no_description: Sin descripción - no_trackers: No hay gestores de seguimiento. - tracker: - add: "Añadir a gestores de seguimiento" - form: - update: "Actualizar gestor" - updated: "Gestor de seguimiento actualizado correctamente." - edit_title: "Gestores de seguimiento: Editar gestor" - show: - email: Email - description: Descripción - no_description: Sin descripción. - search: - title: Trackers local_census_records: index: title: Gestionar censo local diff --git a/config/locales/es/general.yml b/config/locales/es/general.yml index b4aa427d9..34a58a50d 100644 --- a/config/locales/es/general.yml +++ b/config/locales/es/general.yml @@ -255,7 +255,6 @@ es: other: Tienes %{count} notificaciones nuevas notifications: Notificaciones no_notifications: "No tienes notificaciones nuevas" - tracking: "Seguimiento" admin: watch_form_message: "Has realizado cambios que no han sido guardados. ¿Seguro que quieres abandonar la página?" notifications: diff --git a/config/locales/es/tracking.yml b/config/locales/es/tracking.yml deleted file mode 100644 index f0855327d..000000000 --- a/config/locales/es/tracking.yml +++ /dev/null @@ -1,90 +0,0 @@ -es: - tracking: - header: - title: Seguimiento - menu: - title: Seguimiento - budgets: Presupuestos participativos - budgets: - index: - title: Presupuestos participativos - table_name: Nombre - table_phase: Fase - table_assigned_investments_tracking_open: Prop. Inv. asignadas en segumiento - table_actions: Acciones - tracking: Seguimiento - no_budgets: "No hay presupuestos" - budget_investments: - index: - assigned_to: "Asignadas a %{tracker}" - title: Proyectos de gasto - edit: Editar seguimiento - table_id: ID - table_title: Título - table_heading_name: Nombre de la partida - table_actions: Acciones - no_investments: "No hay proyectos de gasto." - show: - title: Proyecto de gasto - info: Datos de envío - by: Enviada por - sent: Fecha de creación - heading: Partida - undefined: Sin definir - responsibles: Responsables - assigned_admin: Administrador asignado - milestones: - index: - table_id: "ID" - table_title: "Título" - table_description: "Descripción" - table_publication_date: "Fecha de publicación" - table_status: Estado - table_actions: "Acciones" - delete: "Eliminar hito" - no_milestones: "No hay hitos definidos" - image: "Imagen" - show_image: "Mostrar imagen" - documents: "Documentos" - milestone: Seguimiento - new_milestone: Crear nuevo hito - form: - admin_statuses: Gestionar estados - no_statuses_defined: No hay estados definidos - new: - creating: Crear hito - edit: - title: Editar hito - create: - notice: "¡Nuevo hito creado con éxito!" - update: - notice: Hito actualizado - delete: - notice: Hito borrado correctamente - progress_bars: - manage: "Gestionar barras de progreso" - index: - title: "Barras de progreso" - no_progress_bars: "No hay barras de progreso" - new_progress_bar: "Crear nueva barra de progreso" - primary: "Barra de progreso principal" - table_id: "ID" - table_kind: "Tipo" - table_title: "Título" - table_percentage: "Progreso" - new: - creating: "Crear barra de progreso" - edit: - title: - primary: "Editar barra de progreso principal" - secondary: "Editar barra de progreso %{title}" - create: - notice: "¡Barra de progreso creada con éxito!" - update: - notice: "Barra de progreso actualizada" - delete: - notice: "Barra de progreso eliminada correctamente" - trackers: - budget_investments: - show: - assigned_trackers: "Gestores de seguimiento asignados" diff --git a/config/routes.rb b/config/routes.rb index c538a12f1..c650e1401 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -24,7 +24,6 @@ Rails.application.routes.draw do draw :tag draw :user draw :valuation - draw :tracking draw :verification root "welcome#index" diff --git a/config/routes/admin.rb b/config/routes/admin.rb index 972f15842..eb8af3fbf 100644 --- a/config/routes/admin.rb +++ b/config/routes/admin.rb @@ -62,6 +62,9 @@ namespace :admin do resources :budget_investments, only: [:index, :show, :edit, :update] do member { patch :toggle_selection } + + resources :milestones, controller: "budget_investment_milestones" + resources :progress_bars, except: :show, controller: "budget_investment_progress_bars" end resources :budget_phases, only: [:edit, :update] @@ -103,11 +106,6 @@ namespace :admin do get :summary, on: :collection end - resources :trackers, only: [:show, :index, :edit, :update, :create, :destroy] do - get :search, on: :collection - get :summary, on: :collection - end - resources :valuator_groups resources :managers, only: [:index, :create, :destroy] do @@ -210,7 +208,8 @@ namespace :admin do member { patch :toggle_selection } end resources :draft_versions - resources :milestones, only: :index + resources :milestones + resources :progress_bars, except: :show resource :homepage, only: [:edit, :update] end end diff --git a/config/routes/tracking.rb b/config/routes/tracking.rb deleted file mode 100644 index 1912b856b..000000000 --- a/config/routes/tracking.rb +++ /dev/null @@ -1,23 +0,0 @@ -namespace :tracking do - root to: "budgets#index" - - resources :budgets, only: :index do - resources :budget_investments, only: [:index, :show, :edit] do - resources :milestones, controller: "budget_investment_milestones" - resources :progress_bars, except: :show, controller: "budget_investment_progress_bars" - patch :track, on: :member - end - end - - resources :proposals, only: [:index, :show] do - resources :milestones, controller: "proposal_milestones" - resources :progress_bars, except: :show, controller: "proposal_progress_bars" - end - - namespace :legislation do - resources :processes, only: [:index, :show] do - resources :milestones - resources :progress_bars, except: :show - end - end -end diff --git a/db/migrate/20191101183155_remove_trackers.rb b/db/migrate/20191101183155_remove_trackers.rb new file mode 100644 index 000000000..ecb1fc98f --- /dev/null +++ b/db/migrate/20191101183155_remove_trackers.rb @@ -0,0 +1,12 @@ +class RemoveTrackers < ActiveRecord::Migration[5.0] + def up + remove_column :budget_investments, :tracker_assignments_count, :integer + drop_table :budget_tracker_assignments + drop_table :budget_trackers + drop_table :trackers + end + + def down + fail ActiveRecord::IrreversibleMigration + end +end diff --git a/db/schema.rb b/db/schema.rb index 79d28c3fc..c6f941612 100644 --- a/db/schema.rb +++ b/db/schema.rb @@ -10,7 +10,7 @@ # # It's strongly recommended that you check this file into your version control system. -ActiveRecord::Schema.define(version: 20191031210734) do +ActiveRecord::Schema.define(version: 20191101183155) do # These are extensions that must be enabled in order to support this database enable_extension "plpgsql" @@ -297,7 +297,6 @@ ActiveRecord::Schema.define(version: 20191031210734) do t.datetime "confirmed_hide_at" t.datetime "ignored_flag_at" t.integer "flags_count", default: 0 - t.integer "tracker_assignments_count" t.integer "original_heading_id" t.index ["administrator_id"], name: "index_budget_investments_on_administrator_id", using: :btree t.index ["author_id"], name: "index_budget_investments_on_author_id", using: :btree @@ -340,24 +339,6 @@ ActiveRecord::Schema.define(version: 20191031210734) do t.datetime "updated_at", null: false end - create_table "budget_tracker_assignments", force: :cascade do |t| - t.integer "tracker_id" - t.integer "investment_id" - t.datetime "created_at", null: false - t.datetime "updated_at", null: false - t.index ["investment_id"], name: "index_budget_tracker_assignments_on_investment_id", using: :btree - t.index ["tracker_id"], name: "index_budget_tracker_assignments_on_tracker_id", using: :btree - end - - create_table "budget_trackers", force: :cascade do |t| - t.integer "budget_id" - t.integer "tracker_id" - t.datetime "created_at", null: false - t.datetime "updated_at", null: false - t.index ["budget_id"], name: "index_budget_trackers_on_budget_id", using: :btree - t.index ["tracker_id"], name: "index_budget_trackers_on_tracker_id", using: :btree - end - create_table "budget_translations", force: :cascade do |t| t.integer "budget_id", null: false t.string "locale", null: false @@ -1504,15 +1485,6 @@ ActiveRecord::Schema.define(version: 20191031210734) do t.index ["hidden_at"], name: "index_topics_on_hidden_at", using: :btree end - create_table "trackers", force: :cascade do |t| - t.integer "user_id" - t.string "description" - t.integer "budget_investment_count", default: 0 - t.datetime "created_at", null: false - t.datetime "updated_at", null: false - t.index ["user_id"], name: "index_trackers_on_user_id", using: :btree - end - create_table "users", force: :cascade do |t| t.string "email", default: "" t.string "encrypted_password", default: "", null: false @@ -1700,9 +1672,6 @@ ActiveRecord::Schema.define(version: 20191031210734) do add_foreign_key "budget_administrators", "administrators" add_foreign_key "budget_administrators", "budgets" add_foreign_key "budget_investments", "communities" - add_foreign_key "budget_tracker_assignments", "trackers" - add_foreign_key "budget_trackers", "budgets" - add_foreign_key "budget_trackers", "trackers" add_foreign_key "budget_valuators", "budgets" add_foreign_key "budget_valuators", "valuators" add_foreign_key "dashboard_administrator_tasks", "users" @@ -1743,7 +1712,6 @@ ActiveRecord::Schema.define(version: 20191031210734) do add_foreign_key "proposals", "communities" add_foreign_key "related_content_scores", "related_contents" add_foreign_key "related_content_scores", "users" - add_foreign_key "trackers", "users" add_foreign_key "users", "geozones" add_foreign_key "valuators", "users" end diff --git a/spec/factories/users.rb b/spec/factories/users.rb index 069a2cda0..2d3359798 100644 --- a/spec/factories/users.rb +++ b/spec/factories/users.rb @@ -98,10 +98,6 @@ FactoryBot.define do user end - factory :tracker do - user - end - factory :valuator do user end diff --git a/spec/features/admin/budgets_spec.rb b/spec/features/admin/budgets_spec.rb index fa1f747a4..5ed404756 100644 --- a/spec/features/admin/budgets_spec.rb +++ b/spec/features/admin/budgets_spec.rb @@ -245,9 +245,8 @@ describe "Admin budgets" do scenario "Deselect all selected staff", :js do admin = Administrator.first valuator = create(:valuator) - tracker = create(:tracker) - budget = create(:budget, administrators: [admin], valuators: [valuator], trackers: [tracker]) + budget = create(:budget, administrators: [admin], valuators: [valuator]) visit edit_admin_budget_path(budget) click_link "1 administrator selected" @@ -260,17 +259,11 @@ describe "Admin budgets" do expect(page).to have_link "Select valuators" - click_link "1 tracker selected" - uncheck tracker.name - - expect(page).to have_link "Select trackers" - click_button "Update Budget" visit edit_admin_budget_path(budget) expect(page).to have_link "Select administrators" expect(page).to have_link "Select valuators" - expect(page).to have_link "Select trackers" end end diff --git a/spec/features/admin/translatable_spec.rb b/spec/features/admin/translatable_spec.rb index c40919d81..4ef2a299b 100644 --- a/spec/features/admin/translatable_spec.rb +++ b/spec/features/admin/translatable_spec.rb @@ -356,7 +356,7 @@ describe "Admin edit translatable records" do let(:translatable) { create(:milestone) } scenario "Shows an error message" do - visit edit_tracking_budget_budget_investment_milestone_path(*resource_hierarchy_for(translatable)) + visit edit_admin_budget_budget_investment_milestone_path(*resource_hierarchy_for(translatable)) click_link "Remove language" click_link "Remove language" diff --git a/spec/features/officing_spec.rb b/spec/features/officing_spec.rb index bb5a7afd1..a2298d8fd 100644 --- a/spec/features/officing_spec.rb +++ b/spec/features/officing_spec.rb @@ -108,7 +108,7 @@ describe "Poll Officing" do expect(page).not_to have_link("Moderation") end - xscenario "Officing dashboard" do + scenario "Officing dashboard" do create(:poll_officer, user: user) create(:poll) login_as(user) diff --git a/spec/features/tracking/budget_investments_spec.rb b/spec/features/tracking/budget_investments_spec.rb deleted file mode 100644 index c33c2e8e6..000000000 --- a/spec/features/tracking/budget_investments_spec.rb +++ /dev/null @@ -1,351 +0,0 @@ -require "rails_helper" - -describe "Valuation budget investments" do - let(:budget) { create(:budget) } - let(:tracker) do - create(:tracker, user: create(:user, username: "Rachel", email: "rachel@trackers.org")) - end - - before do - login_as(tracker.user) - end - - scenario "Disabled with a feature flag" do - Setting["process.budgets"] = nil - expect do - visit tracking_budget_budget_investments_path(create(:budget)) - end.to raise_exception(FeatureFlags::FeatureDisabled) - end - - scenario "Display link to tracking section" do - visit root_path - expect(page).to have_link "Tracking", href: tracking_root_path - end - - describe "Index" do - scenario "Index shows budget investments assigned to current tracker" do - investment1 = create(:budget_investment, budget: budget) - investment2 = create(:budget_investment, budget: budget) - - investment1.trackers << tracker - - visit tracking_budget_budget_investments_path(budget) - - expect(page).to have_content(investment1.title) - expect(page).not_to have_content(investment2.title) - end - - scenario "Index shows no budget investment to admins no trackers" do - investment1 = create(:budget_investment, budget: budget) - investment2 = create(:budget_investment, budget: budget) - - investment1.trackers << tracker - - logout - login_as create(:administrator).user - visit tracking_budget_budget_investments_path(budget) - - expect(page).not_to have_content(investment1.title) - expect(page).not_to have_content(investment2.title) - end - - scenario "Index displays investments paginated" do - per_page = Kaminari.config.default_per_page - (per_page + 2).times do - investment = create(:budget_investment, budget: budget) - investment.trackers << tracker - end - - visit tracking_budget_budget_investments_path(budget) - - expect(page).to have_css(".budget_investment", count: per_page) - within("ul.pagination") do - expect(page).to have_content("1") - expect(page).to have_content("2") - expect(page).not_to have_content("3") - click_link "Next", exact: false - end - - expect(page).to have_css(".budget_investment", count: 2) - end - - scenario "headings" do - investment1 = create(:budget_investment, - budget: budget, - title: "investment 1", - heading: create(:budget_heading, name: "first_heading")) - investment2 = create(:budget_investment, - budget: budget, title: "investment 2", - heading: create(:budget_heading, name: "last_heading")) - create(:budget_investment, - budget: budget, - title: "investment 3", - heading: create(:budget_heading, name: "no_heading")) - - investment1.trackers << tracker - investment2.trackers << tracker - - visit tracking_budget_budget_investments_path(budget) - - expect(page).to have_link("All headings (2)") - expect(page).to have_link("last_heading (1)") - expect(page).to have_link("first_heading (1)") - expect(page).not_to have_link("no_heading (1)") - - expect(page).to have_content("investment 1") - expect(page).to have_content("investment 2") - expect(page).not_to have_content("investment 3") - - expect(page.find(".select-heading .is-active")).to have_content("All headings") - - click_on "last_heading (1)" - - expect(page.find(".select-heading .is-active")).to have_content("last_heading (1)") - expect(page).not_to have_content("investment 1") - expect(page).to have_content("investment 2") - expect(page).not_to have_content("investment 3") - end - end - - describe "Show" do - let(:administrator) do - create(:administrator, user: create(:user, username: "Ana", email: "ana@admins.org")) - end - let(:second_tracker) do - create(:tracker, user: create(:user, username: "Rick", email: "rick@trackers.org")) - end - let(:investment) do - create(:budget_investment, budget: budget, administrator: administrator) - end - - before do - investment.trackers << [tracker, second_tracker] - end - - scenario "visible for assigned trackers" do - visit tracking_budget_budget_investments_path(budget) - - click_link investment.title - - expect(page).to have_content(investment.title) - expect(page).to have_content(investment.description) - expect(page).to have_content(investment.author.name) - expect(page).to have_content(investment.heading.name) - - within("#assigned_trackers") do - expect(page).to have_content("Rachel (rachel@trackers.org)") - expect(page).to have_content("Rick (rick@trackers.org)") - end - end - - scenario "visible for admins" do - logout - login_as create(:administrator).user - - visit tracking_budget_budget_investment_path(budget, investment) - - expect(page).to have_content(investment.title) - expect(page).to have_content(investment.description) - expect(page).to have_content(investment.author.name) - expect(page).to have_content(investment.heading.name) - expect(page).to have_content("Ana (ana@admins.org)") - - within("#assigned_trackers") do - expect(page).to have_content("Rachel (rachel@trackers.org)") - expect(page).to have_content("Rick (rick@trackers.org)") - end - end - - scenario "not visible for not assigned trackers" do - logout - login_as create(:tracker).user - - expect do - visit tracking_budget_budget_investment_path(budget, investment) - end.to raise_error "Not Found" - end - end - - describe "Milestones" do - let(:admin) { create(:administrator) } - let(:investment) do - create(:budget_investment, budget: budget, administrator: admin) - end - - before do - investment.trackers << tracker - end - - scenario "visit investment manage milestones" do - visit tracking_budget_budget_investments_path(budget) - - click_link "Edit milestones" - - expect(page).to have_content("Milestone") - expect(page).to have_content(investment.title) - end - - scenario "create investment milestones" do - visit edit_tracking_budget_budget_investment_path(budget, investment) - - expect(page).to have_content("Milestone") - expect(page).to have_content(investment.title) - - click_link "Create new milestone" - - expect(page).to have_content("Create milestone") - fill_in("Description", with: "Test Description") - page.find("#milestone_publication_date").set(Date.current) - - click_button "Create milestone" - - visit edit_tracking_budget_budget_investment_path(budget, investment) - - expect(page).to have_content("Test Description") - end - - scenario "delete investment milestones" do - milestone = create(:milestone, - milestoneable: investment, - description: "Test delete milestone") - - visit edit_tracking_budget_budget_investment_path(budget, investment) - - expect(page).to have_content("Test delete milestone") - - page.find("#milestone_#{milestone.id}").click_link("Delete milestone") - - visit edit_tracking_budget_budget_investment_path(budget, investment) - - expect(page).not_to have_content("Test delete milestone") - end - - scenario "edit investment milestones" do - milestone = create(:milestone, milestoneable: investment, description: "Test edit milestone") - - visit edit_tracking_budget_budget_investment_path(budget, investment) - - expect(page).to have_content("Test edit milestone") - - page.find("#milestone_#{milestone.id}").first("a").click - - expect(page).to have_content("Edit milestone") - expect(page).to have_content("Test edit milestone") - fill_in("Description", with: "Test edited milestone") - - click_button "Update milestone" - - visit edit_tracking_budget_budget_investment_path(budget, investment) - - expect(page).not_to have_content("Test edit milestone") - expect(page).to have_content("Test edited milestone") - end - end - - describe "Progress Bars" do - let(:admin) { create(:administrator) } - let(:investment) do - create(:budget_investment, budget: budget, administrator: admin) - end - - before do - investment.trackers << tracker - end - - scenario "view index" do - visit edit_tracking_budget_budget_investment_path(budget, investment) - - click_link "Manage progress bars" - - expect(page).to have_content("Progress bars") - - logout - login_as create(:tracker, user: create(:user)).user - - expect do - visit tracking_budget_budget_investment_progress_bars_path(budget, investment) - end.to raise_error "Not Found" - end - - scenario "create primary progress bar" do - visit tracking_budget_budget_investment_progress_bars_path(budget, investment) - - expect(page).to have_content("Progress bars") - - click_link "Create new progress bar" - - expect(page).to have_content("Create progress bar") - - select("Primary", from: "Type") - fill_in("Current progress", with: 50) - - click_button "Create Progress bar" - - expect(page).to have_content("Progress bars") - - expect(page).to have_content("Primary") - end - - scenario "create secondary progress bar" do - visit tracking_budget_budget_investment_progress_bars_path(budget, investment) - - expect(page).to have_content("Progress bars") - - click_link "Create new progress bar" - - expect(page).to have_content("Create progress bar") - - select("Secondary", from: "Type") - fill_in("Title", with: "secondary_progress_bar") - fill_in("Current progress", with: 50) - - click_button "Create Progress bar" - - expect(page).to have_content("Progress bars") - - expect(page).to have_content("secondary_progress_bar") - end - - scenario "delete" do - create(:progress_bar, progressable: investment) - secondary_progress_bar = create(:progress_bar, - :secondary, - title: "to delete", - progressable: investment) - - visit tracking_budget_budget_investment_progress_bars_path(budget, investment) - - expect(page).to have_content("Primary") - expect(page).to have_content(secondary_progress_bar.title) - - page.find("#progress_bar_#{secondary_progress_bar.id}").click_link("Delete") - - visit tracking_budget_budget_investment_progress_bars_path(budget, investment) - - expect(page).to have_content("Primary") - expect(page).not_to have_content(secondary_progress_bar.title) - end - - scenario "edit" do - create(:progress_bar, progressable: investment) - secondary_progress_bar = create(:progress_bar, - :secondary, - title: "to edit", - progressable: investment) - - visit tracking_budget_budget_investment_progress_bars_path(budget, investment) - - expect(page).to have_content("Primary") - expect(page).to have_content(secondary_progress_bar.title) - - page.find("#progress_bar_#{secondary_progress_bar.id}").click_link("Edit") - - fill_in("Title", with: "edited") - click_button "Update Progress bar" - - expect(page).to have_content("Progress bars") - - expect(page).to have_content("edited") - end - end -end diff --git a/spec/features/tracking/budgets_spec.rb b/spec/features/tracking/budgets_spec.rb deleted file mode 100644 index 077666f5b..000000000 --- a/spec/features/tracking/budgets_spec.rb +++ /dev/null @@ -1,29 +0,0 @@ -require "rails_helper" - -describe "Tracking budgets" do - before do - tracker = create(:tracker, user: create(:user, username: "Rachel", - email: "rachel@trackers.org")) - login_as(tracker.user) - end - - scenario "Disabled with a feature flag" do - Setting["process.budgets"] = nil - expect { visit tracking_budgets_path }.to raise_exception(FeatureFlags::FeatureDisabled) - end - - context "Index" do - scenario "Displaying budgets" do - budget = create(:budget) - visit tracking_budgets_path - - expect(page).to have_content(budget.name) - end - - scenario "With no budgets" do - visit tracking_budgets_path - - expect(page).to have_content "There are no budgets" - end - end -end diff --git a/spec/shared/features/admin_progressable.rb b/spec/shared/features/admin_progressable.rb index 1ee49eadb..81cd2cb62 100644 --- a/spec/shared/features/admin_progressable.rb +++ b/spec/shared/features/admin_progressable.rb @@ -5,7 +5,7 @@ shared_examples "admin_progressable" do |factory_name, path_name| let(:progressable_path) { send(path_name, *resource_hierarchy_for(progressable)) } let(:path) do - polymorphic_path([:tracking, *resource_hierarchy_for(progressable.progress_bars.new)]) + polymorphic_path([:admin, *resource_hierarchy_for(progressable.progress_bars.new)]) end context "Index" do