osem-fcy/config/routes.rb

234 lines
6.7 KiB
Ruby
Raw Normal View History

2013-01-07 09:04:09 +01:00
Osem::Application.routes.draw do
2021-04-11 13:53:41 +03:00
mount LetterOpenerWeb::Engine, at: '/letter_opener' if Rails.env.development?
2013-01-07 09:04:09 +01:00
constraints DomainConstraint do
get '/', to: 'conferences#show'
end
2022-05-06 14:27:15 +02:00
if ENV.fetch('OSEM_ICHAIN_ENABLED', nil) == 'true'
2014-11-04 17:42:47 +01:00
devise_for :users, controllers: { registrations: :registrations }
else
devise_for :users,
controllers: {
2014-11-30 20:06:12 +02:00
registrations: :registrations, confirmations: :confirmations,
2014-11-04 17:42:47 +01:00
omniauth_callbacks: 'users/omniauth_callbacks' },
2018-11-13 18:01:49 -08:00
path: 'accounts'
2014-11-04 17:42:47 +01:00
end
2017-06-10 19:36:12 +03:00
resources :users, except: [:new, :index, :create, :destroy] do
collection do
get :search
end
2017-06-10 19:36:12 +03:00
resources :openids, only: :destroy
end
2013-01-07 09:04:09 +01:00
namespace :admin do
2017-08-22 17:25:34 +05:30
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]
2015-08-24 17:17:29 +02:00
resources :comments, only: [:index]
resources :conferences do
resources :surveys do
resources :survey_questions, except: :index
end
2014-08-13 14:37:15 +03:00
resource :contact, except: [:index, :new, :create, :show, :destroy]
Implement track scheduling Add track association to schedule Show schedules in admin sidebar to track organizers Allow track organizers to manage the schedules of their tracks Don't allow self-organized track events to be dragged or unscheduled in a conference schedule Make scheduled events of self-organized tracks appear semitransparent in conference schedules Make the rooms of confirmed self_organized tracks appear semitransparent and don't allow events to be scheduled to it in the conference schedules during the dates of its track Create admin/SchedulesController#new action Add a button in admin/Schedules#index to create schedules for tracks Add self_organized scope to Track Modify Schedules#show to handle track schedules and show a unified schedule Allow track organizers to create new schedules for their tracks Correctly identify scheduled and unscheduled events in Schedules#events Fix Event#room and Event#time for when the event is scheduled in a track schedule Modify Program#selected_event_schedules to include the event_schedules of selected track schedules Modify Track#revoke_role_and_cleanup to destroy the track's schedules and revert its events' state to new Add tabs for conference and track schedules in admin/Schedules#index Add button to Create/Show a tracks schedule in Tracks#index and #show Fix concurrent_events in application_helper because of changes in Program#selected_event_schedules Do not take into account cfp_active in Event#valid_track Modify EventsController#get_tracks accordingly Enforce cfp_active of track to be enabled for proposals in ProposalsController#create and #update Add support for multiple schedules per track Add selected_schedule_id to Track Load EventSchedules of selected track schedules for conference schedules in admin/SchedulesController#show Modify SchedulesController#show to take into account only the selected track schedules Create Event#selected_schedule_id and use it in Event#scheduled? and Event#time Validate that an EventSchedule for an event of a self-organized track belongs to one of the track's schedules Add 'Manage' button in Tracks#index, #show that sends you to the admin side of things Add admin/TracksController#update_selected_schedule to update the selected_schedule_id of tracks
2017-08-09 18:12:20 +03:00
resources :schedules, except: [:edit, :update]
2016-08-04 12:19:32 +02:00
resources :event_schedules, only: [:create, :update, :destroy]
get 'commercials/render_commercial' => 'commercials#render_commercial'
resources :commercials, only: [:index, :create, :update, :destroy]
2014-06-12 19:49:54 +03:00
get '/volunteers_list' => 'volunteers#show'
get '/volunteers' => 'volunteers#index', as: 'volunteers_info'
patch '/volunteers' => 'volunteers#update', as: 'volunteers_update'
2014-05-15 20:55:27 +03:00
2017-05-17 13:31:27 +03:00
resources :booths do
member do
patch :accept
patch :restart
patch :to_accept
patch :reject
patch :reset
patch :to_reject
patch :cancel
2017-08-11 15:14:22 +03:00
patch :confirm
2017-05-17 13:31:27 +03:00
end
end
resources :registrations, except: [:create, :new] do
member do
2015-07-10 15:40:11 +02:00
patch :toggle_attendance
end
end
# Singletons
resource :splashpage
2015-11-07 11:43:36 +02:00
resource :venue do
2016-04-03 22:08:46 +05:30
get 'venue_commercial/render_commercial' => 'venue_commercials#render_commercial'
resource :venue_commercial, only: [:create, :update, :destroy]
2015-11-07 11:43:36 +02:00
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
Implement track scheduling Add track association to schedule Show schedules in admin sidebar to track organizers Allow track organizers to manage the schedules of their tracks Don't allow self-organized track events to be dragged or unscheduled in a conference schedule Make scheduled events of self-organized tracks appear semitransparent in conference schedules Make the rooms of confirmed self_organized tracks appear semitransparent and don't allow events to be scheduled to it in the conference schedules during the dates of its track Create admin/SchedulesController#new action Add a button in admin/Schedules#index to create schedules for tracks Add self_organized scope to Track Modify Schedules#show to handle track schedules and show a unified schedule Allow track organizers to create new schedules for their tracks Correctly identify scheduled and unscheduled events in Schedules#events Fix Event#room and Event#time for when the event is scheduled in a track schedule Modify Program#selected_event_schedules to include the event_schedules of selected track schedules Modify Track#revoke_role_and_cleanup to destroy the track's schedules and revert its events' state to new Add tabs for conference and track schedules in admin/Schedules#index Add button to Create/Show a tracks schedule in Tracks#index and #show Fix concurrent_events in application_helper because of changes in Program#selected_event_schedules Do not take into account cfp_active in Event#valid_track Modify EventsController#get_tracks accordingly Enforce cfp_active of track to be enabled for proposals in ProposalsController#create and #update Add support for multiple schedules per track Add selected_schedule_id to Track Load EventSchedules of selected track schedules for conference schedules in admin/SchedulesController#show Modify SchedulesController#show to take into account only the selected track schedules Create Event#selected_schedule_id and use it in Event#scheduled? and Event#time Validate that an EventSchedule for an event of a self-organized track belongs to one of the track's schedules Add 'Manage' button in Tracks#index, #show that sends you to the admin side of things Add admin/TracksController#update_selected_schedule to update the selected_schedule_id of tracks
2017-08-09 18:12:20 +03:00
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
2016-04-22 18:18:46 +03:00
patch :toggle_attendance
get :registrations
post :comment
patch :accept
patch :confirm
patch :cancel
patch :reject
patch :unconfirm
patch :restart
get :vote
end
end
2017-03-03 15:45:06 +02:00
resources :reports, only: :index
end
2014-11-12 12:12:57 +01:00
resources :resources
resources :tickets
resources :sponsors, except: [:show]
resources :lodgings, except: [:show]
resources :emails, only: [:show, :update, :index]
2017-09-26 21:43:18 +05:30
resources :physical_tickets, only: [:index]
resources :roles, except: [:new, :create] do
member do
post :toggle_user
end
end
resources :sponsorship_levels, except: [:show] do
2014-12-09 15:19:01 +01:00
member do
patch :up
patch :down
end
end
resources :questions do
collection do
patch :update_conference
end
end
get '/revision_history' => 'versions#index'
2013-01-07 09:04:09 +01:00
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'
2013-01-07 09:04:09 +01:00
end
resources :organizations, only: [:index] do
member do
2018-03-16 12:18:09 -07:00
get :conferences, 'code-of-conduct'
end
end
resources :conferences, only: [:index, :show] do
2017-07-20 14:20:46 +03:00
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
2016-04-22 18:18:46 +03:00
get :registrations
patch '/withdraw' => 'proposals#withdraw'
patch '/confirm' => 'proposals#confirm'
patch '/restart' => 'proposals#restart'
end
2014-07-23 16:24:05 +02:00
end
resources :tracks, except: :destroy do
member do
patch :restart
patch :confirm
patch :withdraw
end
end
2013-01-07 09:04:09 +01:00
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]
2017-09-26 21:43:18 +05:30
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
2013-01-07 09:04:09 +01:00
end
end
namespace :api, defaults: {format: 'json'} do
namespace :v1 do
2015-10-25 00:36:23 +03:00
resources :conferences, only: [ :index, :show ] do
2014-07-21 14:49:05 +02:00
resources :rooms, only: :index
resources :tracks, only: :index
resources :speakers, only: :index
resources :events, only: :index
2013-07-08 10:07:12 +02:00
end
2014-07-21 14:49:05 +02:00
resources :rooms, only: :index
resources :tracks, only: :index
resources :speakers, only: :index
resources :events, only: :index
end
end
get '/admin' => redirect('/admin/conferences')
2013-01-07 09:04:09 +01:00
2021-02-14 22:56:45 +01:00
get '/calendar' => 'conferences#calendar'
2022-05-06 14:27:15 +02:00
if ENV.fetch('OSEM_ROOT_CONFERENCE', nil)
root to: redirect("/conferences/#{ENV.fetch('OSEM_ROOT_CONFERENCE')}")
else
root to: 'conferences#index', via: [:get, :options]
end
2013-01-07 09:04:09 +01:00
end