Files
grecia/config/routes/admin.rb
Javi Martín 38b38d1fcc Rename Poll::Question::Answer to Poll::Question::Option
Having a class named `Poll::Question::Answer` and another class named
`Poll::Answer` was so confusing that no developer working on the project
has ever been capable of remembering which is which for more than a few
seconds.

Furthermore, we're planning to add open answers to polls, and we might
add a reference from the `poll_answers` table to the
`poll_question_answers` table to property differentiate between open
answers and closed answers. Having yet another thing named answer would
be more than what our brains can handle (we know it because we did this
once in a prototype).

So we're renaming `Poll::Question::Answer` to `Poll::Question::Option`.
Hopefully that'll make it easier to remember. The name is also (more or
less) consistent with the `Legislation::QuestionOption` class, which is
similar.

We aren't changing the table or columns names for now in order to avoid
possible issues when upgrading (old code running with the new database
tables/columns after running the migrations but before deployment has
finished, for instance). We might do it in the future.

I've tried not to change the internationalization keys either so
existing translations would still be valid. However, since we have to
change the keys in `activerecord.yml` so methods like
`human_attribute_name` keep working, I'm also changing them in places
where similar keys were used (like `poll_question_answer` or
`poll/question/answer`).

Note that it isn't clear whether we should use `option` or
`question_option` in some cases. In order to keep things simple, we're
using `option` where we were using `answer` and `question_option` where
we were using `question_answer`.

Also note we're adding tests for the admin menu component, since at
first I forgot to change the `answers` reference there and all tests
passed.
2024-06-13 19:13:01 +02:00

350 lines
9.6 KiB
Ruby

