This is consistent to what we usually do. Also, we're applying the same
criteria mentioned in commit 72704d776:
> We're also making these actions idempotent, so sending many requests
> to the same action will get the same result, which wasn't the case
> with the `toggle` action. Although it's a low probability case, the
> `toggle` action could result in [selecting a proposal] when trying to
> [deselect] it if someone else has [deselected it] it between the time
> the page loaded and the time the admin clicked on the "[Selected]"
> button.
357 lines
9.6 KiB
Ruby
357 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 do
|
|
patch :select
|
|
patch :deselect
|
|
end
|
|
|
|
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 do
|
|
patch :select
|
|
patch :deselect
|
|
end
|
|
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
|