is_current method added to check an event is current and function addded to refresh conference_wide_information

This commit is contained in:
AnithaPal 2016-07-15 16:28:03 -04:00
parent 35afdcead4
commit febd3451ad
8 changed files with 74 additions and 2 deletions

View file

@ -45,6 +45,7 @@
//= require osem-commercials
//= require unobtrusive_flash
//= require unobtrusive_flash_bootstrap
//= require refresh_current_events
$(document).ready(function() {
$('a[disabled=disabled]').click(function(event){

View file

@ -0,0 +1,10 @@
$(document).ready(function() {
// will call refreshCurrentEvents every 15 minutes
setInterval(refreshCurrentEvents, 900000)
});
function refreshCurrentEvents(){
$.ajax({
url: "conference_wide_screen.js"
});
};

View file

@ -177,6 +177,13 @@ module Admin
#To display sponsors in the conference wide information page
@conference = Conference.find_by(short_title: params[:id])
@sponsors = @conference.sponsors
@program = @conference.program
@current_events = @conference.program.events.confirmed.select{ |event| event.is_current?}
respond_to do |format|
format.html
format.js {render :action=>"conference_wide_screen.js.haml"}
end
end
private

View file

@ -42,6 +42,8 @@ class Event < ActiveRecord::Base
scope :withdrawn, -> { where(state: 'withdrawn') }
scope :highlighted, -> { where(is_highlight: true) }
state_machine initial: :new do
state :new
state :withdrawn
@ -247,6 +249,13 @@ class Event < ActiveRecord::Base
event_schedules.find_by(schedule_id: program.selected_schedule_id).try(:start_time)
end
##
#Compares event start_time, end_with with current time to predict current events
#
def is_current?
Time.current >= self.start_time && Time.current <= end_time
end
private
##
@ -294,4 +303,12 @@ class Event < ActiveRecord::Base
def conference_id
program.conference_id
end
##
#Compares event start_time, end_with with current time to predict current events
#
def is_current?
Time.current >= self.start_time && Time.current <= end_time
end
end

View file

@ -0,0 +1,9 @@
.text-center
%h2 Upcoming Events
- @current_events.each do |event|
%div
%h3
= link_to event.title, conference_program_proposal_path(@conference.short_title, event.id)
%h4
presented by
= event.speaker_names

View file

@ -1,8 +1,10 @@
.container
- if @conference.present?
.row
.col-md-12.text-center
%h2 Upcoming Events
.col-md-12
- if @program.present?
%section#program#current-events
= render 'current_events'
.row
.col-md-12.text-center
%h2 Tweets About Conference

View file

@ -0,0 +1 @@
$('#current-events').html("#{escape_javascript(render 'current_events', data: @current_events)}");

View file

@ -327,4 +327,29 @@ describe Event do
expect(other_event.week).to eq 48
end
end
describe 'is_current?' do
let(:past_event) { create(:event, program: conference.program) }
let(:future_event) { create(:event, program: conference.program) }
before do
event.update_attributes(start_time: "#{Time.current}")
past_event.update_attributes(start_time: "#{Time.current - 2.days}")
future_event.update_attributes(start_time: "#{Time.current + 2.days}")
end
it 'returns false for a completed event' do
expect(past_event.is_current?).to be_falsey
end
it 'returns false for a future event' do
expect(future_event.is_current?).to be_falsey
end
it 'returns true for a current event' do
expect(event.is_current?).to be_truthy
end
end
end