voluntary_music_metadata_enrichment 0.0.1 → 0.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +15 -0
- data/app/assets/javascripts/voluntary_music_metadata_enrichment/groups/show.js.coffee +2 -1
- data/app/assets/javascripts/voluntary_music_metadata_enrichment/library/index.js.coffee +3 -2
- data/app/assets/javascripts/voluntary_music_metadata_enrichment/library/year_in_review_releases/index_view.js.coffee +94 -15
- data/app/assets/javascripts/voluntary_music_metadata_enrichment/library/year_in_review_releases/new_view.js.coffee +37 -2
- data/app/assets/javascripts/voluntary_music_metadata_enrichment/library/year_in_review_tracks/index_view.js.coffee +94 -15
- data/app/assets/javascripts/voluntary_music_metadata_enrichment/library/year_in_review_tracks/new_view.js.coffee +37 -2
- data/app/assets/javascripts/voluntary_music_metadata_enrichment/library/years_in_review/index_view.js.coffee +6 -0
- data/app/assets/javascripts/voluntary_music_metadata_enrichment/videos/show.js.coffee +2 -0
- data/app/controllers/concerns/music_metadata_enrichment/artist_confirmation.rb +98 -132
- data/app/controllers/concerns/music_metadata_enrichment/track_confirmation.rb +45 -24
- data/app/controllers/library/music/year_in_review_release_flops_controller.rb +31 -0
- data/app/controllers/library/music/year_in_review_releases_controller.rb +24 -4
- data/app/controllers/library/music/year_in_review_track_flops_controller.rb +31 -0
- data/app/controllers/library/music/year_in_review_tracks_controller.rb +55 -24
- data/app/controllers/library/music/years_in_review_controller.rb +25 -3
- data/app/controllers/music_metadata_enrichment/application_controller.rb +4 -0
- data/app/controllers/music_metadata_enrichment/artists_controller.rb +14 -12
- data/app/controllers/music_metadata_enrichment/group_memberships_controller.rb +20 -0
- data/app/controllers/music_metadata_enrichment/group_year_in_review_releases_controller.rb +29 -0
- data/app/controllers/music_metadata_enrichment/group_year_in_review_tracks_controller.rb +27 -0
- data/app/controllers/music_metadata_enrichment/group_year_in_reviews_controller.rb +18 -0
- data/app/controllers/music_metadata_enrichment/groups_controller.rb +2 -0
- data/app/controllers/music_metadata_enrichment/releases_controller.rb +59 -57
- data/app/controllers/music_metadata_enrichment/tracks_controller.rb +37 -7
- data/app/controllers/music_metadata_enrichment/videos_controller.rb +4 -4
- data/app/controllers/voluntary/api/v1/music/releases_controller.rb +17 -0
- data/app/controllers/voluntary/api/v1/music/tracks_controller.rb +17 -0
- data/app/controllers/voluntary/api/v1/music/videos_controller.rb +31 -0
- data/app/controllers/voluntary/api/v1/music/year_in_reviews_controller.rb +94 -0
- data/app/helpers/library/music/year_in_review_releases_helper.rb +14 -0
- data/app/helpers/library/music/year_in_review_tracks_helper.rb +13 -0
- data/app/helpers/library/music/year_in_reviews_helper.rb +22 -0
- data/app/helpers/music_metadata_enrichment/lastfm_helper.rb +19 -0
- data/app/models/concerns/lastfm_request.rb +54 -0
- data/app/models/concerns/music_metadata_enrichment/group_year_in_review_music_entry.rb +14 -0
- data/app/models/concerns/year_in_review_music_entry.rb +3 -1
- data/app/models/concerns/year_in_review_music_release_base.rb +35 -0
- data/app/models/concerns/year_in_review_music_track_base.rb +37 -0
- data/app/models/music_artist.rb +106 -27
- data/app/models/music_metadata_enrichment/group.rb +14 -13
- data/app/models/music_metadata_enrichment/group_membership.rb +13 -0
- data/app/models/music_metadata_enrichment/group_year_in_review.rb +72 -0
- data/app/models/music_metadata_enrichment/group_year_in_review_release.rb +8 -0
- data/app/models/music_metadata_enrichment/group_year_in_review_track.rb +8 -0
- data/app/models/music_release.rb +224 -35
- data/app/models/music_track.rb +140 -28
- data/app/models/year_in_review_music.rb +193 -101
- data/app/models/year_in_review_music_release.rb +2 -20
- data/app/models/year_in_review_music_release_flop.rb +4 -0
- data/app/models/year_in_review_music_track.rb +2 -24
- data/app/models/year_in_review_music_track_flop.rb +4 -0
- data/app/views/library/music/index.html.erb +2 -2
- data/app/views/library/music/year_in_review_release_flops/create.js.erb +5 -0
- data/app/views/library/music/year_in_review_releases/_collection.html.erb +55 -41
- data/app/views/library/music/year_in_review_releases/_form.html.erb +2 -1
- data/app/views/library/music/year_in_review_releases/_multiple_form.html.erb +20 -6
- data/app/views/library/music/year_in_review_releases/_year_in_review_release.html.erb +35 -0
- data/app/views/library/music/year_in_review_releases/create.js.erb +9 -4
- data/app/views/library/music/year_in_review_releases/destroy.js.erb +2 -2
- data/app/views/library/music/year_in_review_releases/export.html.erb +2 -1
- data/app/views/library/music/year_in_review_releases/index.html.erb +4 -4
- data/app/views/library/music/year_in_review_track_flops/create.js.erb +5 -0
- data/app/views/library/music/year_in_review_tracks/_collection.html.erb +49 -38
- data/app/views/library/music/year_in_review_tracks/_form.html.erb +2 -1
- data/app/views/library/music/year_in_review_tracks/_multiple_form.html.erb +69 -42
- data/app/views/library/music/year_in_review_tracks/_year_in_review_track.html.erb +29 -0
- data/app/views/library/music/year_in_review_tracks/create.js.erb +9 -4
- data/app/views/library/music/year_in_review_tracks/destroy.js.erb +2 -2
- data/app/views/library/music/year_in_review_tracks/export.html.erb +1 -1
- data/app/views/library/music/year_in_review_tracks/index.html.erb +3 -3
- data/app/views/library/music/year_in_review_tracks/multiple_new.js.erb +5 -2
- data/app/views/library/music/years_in_review/_collection.html.erb +23 -6
- data/app/views/library/music/years_in_review/destroy.js.erb +1 -0
- data/app/views/library/music/years_in_review/index.html.erb +2 -2
- data/app/views/library/music/years_in_review/publish.js.erb +1 -0
- data/app/views/library/music/years_in_review/show.html.erb +3 -3
- data/app/views/music_metadata_enrichment/artists/_collection.html.erb +3 -3
- data/app/views/music_metadata_enrichment/group_artist_connections/import.html.erb +1 -1
- data/app/views/music_metadata_enrichment/group_memberships/_create_or_destroy.html.erb +9 -0
- data/app/views/music_metadata_enrichment/group_memberships/create.js.erb +5 -0
- data/app/views/music_metadata_enrichment/group_memberships/destroy.js.erb +5 -0
- data/app/views/music_metadata_enrichment/group_year_in_review_releases/index.html.erb +16 -0
- data/app/views/music_metadata_enrichment/group_year_in_review_tracks/index.html.erb +16 -0
- data/app/views/music_metadata_enrichment/group_year_in_reviews/index.html.erb +18 -0
- data/app/views/music_metadata_enrichment/group_year_in_reviews/show.html.erb +20 -0
- data/app/views/music_metadata_enrichment/groups/show.html.erb +7 -1
- data/app/views/music_metadata_enrichment/releases/_spotify_album_player.html.erb +3 -0
- data/app/views/music_metadata_enrichment/releases/announce.html.erb +3 -1
- data/app/views/music_metadata_enrichment/releases/by_name.html.erb +1 -1
- data/app/views/music_metadata_enrichment/releases/name.html.erb +2 -1
- data/app/views/music_metadata_enrichment/releases/name_confirmation.html.erb +2 -1
- data/app/views/music_metadata_enrichment/releases/show.html.erb +24 -0
- data/app/views/music_metadata_enrichment/shared/_artist_confirmation_form.html.erb +2 -1
- data/app/views/music_metadata_enrichment/shared/_new_artist_form.html.erb +2 -1
- data/app/views/music_metadata_enrichment/shared/_new_track_form.html.erb +2 -1
- data/app/views/music_metadata_enrichment/shared/_track_confirmation_form.html.erb +3 -2
- data/app/views/music_metadata_enrichment/tracks/show.html.erb +20 -2
- data/app/views/music_metadata_enrichment/videos/artist_confirmation.html.erb +1 -1
- data/app/views/music_metadata_enrichment/videos/show.html.erb +7 -1
- data/config/locales/resources/music_metadata_enrichment_group_memberships/en.yml +7 -0
- data/config/locales/resources/music_releases/en.yml +4 -0
- data/config/locales/resources/music_tracks/en.yml +8 -3
- data/config/locales/resources/year_in_review_music_release_flops/en.yml +4 -0
- data/config/locales/resources/year_in_review_music_releases/en.yml +6 -1
- data/config/locales/resources/year_in_review_music_track_flops/en.yml +4 -0
- data/config/locales/resources/year_in_review_music_tracks/en.yml +4 -0
- data/config/locales/resources/years_in_review_music/en.yml +8 -3
- data/config/routes.rb +30 -2
- data/config/routes/api.rb +32 -0
- data/db/migrate/20150106183434_add_product_music_metadata_enrichment.rb +3 -1
- data/db/migrate/20150120091801_create_music_metadata_enrichment_groups.rb +2 -2
- data/db/migrate/20150208120722_add_is_lp_to_music_releases.rb +5 -0
- data/db/migrate/20150209091856_year_in_review_music_releases_and_tracks_flops.rb +34 -0
- data/db/migrate/20150209151056_add_is_ambiguous_to_music_artists.rb +5 -0
- data/db/migrate/20150213170604_create_group_memberships.rb +11 -0
- data/db/migrate/20150214083714_create_group_year_in_review_music_releases_and_tracks.rb +77 -0
- data/db/migrate/20150215120545_add_matches_to_year_in_reviews_music.rb +6 -0
- data/db/migrate/20150215135051_add_spotify_album_id_to_music_releases.rb +8 -0
- data/db/migrate/20150220084746_add_state_to_year_in_review_music_entries.rb +7 -0
- data/lib/voluntary_music_metadata_enrichment/ability.rb +12 -3
- data/lib/voluntary_music_metadata_enrichment/concerns/model/user/has_music_library.rb +69 -34
- data/lib/voluntary_music_metadata_enrichment/version.rb +1 -1
- metadata +63 -64
- data/MIT-LICENSE +0 -20
- data/README.rdoc +0 -3
@@ -4,47 +4,68 @@ module MusicMetadataEnrichment
|
|
4
4
|
|
5
5
|
private
|
6
6
|
|
7
|
-
def track_creation(from)
|
7
|
+
def track_creation(from, name = nil)
|
8
8
|
name_and_mbid = params[:music_track].delete(:name_and_mbid)
|
9
|
-
@track.name = MusicTrack.format_name(name_and_mbid.split(';').first)
|
9
|
+
@track.name = name || MusicTrack.format_name(name_and_mbid.split(';').first)
|
10
10
|
|
11
|
-
if track
|
12
|
-
|
11
|
+
if @track.name.length > 255
|
12
|
+
flash[:alert] = I18n.t('errors.messages.too_long.other', count: 255)
|
13
|
+
|
14
|
+
@path = params[:group_id].present? ? music_group_path(params[:group_id]) :
|
15
|
+
music_path
|
16
|
+
elsif track = MusicTrack.where("artist_id = :artist_id AND LOWER(name) = :name", artist_id: @track.artist_id, name: @track.name.downcase.strip).first
|
17
|
+
@track = track
|
18
|
+
@path = if from == 'new_track'
|
13
19
|
flash[:alert] = I18n.t('music_tracks.create.already_exist')
|
14
|
-
|
20
|
+
music_track_path(track.id)
|
15
21
|
elsif from == 'new_video'
|
16
|
-
|
22
|
+
metadata_music_videos_path(
|
17
23
|
(params[:group_id].present? ? {group_id: params[:group_id]} : {}).merge(music_video: { track_id: track.id })
|
18
24
|
)
|
19
25
|
end
|
20
26
|
else
|
21
|
-
|
27
|
+
is_bonus_track = name.present? ? false : @track.is_bonus_track?
|
28
|
+
|
29
|
+
if @track.release_name.present?
|
30
|
+
release = MusicRelease.create(artist_id: @track.artist_id, name: @track.release_name, is_lp: @track.release_is_lp)
|
31
|
+
end
|
32
|
+
|
33
|
+
if name.present? || @track.release_name.present?
|
34
|
+
@track.create_draft_track(name || @track.name)
|
35
|
+
|
36
|
+
if @track.persisted?
|
37
|
+
flash[:notice] = I18n.t('music_tracks.create.draft_successful')
|
38
|
+
else
|
39
|
+
flash[:alert] = I18n.t('music_tracks.create.draft_failed', errors: @track.errors.full_messages.join('. '))
|
40
|
+
end
|
41
|
+
end
|
42
|
+
|
43
|
+
if name.blank? && (@track.artist.is_classical? || is_bonus_track)
|
22
44
|
@track.create_bonus_track(name_and_mbid.split(';').last)
|
23
|
-
flash[:notice] = I18n.t('music_tracks.create.successfully_creation')
|
24
45
|
|
46
|
+
if @track.persisted?
|
47
|
+
flash[:notice] = I18n.t('music_tracks.create.bonus_track_successful')
|
48
|
+
else
|
49
|
+
flash[:alert] = I18n.t('music_tracks.create.bonus_track_failed', errors: @track.errors.full_messages.join('. '))
|
50
|
+
end
|
51
|
+
end
|
52
|
+
|
53
|
+
if @track.persisted?
|
25
54
|
if from == 'new_track'
|
26
|
-
|
55
|
+
@path = music_track_path(@track.id)
|
27
56
|
elsif from == 'new_video'
|
28
|
-
|
57
|
+
@path = metadata_music_videos_path(
|
29
58
|
(params[:group_id].present? ? {group_id: params[:group_id]} : {}).merge(music_video: { track_id: @track.id })
|
30
59
|
)
|
31
60
|
end
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
flash[:notice] = I18n.t('music_tracks.create.scheduled_release_for_import')
|
37
|
-
else
|
38
|
-
flash[:alert] = release.errors.full_messages.join('. ')
|
39
|
-
end
|
40
|
-
|
41
|
-
if params[:group_id].present?
|
42
|
-
redirect_to music_group_path(params[:group_id])
|
43
|
-
else
|
44
|
-
redirect_to music_path
|
45
|
-
end
|
61
|
+
else
|
62
|
+
@path = track_name_music_tracks_path(
|
63
|
+
(params[:group_id].present? ? {group_id: params[:group_id]} : {}).merge(music_track: { artist_id: @track.artist_id })
|
64
|
+
)
|
46
65
|
end
|
47
66
|
end
|
67
|
+
|
68
|
+
redirect_to @path unless @path.blank? || request.xhr?
|
48
69
|
end
|
49
70
|
|
50
71
|
def build_track
|
@@ -0,0 +1,31 @@
|
|
1
|
+
class Library::Music::YearInReviewReleaseFlopsController < ::MusicMetadataEnrichment::ApplicationController
|
2
|
+
include ::MusicMetadataEnrichment::BaseController
|
3
|
+
include Applicat::Mvc::Controller::Resource
|
4
|
+
|
5
|
+
before_action :find_resource, only: [:move, :destroy]
|
6
|
+
authorize_resource class: 'YearInReviewMusicReleaseFlop'
|
7
|
+
|
8
|
+
def create
|
9
|
+
build_resource
|
10
|
+
|
11
|
+
if @year_in_review_release_flop.save
|
12
|
+
@year_in_review.releases.where(release_id: @year_in_review_release_flop.release_id).delete_all
|
13
|
+
MusicLibraryArtist.create(user_id: current_user.id, artist_id: @year_in_review_release_flop.artist_id)
|
14
|
+
end
|
15
|
+
|
16
|
+
render layout: false
|
17
|
+
end
|
18
|
+
|
19
|
+
private
|
20
|
+
|
21
|
+
def build_resource
|
22
|
+
@user = current_user
|
23
|
+
find_year_in_review
|
24
|
+
params[:year_in_review_music_release_flop] ||= {}
|
25
|
+
@year_in_review_release_flop = @year_in_review.flop_releases.new(release_id: params[:year_in_review_music_release_flop][:release_id])
|
26
|
+
end
|
27
|
+
|
28
|
+
def find_year_in_review
|
29
|
+
@year_in_review = @user.years_in_review_music.where(year: params[:year]).first
|
30
|
+
end
|
31
|
+
end
|
@@ -2,7 +2,7 @@ class Library::Music::YearInReviewReleasesController < ::MusicMetadataEnrichment
|
|
2
2
|
include ::MusicMetadataEnrichment::BaseController
|
3
3
|
include Applicat::Mvc::Controller::Resource
|
4
4
|
|
5
|
-
before_action :find_resource, only: [:
|
5
|
+
before_action :find_resource, only: [:destroy]
|
6
6
|
authorize_resource class: 'YearInReviewMusicRelease'
|
7
7
|
|
8
8
|
def index
|
@@ -51,6 +51,7 @@ class Library::Music::YearInReviewReleasesController < ::MusicMetadataEnrichment
|
|
51
51
|
build_resource
|
52
52
|
|
53
53
|
if @year_in_review_release.save
|
54
|
+
@year_in_review.flop_releases.where(release_id: @year_in_review_release.release_id).delete_all
|
54
55
|
MusicLibraryArtist.create(user_id: current_user.id, artist_id: @year_in_review_release.artist_id)
|
55
56
|
@notice = I18n.t('year_in_review_music_releases.create.successful')
|
56
57
|
get_year_in_review_releases
|
@@ -60,13 +61,28 @@ class Library::Music::YearInReviewReleasesController < ::MusicMetadataEnrichment
|
|
60
61
|
end
|
61
62
|
|
62
63
|
def move
|
63
|
-
|
64
|
+
year_in_review_releases = current_user.years_in_review_music_releases.where('year_in_review_music_releases.id IN(?)', params[:positions].values).index_by(&:id)
|
65
|
+
|
66
|
+
params[:positions].keys.map(&:to_i).sort.each do |position|
|
67
|
+
id = params[:positions][position.to_s]
|
68
|
+
year_in_review_releases[id.to_i].reload
|
69
|
+
year_in_review_releases[id.to_i].insert_at(position.to_i)
|
70
|
+
end
|
71
|
+
|
72
|
+
render nothing: true
|
73
|
+
end
|
74
|
+
|
75
|
+
def update_all_positions
|
76
|
+
@user = current_user
|
77
|
+
find_year_in_review
|
78
|
+
|
79
|
+
@year_in_review.update_all_positions_of_users_top_list(@user, :releases, params[:matches], params[:positions])
|
64
80
|
|
65
81
|
render nothing: true
|
66
82
|
end
|
67
83
|
|
68
84
|
def destroy
|
69
|
-
@year_in_review_release.destroy
|
85
|
+
@year_in_review_release.destroy
|
70
86
|
@user = current_user
|
71
87
|
params[:user_id], params[:year] = current_user.id, @year_in_review_release.year
|
72
88
|
find_year_in_review
|
@@ -90,7 +106,9 @@ class Library::Music::YearInReviewReleasesController < ::MusicMetadataEnrichment
|
|
90
106
|
private
|
91
107
|
|
92
108
|
def find_year_in_review
|
93
|
-
@year_in_review = @user.years_in_review_music
|
109
|
+
@year_in_review = @user.years_in_review_music
|
110
|
+
@year_in_review = @year_in_review.published unless current_user.try(:id) == @user.id
|
111
|
+
@year_in_review = @year_in_review.where(year: params[:year]).first
|
94
112
|
end
|
95
113
|
|
96
114
|
def build_resource
|
@@ -106,5 +124,7 @@ class Library::Music::YearInReviewReleasesController < ::MusicMetadataEnrichment
|
|
106
124
|
|
107
125
|
def get_year_in_review_releases
|
108
126
|
@year_in_review_releases = @year_in_review.releases.order('position ASC')
|
127
|
+
@year_in_review_tracks = @year_in_review.tracks.order('position ASC').group_by(&:release_id)
|
128
|
+
@year_in_review_tracks_count = @year_in_review_tracks.values.flatten.length
|
109
129
|
end
|
110
130
|
end
|
@@ -0,0 +1,31 @@
|
|
1
|
+
class Library::Music::YearInReviewTrackFlopsController < ::MusicMetadataEnrichment::ApplicationController
|
2
|
+
include ::MusicMetadataEnrichment::BaseController
|
3
|
+
include Applicat::Mvc::Controller::Resource
|
4
|
+
|
5
|
+
before_action :find_resource, only: [:move, :destroy]
|
6
|
+
authorize_resource class: 'YearInReviewMusicTrackFlop'
|
7
|
+
|
8
|
+
def create
|
9
|
+
build_resource
|
10
|
+
|
11
|
+
if @year_in_review_track_flop.save
|
12
|
+
@year_in_review.tracks.where(track_id: @year_in_review_track_flop.track_id).delete_all
|
13
|
+
MusicLibraryArtist.create(user_id: current_user.id, artist_id: @year_in_review_track_flop.artist_id)
|
14
|
+
end
|
15
|
+
|
16
|
+
render layout: false
|
17
|
+
end
|
18
|
+
|
19
|
+
private
|
20
|
+
|
21
|
+
def build_resource
|
22
|
+
@user = current_user
|
23
|
+
find_year_in_review
|
24
|
+
params[:year_in_review_music_track_flop] ||= {}
|
25
|
+
@year_in_review_track_flop = @year_in_review.flop_tracks.new(track_id: params[:year_in_review_music_track_flop][:track_id])
|
26
|
+
end
|
27
|
+
|
28
|
+
def find_year_in_review
|
29
|
+
@year_in_review = @user.years_in_review_music.where(year: params[:year]).first
|
30
|
+
end
|
31
|
+
end
|
@@ -2,7 +2,7 @@ class Library::Music::YearInReviewTracksController < ::MusicMetadataEnrichment::
|
|
2
2
|
include ::MusicMetadataEnrichment::BaseController
|
3
3
|
include Applicat::Mvc::Controller::Resource
|
4
4
|
|
5
|
-
before_action :find_resource, only: [:
|
5
|
+
before_action :find_resource, only: [:destroy]
|
6
6
|
authorize_resource class: 'YearInReviewMusicTrack'
|
7
7
|
|
8
8
|
def index
|
@@ -19,31 +19,44 @@ class Library::Music::YearInReviewTracksController < ::MusicMetadataEnrichment::
|
|
19
19
|
end
|
20
20
|
|
21
21
|
def multiple_new
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
@
|
22
|
+
if params[:commit].present?
|
23
|
+
@user = current_user
|
24
|
+
find_year_in_review
|
25
|
+
@tracks = current_user.music_tracks.for_year_in_review(@year_in_review)
|
26
|
+
@release_ids = []
|
27
|
+
|
28
|
+
if params[:only_tracks_of_top_releases] == 'true'
|
29
|
+
@release_ids = @year_in_review.releases.map(&:release_id)
|
30
|
+
@tracks = @tracks.where('music_tracks.release_id IN(?)', @release_ids) if @release_ids.any?
|
31
|
+
end
|
32
|
+
|
33
|
+
if params[:only_tracks_of_top_releases] == 'true' && @release_ids.none?
|
34
|
+
@message = I18n.t('year_in_review_music_tracks.multiple_new.no_top_releases_available')
|
35
|
+
else
|
36
|
+
@tracks = @tracks.where('music_tracks.id > ?', params[:last_id]) if params[:last_id].present?
|
37
|
+
@tracks_left = @tracks.count
|
38
|
+
@tracks = @tracks.order('music_tracks.id ASC').limit(10)
|
39
|
+
params[:last_id] = params[:commit] == I18n.t('general.close') || @tracks.none? ? nil : @tracks.last.id
|
35
40
|
|
36
|
-
|
41
|
+
if params[:commit] != I18n.t('general.close') && params[:year_in_review_music_tracks].present?
|
42
|
+
params[:year_in_review_music_tracks].each do |track_id, checked|
|
43
|
+
next unless checked == '1'
|
44
|
+
|
45
|
+
@year_in_review_track = @year_in_review.tracks.create(track_id: track_id)
|
46
|
+
|
47
|
+
next unless @year_in_review_track.persisted?
|
48
|
+
|
49
|
+
MusicLibraryArtist.create(user_id: current_user.id, artist_id: @year_in_review_track.artist_id)
|
50
|
+
end
|
51
|
+
end
|
37
52
|
|
38
|
-
|
53
|
+
if params[:commit] == I18n.t('general.close') || @tracks.none?
|
54
|
+
get_year_in_review_tracks
|
55
|
+
params[:user_id] = current_user.id
|
56
|
+
end
|
39
57
|
end
|
40
58
|
end
|
41
59
|
|
42
|
-
if params[:commit] == I18n.t('general.close') || @tracks.none?
|
43
|
-
get_year_in_review_tracks
|
44
|
-
params[:user_id] = current_user.id
|
45
|
-
end
|
46
|
-
|
47
60
|
render layout: false
|
48
61
|
end
|
49
62
|
|
@@ -51,6 +64,7 @@ class Library::Music::YearInReviewTracksController < ::MusicMetadataEnrichment::
|
|
51
64
|
build_resource
|
52
65
|
|
53
66
|
if @year_in_review_track.save
|
67
|
+
@year_in_review.flop_tracks.where(track_id: @year_in_review_track.track_id).delete_all
|
54
68
|
MusicLibraryArtist.create(user_id: current_user.id, artist_id: @year_in_review_track.artist_id)
|
55
69
|
@notice = I18n.t('year_in_review_music_tracks.create.successful')
|
56
70
|
get_year_in_review_tracks
|
@@ -60,13 +74,28 @@ class Library::Music::YearInReviewTracksController < ::MusicMetadataEnrichment::
|
|
60
74
|
end
|
61
75
|
|
62
76
|
def move
|
63
|
-
|
77
|
+
year_in_review_tracks = current_user.years_in_review_music_tracks.where('year_in_review_music_tracks.id IN(?)', params[:positions].values).index_by(&:id)
|
78
|
+
|
79
|
+
params[:positions].keys.map(&:to_i).sort.each do |position|
|
80
|
+
id = params[:positions][position.to_s]
|
81
|
+
year_in_review_tracks[id.to_i].reload
|
82
|
+
year_in_review_tracks[id.to_i].insert_at(position.to_i)
|
83
|
+
end
|
84
|
+
|
85
|
+
render nothing: true
|
86
|
+
end
|
87
|
+
|
88
|
+
def update_all_positions
|
89
|
+
@user = current_user
|
90
|
+
find_year_in_review
|
91
|
+
|
92
|
+
@year_in_review.update_all_positions_of_users_top_list(@user, :tracks, params[:matches], params[:positions])
|
64
93
|
|
65
94
|
render nothing: true
|
66
95
|
end
|
67
96
|
|
68
97
|
def destroy
|
69
|
-
@year_in_review_track.destroy
|
98
|
+
@year_in_review_track.destroy
|
70
99
|
@user = current_user
|
71
100
|
params[:user_id], params[:year] = current_user.id, @year_in_review_track.year
|
72
101
|
find_year_in_review
|
@@ -90,7 +119,9 @@ class Library::Music::YearInReviewTracksController < ::MusicMetadataEnrichment::
|
|
90
119
|
private
|
91
120
|
|
92
121
|
def find_year_in_review
|
93
|
-
@year_in_review = @user.years_in_review_music
|
122
|
+
@year_in_review = @user.years_in_review_music
|
123
|
+
@year_in_review = @year_in_review.published unless current_user.try(:id) == @user.id
|
124
|
+
@year_in_review = @year_in_review.where(year: params[:year]).first
|
94
125
|
end
|
95
126
|
|
96
127
|
def build_resource
|
@@ -20,7 +20,27 @@ class Library::Music::YearsInReviewController < ::MusicMetadataEnrichment::Appli
|
|
20
20
|
|
21
21
|
def show
|
22
22
|
@user = User.find(params[:user_id])
|
23
|
-
@year_in_review = @user.years_in_review_music
|
23
|
+
@year_in_review = @user.years_in_review_music
|
24
|
+
@year_in_review = @year_in_review.published unless current_user.try(:id) == @user.id
|
25
|
+
@year_in_review = @year_in_review.where(year: params[:year]).first
|
26
|
+
end
|
27
|
+
|
28
|
+
def publish
|
29
|
+
@year_in_review = current_user.years_in_review_music.where(id: params[:id]).first
|
30
|
+
@year_in_review.publish
|
31
|
+
|
32
|
+
render layout: false
|
33
|
+
end
|
34
|
+
|
35
|
+
def destroy
|
36
|
+
@year_in_review = current_user.years_in_review_music.where(id: params[:id]).first
|
37
|
+
@year_in_review.destroy
|
38
|
+
@user = current_user
|
39
|
+
params[:user_id] = current_user.id
|
40
|
+
get_years_in_review
|
41
|
+
build_year_in_review if user_signed_in?
|
42
|
+
|
43
|
+
render layout: false
|
24
44
|
end
|
25
45
|
|
26
46
|
def resource
|
@@ -35,7 +55,9 @@ class Library::Music::YearsInReviewController < ::MusicMetadataEnrichment::Appli
|
|
35
55
|
end
|
36
56
|
|
37
57
|
def get_years_in_review
|
38
|
-
@user
|
39
|
-
@years_in_review = @user.years_in_review_music
|
58
|
+
@user ||= User.find(params[:user_id])
|
59
|
+
@years_in_review = @user.years_in_review_music
|
60
|
+
@years_in_review = @years_in_review.published unless current_user.try(:id) == @user.id
|
61
|
+
@years_in_review = @years_in_review.order('year DESC').paginate(per_page: 10, page: params[:page] || 1)
|
40
62
|
end
|
41
63
|
end
|
@@ -8,4 +8,8 @@ class MusicMetadataEnrichment::ApplicationController < ::ApplicationController
|
|
8
8
|
def voluntary_application_javascripts
|
9
9
|
['voluntary/application', 'voluntary_music_metadata_enrichment/application', 'application']
|
10
10
|
end
|
11
|
+
|
12
|
+
def voluntary_application_repository_path
|
13
|
+
'volontariat/voluntary_music_metadata_enrichment'
|
14
|
+
end
|
11
15
|
end
|
@@ -9,20 +9,21 @@ class MusicMetadataEnrichment::ArtistsController < ::MusicMetadataEnrichment::Ap
|
|
9
9
|
|
10
10
|
def index
|
11
11
|
if request.xhr?
|
12
|
-
if request.original_url.match('/groups/') && params[:id]
|
13
|
-
@group = MusicMetadataEnrichment::Group.find(params[:id])
|
12
|
+
if params[:group_id].present? || request.original_url.match('/groups/') && params[:id]
|
13
|
+
@group = MusicMetadataEnrichment::Group.find(params[:group_id] || params[:id])
|
14
14
|
@artists = @group.artists
|
15
|
+
@pagination_params = { group_id: (params[:group_id] || params[:id]) }
|
15
16
|
elsif params[:user_id].present?
|
16
17
|
@artists = User.find(params[:user_id]).music_artists
|
17
18
|
end
|
18
19
|
|
19
20
|
@artists = @artists.order('name ASC').paginate(per_page: 10, page: params[:page] || 1)
|
20
21
|
|
21
|
-
if
|
22
|
+
if @group && @artists.any?
|
22
23
|
@group_artist_connections = @group.artist_connections.where('music_metadata_enrichment_group_artist_connections.artist_id IN(?)', @artists.map(&:id))
|
23
24
|
|
24
25
|
if user_signed_in?
|
25
|
-
@group_artist_connection_likes =
|
26
|
+
@group_artist_connection_likes = MusicMetadataEnrichment::GroupArtistConnection.likes_or_dislikes_for(current_user, @group_artist_connections.map(&:id))
|
26
27
|
end
|
27
28
|
|
28
29
|
@group_artist_connections = @group_artist_connections.index_by(&:artist_id)
|
@@ -36,7 +37,7 @@ class MusicMetadataEnrichment::ArtistsController < ::MusicMetadataEnrichment::Ap
|
|
36
37
|
|
37
38
|
def autocomplete
|
38
39
|
render json: (
|
39
|
-
MusicArtist.select('id, name').where("name LIKE ?", "#{params[:term]}%").order(:name).limit(10).map{|a| { id: a.id, value: a.name } }
|
40
|
+
MusicArtist.select('id, name, disambiguation').where("LOWER(name) LIKE ?", "#{params[:term].to_s.strip.downcase}%").order(:name).limit(10).map{|a| { id: a.id, value: a.name + (a.disambiguation.present? ? " (#{a.disambiguation})" : '') } }
|
40
41
|
), root: false
|
41
42
|
end
|
42
43
|
|
@@ -52,6 +53,7 @@ class MusicMetadataEnrichment::ArtistsController < ::MusicMetadataEnrichment::Ap
|
|
52
53
|
params[:music_artist] ||= {}
|
53
54
|
name_and_mbid = params[:music_artist].delete(:name_and_mbid)
|
54
55
|
create_artist('new_artist', name_and_mbid)
|
56
|
+
redirect_after_artist_available(from)
|
55
57
|
end
|
56
58
|
|
57
59
|
def show
|
@@ -60,13 +62,13 @@ class MusicMetadataEnrichment::ArtistsController < ::MusicMetadataEnrichment::Ap
|
|
60
62
|
end
|
61
63
|
|
62
64
|
def by_name
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
65
|
+
if params[:name].blank?
|
66
|
+
flash[:alert] = I18n.t('music_artists.by_name.name_blank')
|
67
|
+
redirect_to music_artists_path and return
|
68
|
+
end
|
67
69
|
|
68
|
-
|
69
|
-
|
70
|
+
@artists = MusicArtist.where("LOWER(name) = ?", params[:name].downcase.strip)
|
71
|
+
@artist = @artists.first if params[:page].blank? && @artists.count == 1
|
70
72
|
|
71
73
|
if @artist
|
72
74
|
get_variables_for_show
|
@@ -90,4 +92,4 @@ class MusicMetadataEnrichment::ArtistsController < ::MusicMetadataEnrichment::Ap
|
|
90
92
|
def get_variables_for_show
|
91
93
|
@releases = @artist.releases.order('released_at ASC')
|
92
94
|
end
|
93
|
-
end
|
95
|
+
end
|