namespace :admin do root to: "dashboard#index" resources :administrators, only: [:index, :create, :destroy, :edit, :update] do get :search, on: :collection end resources :tenants, except: [:show, :destroy] do member do put :hide put :restore end end constraints lambda { |request| !Rails.application.multitenancy_management_mode? } do 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 collection do get :successful end 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 do patch :select patch :deselect patch :show_to_valuators patch :hide_from_valuators end 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 :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, except: :index, 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 namespace :cookies do resources :vendors, except: [:index, :show] 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