* VRFS-2988 - relax position duplication constraint
This commit is contained in:
parent
f63c94d9a3
commit
4a36bc6982
|
|
@ -24,6 +24,7 @@ ActiveAdmin.register JamRuby::JamTrack, :as => 'JamTracks' do
|
|||
|
||||
column :original_artist
|
||||
column :name
|
||||
column :flags do |jam_track| jam_track.duplicate_positions? ? 'DUP POSITIONS' : '' end
|
||||
column :status
|
||||
column :master_track do |jam_track| jam_track.master_track.nil? ? 'None' : (link_to "Download", jam_track.master_track.url_by_sample_rate(44)) end
|
||||
column :licensor
|
||||
|
|
|
|||
|
|
@ -268,4 +268,5 @@ jam_track_right_admin_purchase.sql
|
|||
jam_track_playable_plays.sql
|
||||
shopping_cart_anonymous.sql
|
||||
user_reuse_card_and_reedem.sql
|
||||
jam_track_id_to_varchar.sql
|
||||
jam_track_id_to_varchar.sql
|
||||
drop_position_unique_jam_track.sql
|
||||
|
|
@ -0,0 +1 @@
|
|||
DROP INDEX jam_track_tracks_position_uniqkey;
|
||||
|
|
@ -44,7 +44,7 @@ module JamRuby
|
|||
belongs_to :genre, class_name: "JamRuby::Genre"
|
||||
belongs_to :licensor , class_name: 'JamRuby::JamTrackLicensor', foreign_key: 'licensor_id'
|
||||
|
||||
has_many :jam_track_tracks, :class_name => "JamRuby::JamTrackTrack", order: 'position ASC'
|
||||
has_many :jam_track_tracks, :class_name => "JamRuby::JamTrackTrack", order: 'position ASC, part ASC, instrument_id ASC'
|
||||
has_many :jam_track_tap_ins, :class_name => "JamRuby::JamTrackTapIn", order: 'offset_time ASC'
|
||||
|
||||
has_many :jam_track_rights, :class_name => "JamRuby::JamTrackRight" #, inverse_of: 'jam_track', :foreign_key => "jam_track_id" # '
|
||||
|
|
@ -63,6 +63,27 @@ module JamRuby
|
|||
accepts_nested_attributes_for :jam_track_tracks, allow_destroy: true
|
||||
accepts_nested_attributes_for :jam_track_tap_ins, allow_destroy: true
|
||||
|
||||
def duplicate_positions?
|
||||
counter = {}
|
||||
jam_track_tracks.each do |track|
|
||||
count = counter[track.position]
|
||||
if count.nil?
|
||||
count = 0
|
||||
end
|
||||
puts "count #{count}"
|
||||
counter[track.position] = count + 1
|
||||
end
|
||||
|
||||
duplicate = false
|
||||
counter.each do|position, count|
|
||||
if count > 1
|
||||
duplicate = true
|
||||
break
|
||||
end
|
||||
end
|
||||
duplicate
|
||||
end
|
||||
|
||||
class << self
|
||||
def index(options, user)
|
||||
if options[:page]
|
||||
|
|
|
|||
|
|
@ -23,7 +23,6 @@ module JamRuby
|
|||
validates :part, length: {maximum: 25}
|
||||
validates :track_type, inclusion: {in: TRACK_TYPE }
|
||||
validates :preview_start_time, numericality: {only_integer: true}, length: {in: 1..1000}, :allow_nil => true
|
||||
validates_uniqueness_of :position, scope: :jam_track_id
|
||||
validates_uniqueness_of :part, scope: [:jam_track_id, :instrument_id]
|
||||
# validates :jam_track, presence: true
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue