* track em
This commit is contained in:
parent
e2b98284ae
commit
70f22f8601
|
|
@ -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
|
||||
|
|
@ -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
|
||||
);
|
||||
|
|
@ -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
|
||||
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
||||
|
|
|
|||
|
|
@ -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'
|
||||
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue