Merge pull request #254 from differentreality/final_schedule_routing

Fix schedule routing
This commit is contained in:
Artem Chernikov 2014-06-19 12:50:58 +02:00
commit 37e026a9fb
5 changed files with 65 additions and 66 deletions

View file

@ -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

View 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

View file

@ -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'

View file

@ -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