mirror of
https://github.com/openSUSE/osem.git
synced 2026-08-13 19:54:02 +00:00
Merge pull request #254 from differentreality/final_schedule_routing
Fix schedule routing
This commit is contained in:
commit
37e026a9fb
5 changed files with 65 additions and 66 deletions
|
|
@ -1,54 +0,0 @@
|
|||
class Admin::ScheduleController < ApplicationController
|
||||
before_filter :verify_organizer
|
||||
skip_before_filter :verify_authenticity_token, :only => [:update]
|
||||
layout "schedule"
|
||||
|
||||
def show
|
||||
if @conference.nil?
|
||||
redirect_to admin_conference_index_path
|
||||
return
|
||||
end
|
||||
@dates = @conference.start_date..@conference.end_date
|
||||
@rooms = @conference.rooms
|
||||
end
|
||||
|
||||
def update
|
||||
event = Event.where(:guid => params[:event]).first
|
||||
error_message = nil
|
||||
if event.nil?
|
||||
error_message = "Could not find event GUID: #{params[:event]}"
|
||||
end
|
||||
|
||||
if params[:date] == "none"
|
||||
event.start_time = nil
|
||||
event.room = nil
|
||||
event.save!
|
||||
render :json => {"status" => "ok"}
|
||||
return
|
||||
end
|
||||
room = Room.where(:guid => params[:room]).first
|
||||
if room.nil?
|
||||
error_message = "Could not find room GUID: #{params[:room]}"
|
||||
end
|
||||
|
||||
if !error_message.nil?
|
||||
render :json => {"status" => "error", "message" => error_message}, :status => 500
|
||||
return
|
||||
end
|
||||
|
||||
event.room = room
|
||||
time = "#{params[:date]} #{params[:time]}"
|
||||
|
||||
Rails.logger.debug("Loading #{time}")
|
||||
# FIXME: Same here as in events_controller.rb. Event timezone should be applied
|
||||
# only on output
|
||||
# zone = ActiveSupport::TimeZone::new(@conference.timezone)
|
||||
# startTime = DateTime.strptime(time + zone.formatted_offset, "%Y-%m-%d %k:%M %Z")
|
||||
startTime = DateTime.strptime(time, "%Y-%m-%d %k:%M")
|
||||
event.start_time = startTime
|
||||
event.save!
|
||||
render :json => {"status" => "ok"}
|
||||
end
|
||||
|
||||
|
||||
end
|
||||
54
app/controllers/admin/schedules_controller.rb
Normal file
54
app/controllers/admin/schedules_controller.rb
Normal file
|
|
@ -0,0 +1,54 @@
|
|||
module Admin
|
||||
class SchedulesController < ApplicationController
|
||||
before_filter :verify_organizer
|
||||
skip_before_filter :verify_authenticity_token, only: [:update]
|
||||
layout 'schedule'
|
||||
|
||||
def show
|
||||
if @conference.nil?
|
||||
redirect_to admin_conference_index_path
|
||||
return
|
||||
end
|
||||
@dates = @conference.start_date..@conference.end_date
|
||||
@rooms = @conference.rooms
|
||||
end
|
||||
|
||||
def update
|
||||
event = Event.where(guid: params[:event]).first
|
||||
error_message = nil
|
||||
if event.nil?
|
||||
error_message = "Could not find event GUID: #{params[:event]}"
|
||||
end
|
||||
|
||||
if params[:date] == 'none'
|
||||
event.start_time = nil
|
||||
event.room = nil
|
||||
event.save!
|
||||
render json: { 'status' => 'ok' }
|
||||
return
|
||||
end
|
||||
room = Room.where(guid: params[:room]).first
|
||||
if room.nil?
|
||||
error_message = "Could not find room GUID: #{params[:room]}"
|
||||
end
|
||||
|
||||
unless error_message.nil?
|
||||
render json: { 'status' => 'error', 'message' => error_message }, status: 500
|
||||
return
|
||||
end
|
||||
|
||||
event.room = room
|
||||
time = "#{params[:date]} #{params[:time]}"
|
||||
|
||||
Rails.logger.debug("Loading #{time}")
|
||||
# FIXME: Same here as in events_controller.rb. Event timezone should be applied
|
||||
# only on output
|
||||
# zone = ActiveSupport::TimeZone::new(@conference.timezone)
|
||||
# start_time = DateTime.strptime(time + zone.formatted_offset, "%Y-%m-%d %k:%M %Z")
|
||||
start_time = DateTime.strptime(time, '%Y-%m-%d %k:%M')
|
||||
event.start_time = start_time
|
||||
event.save!
|
||||
render json: { 'status' => 'ok' }
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
@ -9,7 +9,7 @@
|
|||
%ul#date-tabs
|
||||
- @dates.each do |date|
|
||||
%li.date-selector
|
||||
= link_to "#{date}", "#", :id => "#{date}-selector", :onclick => "Schedule.changeDay('#{date}')"
|
||||
= link_to "#{date}", "#", id: "#{date}-selector", onclick: "Schedule.changeDay('#{date}')"
|
||||
.schedule-rooms-container
|
||||
= render 'day_tab'
|
||||
|
||||
|
|
@ -2,22 +2,21 @@ Osem::Application.routes.draw do
|
|||
|
||||
get 'conference/show'
|
||||
|
||||
devise_for :users, :controllers => { :registrations => :registrations }, :path => 'accounts'
|
||||
devise_for :users, controllers: { registrations: :registrations }, path: 'accounts'
|
||||
|
||||
namespace :admin do
|
||||
resources :users
|
||||
resources :people
|
||||
resources :conference do
|
||||
get "/schedule" => "schedule#show"
|
||||
patch "/schedule" => "schedule#update"
|
||||
get "/stats" => "stats#index"
|
||||
get "/venue" => "venue#show", :as => "venue_info"
|
||||
patch "/venue" => "venue#update", :as => "venue_update"
|
||||
get "/dietary_choices" => "dietchoices#show", :as => "dietary_list"
|
||||
patch "/dietary_choices" => "dietchoices#update", :as => "dietary_update"
|
||||
get "/volunteers_list" => "volunteers#show"
|
||||
get "/volunteers" => "volunteers#index", :as => "volunteers_info"
|
||||
patch "/volunteers" => "volunteers#update", :as => "volunteers_update"
|
||||
resource :schedule, only: [:show, :update]
|
||||
get '/stats' => 'stats#index'
|
||||
get '/venue' => 'venue#show', as: 'venue_info'
|
||||
patch '/venue' => 'venue#update', as: 'venue_update'
|
||||
get '/dietary_choices' => 'dietchoices#show', as: 'dietary_list'
|
||||
patch '/dietary_choices' => 'dietchoices#update', as: 'dietary_update'
|
||||
get '/volunteers_list' => 'volunteers#show'
|
||||
get '/volunteers' => 'volunteers#index', as: 'volunteers_info'
|
||||
patch '/volunteers' => 'volunteers#update', as: 'volunteers_update'
|
||||
|
||||
patch '/registrations/change_field' => 'registrations#change_field'
|
||||
resources :registrations
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue