* merged develop again

This commit is contained in:
Seth Call 2015-03-25 14:32:03 -05:00
commit 0848a59082
18 changed files with 62 additions and 29 deletions

View File

@ -149,9 +149,8 @@ SELECT played.player_id FROM
(SELECT player_id, COUNT(*) cnt FROM playable_plays pp
WHERE
pp.created_at >= '#{start_date}' AND
pp.created_at <= '#{end_date}' AND
pp.jam_track_id IS NOT NULL /* VRFS-2916 jam_tracks.id is varchar: REMOVE */
/* pp.playable_type = 'JamRuby::JamTrack' */ /* VRFS-2916 jam_tracks.id is varchar: ADD */
pp.created_at <= '#{end_date}' AND
pp.playable_type = 'JamRuby::JamTrack' /* VRFS-2916 jam_tracks.id is varchar: ADD */
GROUP BY player_id
) played
WHERE #{where}
@ -274,9 +273,9 @@ SQL
count = _subquery(assoc_key = :jam_tracks_played, num_user) do |subsql|
# VRFS-2916 jam_tracks.id is varchar: REMOVE
subsql += " AND tt.jam_track_id IS NOT NULL "
# subsql += " AND tt.jam_track_id IS NOT NULL "
# VRFS-2916 jam_tracks.id is varchar: ADD
# subsql += " AND tt.playable_type = 'JamRuby::JamTrack' "
subsql += " AND tt.playable_type = 'JamRuby::JamTrack' "
end
_put_data_set(assoc_key, count, num_user)

View File

@ -267,4 +267,5 @@ cohorts.sql
jam_track_right_admin_purchase.sql
jam_track_playable_plays.sql
shopping_cart_anonymous.sql
user_reuse_card_and_reedem.sql
user_reuse_card_and_reedem.sql
jam_track_id_to_varchar.sql

View File

@ -0,0 +1,25 @@
-- change jam_tracks PRIMARY KEY to VARCHAR(64)
-- first, drop all constraints and change the types
ALTER TABLE jam_track_tracks DROP CONSTRAINT jam_track_tracks_jam_track_id_fkey;
ALTER TABLE jam_track_tracks ALTER COLUMN jam_track_id TYPE VARCHAR(64);
ALTER TABLE jam_track_tap_ins DROP CONSTRAINT jam_track_tap_ins_jam_track_id_fkey;
ALTER TABLE jam_track_tap_ins ALTER COLUMN jam_track_id TYPE VARCHAR(64);
ALTER TABLE jam_track_rights DROP CONSTRAINT jam_track_rights_jam_track_id_fkey;
ALTER TABLE jam_track_rights ALTER COLUMN jam_track_id TYPE VARCHAR(64);
ALTER TABLE active_music_sessions ALTER COLUMN jam_track_id TYPE VARCHAR(64);
ALTER TABLE recordings DROP CONSTRAINT recordings_jam_track_id_fkey;
ALTER TABLE recordings ALTER COLUMN jam_track_id TYPE VARCHAR(64);
ALTER TABLE playable_plays DROP COLUMN jam_track_id;
-- then drop the jamtrack sequence, change it's type, and then set default to UUID
-- DROP SEQUENCE jam_tracks_next_seq;
ALTER TABLE jam_tracks ALTER COLUMN id TYPE VARCHAR(64);
ALTER TABLE jam_tracks ALTER COLUMN id SET DEFAULT uuid_generate_v4();
-- add back in all the constraints on the fk tables
ALTER TABLE jam_track_tracks ADD CONSTRAINT jam_track_tracks_jam_track_id_fkey FOREIGN KEY (jam_track_id) REFERENCES jam_tracks(id) ON DELETE CASCADE;
ALTER TABLE jam_track_tap_ins ADD CONSTRAINT jam_track_tap_ins_jam_track_id_fkey FOREIGN KEY (jam_track_id) REFERENCES jam_tracks(id) ON DELETE CASCADE;
ALTER TABLE jam_track_rights ADD CONSTRAINT jam_track_rights_jam_track_id_fkey FOREIGN KEY (jam_track_id) REFERENCES jam_tracks(id);
ALTER TABLE recordings ADD CONSTRAINT recordings_jam_track_id_fkey FOREIGN KEY (jam_track_id) REFERENCES jam_tracks(id);

View File

@ -56,9 +56,9 @@ module JamRuby
has_many :recordings, :class_name => "JamRuby::Recording"
# VRFS-2916 jam_tracks.id is varchar: REMOVE
has_many :plays, :class_name => "JamRuby::PlayablePlay", :foreign_key => :jam_track_id, :dependent => :destroy
# has_many :plays, :class_name => "JamRuby::PlayablePlay", :foreign_key => :jam_track_id, :dependent => :destroy
# VRFS-2916 jam_tracks.id is varchar: ADD
# has_many :plays, :class_name => "JamRuby::PlayablePlay", :as => :playable, :dependent => :destroy
has_many :plays, :class_name => "JamRuby::PlayablePlay", :as => :playable, :dependent => :destroy
accepts_nested_attributes_for :jam_track_tracks, allow_destroy: true
accepts_nested_attributes_for :jam_track_tap_ins, allow_destroy: true

View File

@ -307,7 +307,7 @@ module JamRuby
filter_approved = only_approved ? 'AND rrrs.chosen = true' : ''
MusicSession.where(%Q{music_sessions.canceled = FALSE AND
music_sessions.create_type != '#{CREATE_TYPE_QUICK_START}' AND
(music_sessions.create_type is NULL OR music_sessions.create_type != '#{CREATE_TYPE_QUICK_START}') AND
(music_sessions.scheduled_start is NULL OR music_sessions.scheduled_start > NOW() - '4 hour'::INTERVAL) AND
music_sessions.id in (
select distinct(rs.music_session_id)

View File

@ -4,20 +4,20 @@ module JamRuby
belongs_to :playable, :polymorphic => :true
# VRFS-2916 jam_tracks.id is varchar: REMOVE
belongs_to :jam_track, :foreign_key => :jam_track_id
#belongs_to :jam_track, :foreign_key => :jam_track_id
belongs_to :user, :class_name => "JamRuby::User", :foreign_key => "player_id"
belongs_to :claimed_recording, :class_name => "JamRuby::ClaimedRecording", :foreign_key => "claimed_recording_id"
validate do
# VRFS-2916 jam_tracks.id is varchar: REMOVE
if !playable_id && !jam_track_id
self.errors[:base] << 'No playable instance detected'
end
#if !playable_id && !jam_track_id
# self.errors[:base] << 'No playable instance detected'
#end
# VRFS-2916 jam_tracks.id is varchar: ADD
# if !playable_id
# self.errors[:base] << 'No playable instance detected'
# end
if !playable_id
self.errors[:base] << 'No playable instance detected'
end
if !user
self.errors[:base] << 'No user detected'

View File

@ -77,7 +77,7 @@ module JamRuby
duplicate_found = false
any_user.shopping_carts.each do |shopping_cart|
if shopping_cart.cart_type == JamTrack::PRODUCT_TYPE && shopping_cart.cart_id.to_i == jam_track.id
if shopping_cart.cart_type == JamTrack::PRODUCT_TYPE && shopping_cart.cart_id == jam_track.id
duplicate_found = true
return
end

View File

@ -72,9 +72,9 @@ module JamRuby
has_many :playing_jam_tracks, :class_name => "JamRuby::ActiveMusicSession", :inverse_of => :jam_track_initiator
# VRFS-2916 jam_tracks.id is varchar: REMOVE
has_many :jam_tracks_played, :class_name => "JamRuby::PlayablePlay", :foreign_key => 'player_id', :conditions => "jam_track_id IS NOT NULL"
# has_many :jam_tracks_played, :class_name => "JamRuby::PlayablePlay", :foreign_key => 'player_id', :conditions => "jam_track_id IS NOT NULL"
# VRFS-2916 jam_tracks.id is varchar: ADD
# has_many :jam_tracks_played, :class_name => "JamRuby::PlayablePlay", :foreign_key => 'player_id', :conditions => ["playable_type = 'JamRuby::JamTrack'"]
has_many :jam_tracks_played, :class_name => "JamRuby::PlayablePlay", :foreign_key => 'player_id', :conditions => ["playable_type = 'JamRuby::JamTrack'"]
# self.id = user_id in likes table
has_many :likings, :class_name => "JamRuby::Like", :inverse_of => :user, :dependent => :destroy

View File

@ -98,7 +98,7 @@ describe JamTrackRight do
end
it "bogus key" do
JamTrackRight.list_keys(user, [2112]).should eq([])
JamTrackRight.list_keys(user, ['2112']).should eq([])
end
it "valid track with no rights to it by querying user" do

View File

@ -20,9 +20,9 @@ describe JamTrack do
play = PlayablePlay.new
# VRFS-2916 jam_tracks.id is varchar: REMOVE
play.jam_track = @jam_track
# play.jam_track = @jam_track
# VRFS-2916 jam_tracks.id is varchar: ADD
# play.playable = @jam_track
play.playable = @jam_track
play.user = user
play.save!

View File

@ -854,6 +854,13 @@ describe MusicSession do
music_session_1.rsvp_slots[0].rsvp_requests_rsvp_slots[0].save!
MusicSession.scheduled_rsvp(creator_1, true).should == []
end
it "create_type = nil will still return RSVPs" do
music_session_1.create_type = nil
music_session_1.save!
MusicSession.scheduled_rsvp(creator_1, true).should == [music_session_1]
end
end
end

View File

@ -1035,7 +1035,7 @@
if(jamTrackMixers.length > 0) {
renderJamTracks(jamTrackMixers);
}
if(metronomeTrackMixers.length > 0) {
if(metronomeTrackMixers.length > 0 && sessionModel.jamTracks !== null) {
renderMetronomeTracks(metronomeTrackMixers);
}
if(adhocTrackMixers.length > 0) {

View File

@ -23,9 +23,9 @@ class ApiJamTracksController < ApiController
play.ip_address = request.remote_ip
# VRFS-2916 jam_tracks.id is varchar: REMOVE
play.jam_track = JamTrack.where(id: params[:id].to_i).first
# play.jam_track = JamTrack.where(id: params[:id].to_i).first
# VRFS-2916 jam_tracks.id is varchar: ADD
# play.playable = JamTrack.where(id: params[:id]).first
play.playable = JamTrack.where(id: params[:id]).first
play.save

View File

@ -7,7 +7,7 @@ node :genres do |item|
end
node :added_cart do |item|
any_user.shopping_carts.where("cart_id='?'",item.id).count != 0
any_user.shopping_carts.where(cart_id: item.id).count != 0
end
node :purchased do |item|

View File

@ -1,6 +1,6 @@
.screen.no-login-required layout="screen" layout-id="home"
/ Layout is different if jam_tracks tile available:
-jamtracks=Rails.configuration.jam_tracks_available
-jamtracks=Rails.configuration.jam_tracks_available || (current_user && current_user.admin)
-if (jamtracks)
-small_tile_size="2.4"
-column_positions=["0.0,1", "2.4,1", "4.8,1", "7.2,1", "9.6,1"]

View File

@ -86,7 +86,7 @@
li
a#open-a-recording[href="#"]
| Recording
- if Rails.application.config.jam_tracks_available
- if Rails.application.config.jam_tracks_available || (current_user && current_user.admin)
li
a#open-a-jamtrack[href="#"]
| JamTrack

View File

@ -15,6 +15,7 @@ describe ApiJamTracksController do
end
before(:each) do
JamTrackRight.destroy_all
JamTrack.destroy_all
@user = FactoryGirl.create(:user)
@jam_track = FactoryGirl.create(:jam_track)
@ -120,7 +121,6 @@ describe ApiJamTracksController do
describe "with a JamTrack" do
before(:each) do
JamTrackRight.destroy_all
# Create a working JamTrack for these tests. The integrity
# of this process is checked in other tests:
@ogg_path = File.join('spec', 'files', 'on.ogg')

View File

@ -17,6 +17,7 @@ describe "JamTrack Shopping", :js => true, :type => :feature, :capybara_feature
before(:each) do
ShoppingCart.delete_all
JamTrackRight.delete_all
JamTrack.delete_all
JamTrackTrack.delete_all
JamTrackLicensor.delete_all