mirror of
https://github.com/openSUSE/osem.git
synced 2026-08-13 19:54:02 +00:00
230 lines
6.7 KiB
Ruby
230 lines
6.7 KiB
Ruby
Osem::Application.routes.draw do
|
|
mount LetterOpenerWeb::Engine, at: '/letter_opener' if Rails.env.development?
|
|
|
|
constraints DomainConstraint do
|
|
get '/', to: 'conferences#show'
|
|
end
|
|
|
|
if ENV['OSEM_ICHAIN_ENABLED'] == 'true'
|
|
devise_for :users, controllers: { registrations: :registrations }
|
|
else
|
|
devise_for :users,
|
|
controllers: {
|
|
registrations: :registrations, confirmations: :confirmations,
|
|
omniauth_callbacks: 'users/omniauth_callbacks' },
|
|
path: 'accounts'
|
|
end
|
|
|
|
resources :users, except: [:new, :index, :create, :destroy] do
|
|
resources :openids, only: :destroy
|
|
end
|
|
|
|
namespace :admin do
|
|
resources :organizations do
|
|
member do
|
|
get :admins
|
|
post :assign_org_admins
|
|
delete :unassign_org_admins
|
|
end
|
|
end
|
|
resources :users do
|
|
member do
|
|
patch :toggle_confirmation
|
|
end
|
|
end
|
|
resource :ticket_scanning, only: [:create]
|
|
resources :comments, only: [:index]
|
|
resources :conferences do
|
|
resources :surveys do
|
|
resources :survey_questions, except: :index
|
|
end
|
|
resource :contact, except: [:index, :new, :create, :show, :destroy]
|
|
resources :schedules, except: [:edit, :update]
|
|
resources :event_schedules, only: [:create, :update, :destroy]
|
|
get 'commercials/render_commercial' => 'commercials#render_commercial'
|
|
resources :commercials, only: [:index, :create, :update, :destroy]
|
|
get '/volunteers_list' => 'volunteers#show'
|
|
get '/volunteers' => 'volunteers#index', as: 'volunteers_info'
|
|
patch '/volunteers' => 'volunteers#update', as: 'volunteers_update'
|
|
|
|
resources :booths do
|
|
member do
|
|
patch :accept
|
|
patch :restart
|
|
patch :to_accept
|
|
patch :reject
|
|
patch :reset
|
|
patch :to_reject
|
|
patch :cancel
|
|
patch :confirm
|
|
end
|
|
end
|
|
|
|
resources :registrations, except: [:create, :new] do
|
|
member do
|
|
patch :toggle_attendance
|
|
|
|
end
|
|
end
|
|
|
|
# Singletons
|
|
resource :splashpage
|
|
resource :venue do
|
|
get 'venue_commercial/render_commercial' => 'venue_commercials#render_commercial'
|
|
resource :venue_commercial, only: [:create, :update, :destroy]
|
|
resources :rooms, except: [:show]
|
|
end
|
|
resource :registration_period
|
|
resource :program do
|
|
resources :cfps
|
|
resources :tracks do
|
|
member do
|
|
patch :toggle_cfp_inclusion
|
|
patch :restart
|
|
patch :to_accept
|
|
patch :accept
|
|
patch :confirm
|
|
patch :to_reject
|
|
patch :reject
|
|
patch :cancel
|
|
patch :update_selected_schedule
|
|
end
|
|
resources :roles, only: [:show, :edit, :update] do
|
|
member do
|
|
post :toggle_user
|
|
end
|
|
end
|
|
end
|
|
resources :event_types
|
|
resources :difficulty_levels
|
|
post 'mass_upload_commercials' => 'commercials#mass_upload'
|
|
resources :events do
|
|
member do
|
|
patch :toggle_attendance
|
|
get :registrations
|
|
post :comment
|
|
patch :accept
|
|
patch :confirm
|
|
patch :cancel
|
|
patch :reject
|
|
patch :unconfirm
|
|
patch :restart
|
|
get :vote
|
|
end
|
|
end
|
|
resources :reports, only: :index
|
|
end
|
|
|
|
resources :resources
|
|
resources :tickets
|
|
resources :sponsors, except: [:show]
|
|
resources :lodgings, except: [:show]
|
|
resources :emails, only: [:show, :update, :index]
|
|
resources :physical_tickets, only: [:index]
|
|
resources :roles, except: [:new, :create] do
|
|
member do
|
|
post :toggle_user
|
|
end
|
|
end
|
|
|
|
resources :sponsorship_levels, except: [:show] do
|
|
member do
|
|
patch :up
|
|
patch :down
|
|
end
|
|
end
|
|
|
|
resources :questions do
|
|
collection do
|
|
patch :update_conference
|
|
end
|
|
end
|
|
|
|
get '/revision_history' => 'versions#index'
|
|
end
|
|
|
|
get '/revision_history' => 'versions#index'
|
|
get '/revision_history/:id/revert_object' => 'versions#revert_object', as: 'revision_history_revert_object'
|
|
get '/revision_history/:id/revert_attribute' => 'versions#revert_attribute', as: 'revision_history_revert_attribute'
|
|
end
|
|
resources :organizations, only: [:index] do
|
|
member do
|
|
get :conferences, 'code-of-conduct'
|
|
end
|
|
end
|
|
resources :conferences, only: [:index, :show] do
|
|
resources :booths do
|
|
member do
|
|
patch :withdraw
|
|
patch :confirm
|
|
patch :restart
|
|
end
|
|
end
|
|
resources :surveys, only: [:index, :show] do
|
|
member do
|
|
post :reply
|
|
end
|
|
end
|
|
resource :program, only: [] do
|
|
get 'proposal/:id', to: 'proposals#show' # For backward compatibility
|
|
resources :proposals, except: :destroy do
|
|
get 'commercials/render_commercial' => 'commercials#render_commercial'
|
|
resources :commercials, only: [:create, :update, :destroy]
|
|
member do
|
|
get :registrations
|
|
patch '/withdraw' => 'proposals#withdraw'
|
|
patch '/confirm' => 'proposals#confirm'
|
|
patch '/restart' => 'proposals#restart'
|
|
end
|
|
end
|
|
resources :tracks, except: :destroy do
|
|
member do
|
|
patch :restart
|
|
patch :confirm
|
|
patch :withdraw
|
|
end
|
|
end
|
|
end
|
|
|
|
# TODO: change conference_registrations to singular resource
|
|
resource :conference_registration, path: 'register'
|
|
resources :tickets, only: [:index]
|
|
resources :ticket_purchases, only: [:create, :destroy, :index]
|
|
resources :payments, only: [:index, :new, :create]
|
|
resources :physical_tickets, only: [:index, :show]
|
|
resource :subscriptions, only: [:create, :destroy]
|
|
resource :schedule, only: [:show] do
|
|
collection do
|
|
get 'app'
|
|
end
|
|
member do
|
|
get :events
|
|
end
|
|
end
|
|
end
|
|
|
|
namespace :api, defaults: {format: 'json'} do
|
|
namespace :v1 do
|
|
resources :conferences, only: [ :index, :show ] do
|
|
resources :rooms, only: :index
|
|
resources :tracks, only: :index
|
|
resources :speakers, only: :index
|
|
resources :events, only: :index
|
|
end
|
|
resources :rooms, only: :index
|
|
resources :tracks, only: :index
|
|
resources :speakers, only: :index
|
|
resources :events, only: :index
|
|
end
|
|
end
|
|
|
|
get '/admin' => redirect('/admin/conferences')
|
|
|
|
get '/calendar' => 'conferences#calendar'
|
|
|
|
unless ENV['OSEM_ROOT_CONFERENCE'].blank?
|
|
root to: redirect("/conferences/#{ENV['OSEM_ROOT_CONFERENCE']}")
|
|
else
|
|
root to: 'conferences#index', via: [:get, :options]
|
|
end
|
|
end
|