* track em

This commit is contained in:
Seth Call 2016-01-03 21:38:30 -06:00
parent e2b98284ae
commit 70f22f8601
9 changed files with 58 additions and 1 deletions

View File

@ -316,4 +316,5 @@ acappella.sql
purchasable_gift_cards.sql
versionable_jamtracks.sql
session_controller.sql
jam_tracks_bpm.sql
jam_tracks_bpm.sql
jam_track_sessions.sql

View File

@ -0,0 +1,9 @@
CREATE TABLE jam_track_sessions (
id VARCHAR(64) PRIMARY KEY DEFAULT uuid_generate_v4(),
jam_track_id VARCHAR(64) NOT NULL REFERENCES jam_tracks(id) ON DELETE CASCADE,
session_type VARCHAR(10) NOT NULL,
music_session_id VARCHAR(64) REFERENCES music_sessions(id) ON DELETE SET NULL,
user_id VARCHAR(64) NOT NULL REFERENCES users(id),
created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
updated_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP
);

View File

@ -256,6 +256,7 @@ require "jam_ruby/models/jam_track_search"
require "jam_ruby/models/gift_card"
require "jam_ruby/models/gift_card_purchase"
require "jam_ruby/models/gift_card_type"
require "jam_ruby/models/jam_track_session"
include Jampb

View File

@ -774,6 +774,8 @@ module JamRuby
self.opening_jam_track = true
self.save
self.opening_jam_track = false
JamTrackSession.create_session(jam_track, user, self.music_session) if jam_track && user
#self.tick_track_changes
end

View File

@ -73,6 +73,8 @@ module JamRuby
# VRFS-2916 jam_tracks.id is varchar: ADD
has_many :plays, :class_name => "JamRuby::PlayablePlay", :as => :playable, :dependent => :destroy
has_many :jam_track_session, :class_name => "JamRuby::JamTrackSession"
# when we know what JamTrack this refund is related to, these are associated
belongs_to :recurly_transactions, class_name: 'JamRuby::RecurlyTransactionWebHook'

View File

@ -0,0 +1,34 @@
# -*- coding: utf-8 -*-
module JamRuby
class JamTrackSession < ActiveRecord::Base
BROWSER = 'browser'
SESSION = 'session'
TYPES = [BROWSER, SESSION]
@@log = Logging.logger[JamTrackSession]
belongs_to :music_session, class_name: 'JamRuby::MusicSession'
belongs_to :user, class_name: 'JamRuby::User'
belongs_to :jam_track, class_name: 'JamRuby::JamTrack'
def self.create_session(jam_track, user, music_session)
create(jam_track, user, SESSION, music_session)
end
def self.create_browser(jam_track, user)
create(jam_track, user, BROWSER, nil)
end
private
def self.create(jam_track, user, type, music_session)
jam_track_session = JamTrackSession.new
jam_track_session.jam_track = jam_track
jam_track_session.user = user
jam_track_session.session_type = type
jam_track_session.music_session = music_session
jam_track_session.save
jam_track_session
end
end
end

View File

@ -53,6 +53,7 @@ module JamRuby
has_many :invited_fans, :through => :fan_invitations, :class_name => "JamRuby::User", :foreign_key => "receiver_id", :source => :receiver
has_many :rsvp_slots, :class_name => "JamRuby::RsvpSlot", :foreign_key => "music_session_id", :dependent => :destroy
has_many :music_notations, :class_name => "JamRuby::MusicNotation", :foreign_key => "music_session_id"
has_many :jam_track_session, :class_name => "JamRuby::JamTrackSession"
validates :genre, :presence => true
validates :description, :presence => true, :no_profanity => true

View File

@ -183,6 +183,8 @@ module JamRuby
has_one :musician_search, :class_name => 'JamRuby::MusicianSearch'
has_one :band_search, :class_name => 'JamRuby::BandSearch'
has_many :jam_track_session, :class_name => "JamRuby::JamTrackSession"
before_save :default_anonymous_names
before_save :create_remember_token, :if => :should_validate_password?
before_save :stringify_avatar_info , :if => :updating_avatar

View File

@ -33,6 +33,11 @@ class PopupsController < ApplicationController
@jamtrack_id = params[:jam_track_id]
@websocket = true
gon.jamtrack_id = @jamtrack_id
jam_track = JamTrack.find_by_id(@jamtrack_id)
JamTrackSession.create_browser(jam_track, current_user) if jam_track && current_user
render :layout => "minimal"
end