VRFS-1945 added create_type to music_sessions; filtering session search based on create_type

This commit is contained in:
Jonathan Kolyer 2014-10-21 07:27:26 +00:00
parent d17d4ede99
commit af2159fe72
6 changed files with 49 additions and 35 deletions

View File

@ -221,4 +221,5 @@ connection_network_testing.sql
video_sources.sql
recorded_videos.sql
emails_from_update2.sql
add_youtube_flag_to_claimed_recordings.sql
add_youtube_flag_to_claimed_recordings.sql
add_session_create_type.sql

View File

@ -0,0 +1 @@
ALTER TABLE music_sessions ADD COLUMN create_type VARCHAR(64);

View File

@ -21,6 +21,8 @@ require 'rest-client'
require 'zip'
require 'csv'
require 'byebug'
require "jam_ruby/constants/limits"
require "jam_ruby/constants/notification_types"
require "jam_ruby/constants/validation_messages"

View File

@ -16,6 +16,12 @@ module JamRuby
UNSTARTED_INTERVAL_DAYS_PURGE = '28' # days past scheduled start to purge session
UNSTARTED_INTERVAL_DAYS_PURGE_RECUR = '28' # days past scheduled start to purge recurddingsession
CREATE_TYPE_START_SCHEDULED = 'start-scheduled'
CREATE_TYPE_SCHEDULE_FUTURE = 'schedule-future'
CREATE_TYPE_RSVP = 'rsvp'
CREATE_TYPE_IMMEDIATE = 'immediately'
CREATE_TYPE_QUICK_START = 'quick-start'
attr_accessor :legal_terms, :language_description, :access_description, :scheduling_info_changed
attr_accessor :approved_rsvps, :open_slots, :pending_invitations
@ -293,8 +299,9 @@ module JamRuby
query = MusicSession.where("music_sessions.canceled = FALSE")
query = query.where("music_sessions.user_id = '#{user.id}'")
query = query.where("music_sessions.scheduled_start IS NULL OR #{session_not_started} OR #{session_finished}")
query = query.where("music_sessions.create_type IS NULL OR music_sessions.create_type != '#{CREATE_TYPE_QUICK_START}'")
query = query.order("music_sessions.scheduled_start ASC")
query
end
@ -338,6 +345,7 @@ module JamRuby
ms.legal_terms = true
ms.open_rsvps = options[:open_rsvps] if options[:open_rsvps]
ms.creator = user
ms.create_type = options[:create_type]
ms.is_unstructured_rsvp = options[:isUnstructuredRsvp] if options[:isUnstructuredRsvp]
ms.scheduled_start = parse_scheduled_start(options[:start], options[:timezone]) if options[:start] && options[:timezone]
@ -716,6 +724,7 @@ module JamRuby
query = query.offset(offset)
query = query.limit(limit)
query = query.where("music_sessions.create_type IS NULL OR music_sessions.create_type != ?", MusicSession::CREATE_TYPE_QUICK_START)
query = query.where("music_sessions.genre_id = ?", genre) unless genre.blank?
query = query.where('music_sessions.language = ?', lang) unless lang.blank?
query = query.where("(description_tsv @@ to_tsquery('jamenglish', ?))", ActiveRecord::Base.connection.quote(keyword) + ':*') unless keyword.blank?

View File