namespace :admin do
root to: "dashboard#index"
resources :organizations, only: :index do
get :search, on: :collection
member do
put :verify
put :reject
end
end
resources :hidden_users, only: [:index, :show] do
member do
put :restore
put :confirm_hide
end
end
resources :hidden_budget_investments, only: :index do
member do
put :restore
put :confirm_hide
end
end
resources :hidden_debates, only: :index do
member do
put :restore
put :confirm_hide
end
end
resources :debates, only: [:index, :show]
resources :proposals, only: [:index, :show, :update] do
member { patch :toggle_selection }
resources :milestones, controller: "proposal_milestones"
resources :progress_bars, except: :show, controller: "proposal_progress_bars"
end
resources :hidden_proposals, only: :index do
member do
put :restore
put :confirm_hide
end
end
resources :hidden_proposal_notifications, only: :index do
member do
put :restore
put :confirm_hide
end
end
resources :budgets, except: [:create, :new] do
member do
patch :publish
put :calculate_winners
end
resources :groups, except: [:index, :show], controller: "budget_groups" do
resources :headings, except: [:index, :show], controller: "budget_headings"
end
resources :budget_investments, only: [:index, :show, :edit, :update] do
member { patch :toggle_selection }
resources :audits, only: :show, controller: "budget_investment_audits"
resources :milestones, controller: "budget_investment_milestones"
resources :progress_bars, except: :show, controller: "budget_investment_progress_bars"
end
resources :budget_phases, only: [:edit, :update] do
member do
patch :enable
patch :disable
end
end
end
namespace :budgets_wizard do
resources :budgets, only: [:create, :new, :edit, :update] do
resources :groups, only: [:index, :create, :edit, :update, :destroy] do
resources :headings, only: [:index, :create, :edit, :update, :destroy]
end
resources :phases, as: "budget_phases", only: [:index, :edit, :update] do
member do
patch :enable
patch :disable
end
end
end
end
resources :milestone_statuses, only: [:index, :new, :create, :update, :edit, :destroy]
resources :signature_sheets, only: [:index, :new, :create, :show]
resources :banners, only: [:index, :new, :create, :edit, :update, :destroy] do
collection { get :search }
end
resources :hidden_comments, only: :index do
member do
put :restore
put :confirm_hide
end
end
resources :comments, only: :index
resources :tags, only: [:index, :create, :update, :destroy]
resources :officials, only: [:index, :edit, :update, :destroy] do
get :search, on: :collection
end
resources :settings, only: [:index, :update]
put :update_map, to: "settings#update_map"
put :update_content_types, to: "settings#update_content_types"
resources :moderators, only: [:index, :create, :destroy] do
get :search, on: :collection
end
resources :valuators, 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
get :search, on: :collection
end
namespace :sdg do
resources :managers, only: [:index, :create, :destroy]
end
resources :administrators, only: [:index, :create, :destroy, :edit, :update] do
get :search, on: :collection
end
resources :users, only: [:index, :show]
scope module: :poll do
resources :polls do
get :booth_assignments, on: :collection
resources :booth_assignments, only: [:index, :show, :create, :destroy] do
get :search_booths, on: :collection
get :manage, on: :collection
end
resources :officer_assignments, only: [:index, :create, :destroy] do
get :search_officers, on: :collection
get :by_officer, on: :collection
end
resources :recounts, only: :index
resources :results, only: :index
end
resources :officers, only: [:index, :new, :create, :destroy] do
get :search, on: :collection
end
resources :booths do
get :available, on: :collection
resources :shifts do
get :search_officers, on: :collection
end
end
resources :questions, shallow: true do
resources :options, except: [:index, :show], controller: "questions/options", shallow: false
resources :options, only: [], controller: "questions/options" do
resources :images, controller: "questions/options/images"
resources :videos, controller: "questions/options/videos", shallow: false
resources :documents, only: [:index, :create], controller: "questions/options/documents"
end
post "/options/order_options", to: "questions/options#order_options"
end
resource :active_polls, only: [:create, :edit, :update]
end
resources :verifications, controller: :verifications, only: :index do
get :search, on: :collection
end
resource :activity, controller: :activity, only: :show
resources :newsletters do
member do
post :deliver
end
get :users, on: :collection
end
resources :admin_notifications do
member do
post :deliver
end
end
resources :system_emails, only: [:index] do
get :view
get :preview_pending
put :moderate_pending
put :send_pending
end
resources :emails_download, only: :index do
get :generate_csv, on: :collection
end
resource :stats, only: :show do
get :graph, on: :member
get :budgets, on: :collection
get :budget_supporting, on: :member
get :budget_balloting, on: :member
get :proposal_notifications, on: :collection
get :direct_messages, on: :collection
get :polls, on: :collection
get :sdg, on: :collection
end
namespace :legislation do
resources :processes do
resources :questions
resources :proposals do
member { patch :toggle_selection }
end
resources :draft_versions
resources :milestones
resources :progress_bars, except: :show
resource :homepage, only: [:edit, :update]
end
end
resources :geozones, only: [:index, :new, :create, :edit, :update, :destroy]
resource :locales, only: [:show, :update]
namespace :site_customization do
resources :pages, except: [:show] do
resources :cards, except: [:show], as: :widget_cards
end
resources :images, only: [:index, :update, :destroy]
resources :content_blocks, except: [:show]
delete "/heading_content_blocks/:id", to: "content_blocks#delete_heading_content_block",
as: "delete_heading_content_block"
get "/edit_heading_content_blocks/:id", to: "content_blocks#edit_heading_content_block",
as: "edit_heading_content_block"
put "/update_heading_content_blocks/:id", to: "content_blocks#update_heading_content_block",
as: "update_heading_content_block"
resources :information_texts, only: [:index] do
post :update, on: :collection
end
resources :documents, only: [:index, :new, :create, :destroy]
end
resource :homepage, controller: :homepage, only: [:show]
namespace :widget do
resources :cards
resources :feeds, only: [:update]
end
namespace :dashboard do
resources :actions, only: [:index, :new, :create, :edit, :update, :destroy]
resources :administrator_tasks, only: [:index, :edit, :update]
end
resources :local_census_records
namespace :local_census_records do
resources :imports, only: [:new, :create, :show]
end
resource :machine_learning, controller: :machine_learning, only: [:show] do
post :execute, on: :collection
delete :cancel, on: :collection
end
resources :tenants, except: [:show, :destroy] do
member do
put :hide
put :restore
end
end
end
resolve "Milestone" do |milestone|
[*resource_hierarchy_for(milestone.milestoneable), milestone]
end
resolve "ProgressBar" do |progress_bar|
[*resource_hierarchy_for(progress_bar.progressable), progress_bar]
end
resolve "Audit" do |audit|
[*resource_hierarchy_for(audit.associated || audit.auditable), audit]
end
resolve "Widget::Card" do |card, options|
[*resource_hierarchy_for(card.cardable), card]
end
resolve "Budget::Group" do |group, options|
[group.budget, :group, options.merge(id: group)]
end
resolve "Budget::Heading" do |heading, options|
[heading.budget, :group, :heading, options.merge(group_id: heading.group, id: heading)]
end
resolve "Budget::Phase" do |phase, options|
[phase.budget, :phase, options.merge(id: phase)]
end
resolve "Poll::Booth" do |booth, options|
[:booth, options.merge(id: booth)]
end
resolve "Poll::BoothAssignment" do |assignment, options|
[assignment.poll, :booth_assignment, options.merge(id: assignment)]
end
resolve "Poll::Shift" do |shift, options|
[:booth, :shift, options.merge(booth_id: shift.booth, id: shift)]
end
resolve "Poll::Officer" do |officer, options|
[:officer, options.merge(id: officer)]
end
resolve "Poll::Question::Option" do |option, options|
[:question, :option, options.merge(question_id: option.question, id: option)]
end
resolve "Poll::Question::Option::Video" do |video, options|
[:option, :video, options.merge(option_id: video.option, id: video)]
end
resolve "Legislation::DraftVersion" do |version, options|
[version.process, :draft_version, options.merge(id: version)]
end