From 08637503e5b957fb89f6b03228908c80525f2a3b Mon Sep 17 00:00:00 2001 From: Ancor Gonzalez Sosa Date: Tue, 16 Jul 2013 18:16:37 +0200 Subject: [PATCH] schedule renders 10x faster now. Caching disabled --- app/controllers/schedule_controller.rb | 5 ++--- app/views/schedule/index.html.erb | 11 ++++++++--- 2 files changed, 10 insertions(+), 6 deletions(-) diff --git a/app/controllers/schedule_controller.rb b/app/controllers/schedule_controller.rb index 997e6612..8a18f568 100644 --- a/app/controllers/schedule_controller.rb +++ b/app/controllers/schedule_controller.rb @@ -1,13 +1,12 @@ class ScheduleController < ApplicationController layout "application" - caches_page :index def index - @conference = Conference.find_all_by_short_title(params[:conference_id]).first + @conference = Conference.includes(:rooms, {:events => [:speakers, :track, :event_type]}).where("conferences.short_title" => params[:conference_id]).first + @rooms = @conference.rooms @events = @conference.events @dates = @conference.start_date..@conference.end_date - @rooms = @conference.rooms end end diff --git a/app/views/schedule/index.html.erb b/app/views/schedule/index.html.erb index 4b4e2aee..12df1d14 100644 --- a/app/views/schedule/index.html.erb +++ b/app/views/schedule/index.html.erb @@ -28,6 +28,9 @@ <% conf_end = DateTime.parse("#{date} 19:00") %> <% while conf_start < conf_end %> + <%- + start_hour = conf_start.hour + start_min = conf_start.min %> @@ -35,7 +38,8 @@ <% @rooms.each do |room| %> - <% event = @events.find_all{|event|event.start_time and event.start_time.strftime("%Y-%m-%d %H:%M").eql? conf_start.strftime("%Y-%m-%d %H:%M") and event.room_id == room.id } %> + <% events_for_date = @events.find_all {|e| e.room_id == room.id && e.start_time && e.start_time.to_date == date } %> + <% event = events_for_date.find_all{|e| e.start_time.hour == start_hour && e.start_time.min == start_min } %> <% if !event.empty? %> <% span[room.id] = event[0].event_type.length / 15 %> @@ -44,8 +48,9 @@ class="event" role="button" data-href="<%= url_for(conference_proposal_path(@conference.short_title, event[0].id)) %>">
- <%- speaker = event[0].speakers.first || event[0].submitter %> - <%= image_tag speaker.gravatar_url, :class => "img-circle pull-right", :alt => speaker.public_name, :title => speaker.public_name, :style => "padding:8px;" %> + <%- if speaker = event[0].speakers.first %> + <%= image_tag speaker.gravatar_url, :class => "img-circle pull-right", :alt => speaker.public_name, :title => speaker.public_name, :style => "padding:8px;" %> + <%- end %> <%= event[0].title %>