@ -17,7 +17,7 @@
var MAX_GENRES = 1;
var createSessionSettings = {
createType: 'start-scheduled',
createType: '<%= MusicSession::CREATE_TYPE_START_SCHEDULED %>',
timezone: {},
recurring_mode: {},
language: {},
@ -139,14 +139,14 @@
});
}
if (createSessionSettings.createType == 'start-scheduled' && createSessionSettings.session_count == 0)
if (createSessionSettings.createType == '<%= MusicSession::CREATE_TYPE_START_SCHEDULED%>' && createSessionSettings.session_count == 0)
$editScheduledSessions.hide();
else if (createSessionSettings.createType == 'start-scheduled' && createSessionSettings.session_count > 0)
else if (createSessionSettings.createType == '<%= MusicSession::CREATE_TYPE_START_SCHEDULED%>' && createSessionSettings.session_count > 0)
$editScheduledSessions.show();
var $btnNext = $screen.find('.btn-next');
if (step == STEP_SELECT_TYPE && createSessionSettings.createType == 'start-scheduled' && createSessionSettings.selectedSessionId == null) {
if (step == STEP_SELECT_TYPE && createSessionSettings.createType == '<%= MusicSession::CREATE_TYPE_START_SCHEDULED%>' && createSessionSettings.selectedSessionId == null) {
$btnNext.addClass('disabled');
}
else {
@ -223,11 +223,11 @@
startType = 'Now!';
createSessionSettings.startType = "START SESSION";
}
else if (createSessionSettings.createType == 'rsvp') {
else if (createSessionSettings.createType == '<%= MusicSession::CREATE_TYPE_RSVP %>') {
startType = 'To be determined after RSVPs received';
createSessionSettings.startType = "PUBLISH SESSION";
}
else if (createSessionSettings.createType == 'schedule-future') {
else if (createSessionSettings.createType == '<%= MusicSession::CREATE_TYPE_SCHEDULE_FUTURE %>') {
startType = createSessionSettings.startDate + ',' +
createSessionSettings.startTime + ', ' +
createSessionSettings.timezone.label;
@ -289,7 +289,7 @@
}
$('#session-invited-disp').html(sessionInvitedString);
if (createSessionSettings.createType == 'start-scheduled') {
if (createSessionSettings.createType == '<%= MusicSession::CREATE_TYPE_START_SCHEDULED%>') {
var session = scheduledSessions[createSessionSettings.selectedSessionId];
if (session.approved_rsvps.length > 0) {
var instruments_me = [];
@ -348,7 +348,7 @@
}
function beforeMoveStep1() {
if (createSessionSettings.createType == 'start-scheduled') {
if (createSessionSettings.createType == '<%= MusicSession::CREATE_TYPE_START_SCHEDULED%>') {
createSessionSettings.selectedSessionId = $scheduledSessions.find('.iradio_minimal.checked input[name="scheduled-session-info"]').attr('data-session-id');
var session = scheduledSessions[createSessionSettings.selectedSessionId];
@ -394,7 +394,7 @@
}
return false;
}
else if (createSessionSettings.createType == 'quick-start') {
else if (createSessionSettings.createType == '<%= MusicSession::CREATE_TYPE_QUICK_START %>') {
createSessionSettings.genresValues = ['Pop'];
createSessionSettings.genres = ['pop'];
createSessionSettings.timezone.label = "(GMT-06:00) Central Time (US & Canada)";
@ -604,7 +604,7 @@
var data = {};
if (createSessionSettings.createType == 'start-scheduled') {
if (createSessionSettings.createType == '<%= MusicSession::CREATE_TYPE_START_SCHEDULED%>') {
data = scheduledSessions[createSessionSettings.selectedSessionId];
}
else {
@ -636,11 +636,11 @@
data.legal_policy = createSessionSettings.session_policy;
data.legal_terms = true;
data.language = createSessionSettings.language.value;
if (createSessionSettings.createType == 'quick-start' || createSessionSettings.createType == 'immediately') {
if (createSessionSettings.createType == '<%= MusicSession::CREATE_TYPE_QUICK_START %>' || createSessionSettings.createType == '<%= MusicSession::CREATE_TYPE_IMMEDIATE %>') {
data.start = new Date().toDateString() + ' ' + context.JK.formatUtcTime(new Date(), false);
data.duration = "60";
}
else if (createSessionSettings.createType == 'rsvp') {
else if (createSessionSettings.createType == '<%= MusicSession::CREATE_TYPE_RSVP %>') {
data.start = ""; data.duration = "0";
}
else {
@ -666,6 +666,7 @@
data.music_notations = createSessionSettings.notations;
data.timezone = createSessionSettings.timezone.value;
data.open_rsvps = createSessionSettings.open_rsvps;
data.create_type = createSessionSettings.createType;
data.rsvp_slots = [];
$.each(getCreatorInstruments(), function(index, instrument) {
@ -698,7 +699,7 @@
context.location = '/client#/session/' + sessionId;
};
if (createSessionSettings.createType == 'start-scheduled') {
if (createSessionSettings.createType == '<%= MusicSession::CREATE_TYPE_START_SCHEDULED%>') {
joinSession(createSessionSettings.selectedSessionId);
$('#create-session-buttons .btn-next').off('click');
}
@ -709,7 +710,7 @@
$('#create-session-buttons .btn-next').off('click');
var newSessionId = response.id;
if (createSessionSettings.createType == 'quick-start' || createSessionSettings.createType == "immediately") {
if (createSessionSettings.createType == '<%= MusicSession::CREATE_TYPE_QUICK_START %>' || createSessionSettings.createType == "immediately") {
joinSession(newSessionId);
}
else {
@ -765,7 +766,7 @@
for (var i = 0; i < TOTAL_STEPS; i++) {
var $eachStep = $sessionSteps.find('.session-stepnumber[data-step-number="' + i + '"]');
if (createSessionSettings.createType == 'start-scheduled') {
if (createSessionSettings.createType == '<%= MusicSession::CREATE_TYPE_START_SCHEDULED%>') {
if (step == STEP_SELECT_TYPE) {
if (createSessionSettings.session_count > 0 && i == STEP_SELECT_CONFIRM) {
$eachStep.on('click', next);
@ -777,7 +778,7 @@
$eachStep.addClass('session-stephover');
}
}
else if (createSessionSettings.createType == 'quick-start') {
else if (createSessionSettings.createType == '<%= MusicSession::CREATE_TYPE_QUICK_START %>') {
if (step == STEP_SELECT_CONFIRM && i == STEP_SELECT_TYPE) {
$eachStep.on('click', back);
$eachStep.addClass('session-stephover');
@ -825,7 +826,7 @@
$btnBack.hide();
}
if (step == STEP_SELECT_TYPE && createSessionSettings.createType == 'start-scheduled' && createSessionSettings.selectedSessionId == null) {
if (step == STEP_SELECT_TYPE && createSessionSettings.createType == '<%= MusicSession::CREATE_TYPE_START_SCHEDULED%>' && createSessionSettings.selectedSessionId == null) {
$btnNext.addClass('disabled');
}
else {
@ -851,7 +852,7 @@
}
if ($(this).is('.disabled')) return false;
if ($.inArray(createSessionSettings.createType, ['start-scheduled', 'quick-start']) > -1)
if ($.inArray(createSessionSettings.createType, ['<%= MusicSession::CREATE_TYPE_START_SCHEDULED%>', '<%= MusicSession::CREATE_TYPE_QUICK_START %>']) > -1)
step = STEP_SELECT_TYPE;
else
step--;
@ -866,9 +867,9 @@
// will this option result in a session being started?
function willOptionStartSession() {
return createSessionSettings.createType == 'start-scheduled' ||
createSessionSettings.createType == 'immediately' ||
createSessionSettings.createType == 'quick-start';
return createSessionSettings.createType == '<%= MusicSession::CREATE_TYPE_START_SCHEDULED%>' ||
createSessionSettings.createType == '<%= MusicSession::CREATE_TYPE_IMMEDIATE %>' ||
createSessionSettings.createType == '<%= MusicSession::CREATE_TYPE_QUICK_START %>';
}
function next(event) {
@ -888,7 +889,7 @@
}
if ($(this).is('.disabled')) return false;
if ($.inArray(createSessionSettings.createType, ['start-scheduled', 'quick-start']) > -1)
if ($.inArray(createSessionSettings.createType, ['<%= MusicSession::CREATE_TYPE_START_SCHEDULED%>', '<%= MusicSession::CREATE_TYPE_QUICK_START %>']) > -1)
step = STEP_SELECT_CONFIRM;
else
step++;
@ -1077,7 +1078,7 @@
$screen.find('#create-session-steps .session-stepnumber').off('click');
$screen.find('#create-session-steps .session-stepnumber').removeClass('session-stephover');
if ($.inArray(createSessionSettings.createType, ['start-scheduled', 'quick-start']) > -1) {
if ($.inArray(createSessionSettings.createType, ['<%= MusicSession::CREATE_TYPE_START_SCHEDULED%>', '<%= MusicSession::CREATE_TYPE_QUICK_START %>']) > -1) {
if (step == STEP_SELECT_CONFIRM) {
for (var i = 1; i < 4; i++) {
$screen.find('#create-session-steps .session-stepnumber[data-step-number="' + i + '"]').hide();
@ -1092,11 +1093,11 @@
}
$screen.find('#create-session-steps .session-stepnumber[data-step-number="4"]').html("5");
var $nextStep = $screen.find('#create-session-steps .session-stepnumber[data-step-number="1"]');
if (createSessionSettings.createType == 'quick-start') {
if (createSessionSettings.createType == '<%= MusicSession::CREATE_TYPE_QUICK_START %>') {
$nextStep.on('click', next);
$nextStep.addClass('session-stephover')
}
else if (createSessionSettings.createType == 'start-scheduled' && createSessionSettings.session_count > 0) {
else if (createSessionSettings.createType == '<%= MusicSession::CREATE_TYPE_START_SCHEDULED%>' && createSessionSettings.session_count > 0) {
$nextStep.on('click', next);
$nextStep.addClass('session-stephover')
}
@ -1124,7 +1125,7 @@
createSessionSettings.createType = checkedType;
if (createSessionSettings.createType == 'start-scheduled') {
if (createSessionSettings.createType == '<%= MusicSession::CREATE_TYPE_START_SCHEDULED%>') {
$('#start-scheduled-wrapper').show();
$('#schedule-future-wrapper').hide();
createSessionSettings.timezone = {};
@ -1134,7 +1135,7 @@
createSessionSettings.musician_access = {};
createSessionSettings.fans_access = {};
}
else if (createSessionSettings.createType == 'schedule-future') {
else if (createSessionSettings.createType == '<%= MusicSession::CREATE_TYPE_SCHEDULE_FUTURE %>') {
$('#start-scheduled-wrapper').hide();
$('#schedule-future-wrapper').show();
}
@ -1145,7 +1146,7 @@
}
var $btnNext = $('#create-session-buttons .btn-next');
if (step == STEP_SELECT_TYPE && createSessionSettings.createType == 'start-scheduled' && createSessionSettings.selectedSessionId == null) {
if (step == STEP_SELECT_TYPE && createSessionSettings.createType == '<%= MusicSession::CREATE_TYPE_START_SCHEDULED%>' && createSessionSettings.selectedSessionId == null) {
$btnNext.addClass('disabled')
}
else {

View File

@ -27,35 +27,35 @@
<div class="icheckbuttons">
<ul id="create-session-type">
<li create-type="start-scheduled">
<li create-type="<%= MusicSession::CREATE_TYPE_START_SCHEDULED %>">
<input type="radio" name="session-when" id="session-when-start-scheduled" checked="checked" info-value="start-scheduled" />
<label for="session-when-start-scheduled" class="radio-text">
I have already scheduled a session, and I want to start it now
</label>
<div class="clearall"></div>
</li>
<li create-type="schedule-future">
<li create-type="<%= MusicSession::CREATE_TYPE_SCHEDULE_FUTURE %>">
<input type="radio" name="session-when" id="session-when-schedule-future" info-value="schedule-future" />
<label for="session-when-schedule-future" class="radio-text">
I want to schedule a session for a specific future time
</label>
<div class="clearall"></div>
</li>
<li create-type="rsvp">
<li create-type="<%= MusicSession::CREATE_TYPE_RSVP %>">
<input type="radio" name="session-when" id="session-when-rsvp" info-value="rsvp" />
<label for="session-when-rsvp" class="radio-text">
I want to choose the time after others RSVP to my session
</label>
<div class="clearall"></div>
</li>
<li create-type="immediately">
<li create-type="<%= MusicSession::CREATE_TYPE_IMMEDIATE %>">
<input type="radio" name="session-when" id="session-when-immediately" info-value="immediately" />
<label for="session-when-immediately" class="radio-text">
I want to start a new session right now for others to join
</label>
<div class="clearall"></div>
</li>
<li create-type="quick-start">
<li create-type="<%= MusicSession::CREATE_TYPE_QUICK_START %>">
<input type="radio" name="session-when" id="session-when-quick-start" info-value="quick-start" />
<label for="session-when-quick-start" class="radio-text">
I want to quick start a test session just for me