VRFS-2916 formatting, added jam_track_played placeholders
This commit is contained in:
parent
cfd80927f9
commit
5621f227b8
|
|
@ -1,6 +1,6 @@
|
|||
ActiveAdmin.register Cohort, :as => 'Cohorts' do
|
||||
|
||||
menu :label => 'Cohorts', :parent => 'Analytics'
|
||||
menu :label => 'Cohorts All-time', :parent => 'Analytics'
|
||||
|
||||
config.sort_order = 'group_start_desc'
|
||||
config.batch_actions = false
|
||||
|
|
@ -13,51 +13,59 @@ ActiveAdmin.register Cohort, :as => 'Cohorts' do
|
|||
def scoped_collection
|
||||
objs = super
|
||||
Cohort.alltime_cohorts! if 0 == Cohort.where(all_time: true).count
|
||||
objs = objs.where(all_time: true).order('group_start DESC')
|
||||
logger.debug("*** scoped_collection: #{objs.to_sql}")
|
||||
objs
|
||||
objs.where(all_time: true).order('group_start DESC')
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
index :title => "All-Time Cohorts" do
|
||||
column 'Cohort' do |cc| cc.group_start_str end
|
||||
column Cohort::TOTAL_LABELS[:registered_users] do |cc| cc.data_val(:registered_users) end
|
||||
column 'Cohort' do |cc|
|
||||
div(class: :cohort_col) { cc.group_start_str }
|
||||
end
|
||||
|
||||
column Cohort::TOTAL_LABELS[:registered_users] do |cc|
|
||||
div(class: :cohort_col) { cc.data_val(:registered_users) }
|
||||
end
|
||||
|
||||
column Cohort::TOTAL_LABELS[:first_downloaded_client_at] do |cc|
|
||||
cc.data_val(:first_downloaded_client_at)
|
||||
div(class: :cohort_col) { cc.data_val(:first_downloaded_client_at) }
|
||||
end
|
||||
column '%' do |cc| cc.data_val(:first_downloaded_client_at, true) end
|
||||
column '%' do |cc| div(class: :cohort_col) { cc.data_val(:first_downloaded_client_at, true) } end
|
||||
|
||||
column Cohort::TOTAL_LABELS[:first_certified_gear_at] do |cc|
|
||||
cc.data_val(:first_certified_gear_at)
|
||||
div(class: :cohort_col) { cc.data_val(:first_certified_gear_at) }
|
||||
end
|
||||
column '%' do |cc| cc.data_val(:first_certified_gear_at, true) end
|
||||
column '%' do |cc| div(class: :cohort_col) { cc.data_val(:first_certified_gear_at, true) } end
|
||||
|
||||
column Cohort::TOTAL_LABELS[:music_sessions_user_history] do |cc|
|
||||
cc.data_val(:music_sessions_user_history)
|
||||
div(class: :cohort_col) { cc.data_val(:music_sessions_user_history) }
|
||||
end
|
||||
column '%' do |cc| cc.data_val(:music_sessions_user_history, true) end
|
||||
column '%' do |cc| div(class: :cohort_col) { cc.data_val(:music_sessions_user_history, true) } end
|
||||
|
||||
column Cohort::TOTAL_LABELS[:jam_track_played] do |cc|
|
||||
div(class: :cohort_col) { cc.data_val(:jam_track_played) }
|
||||
end
|
||||
column '%' do |cc| div(class: :cohort_col) { cc.data_val(:jam_track_played, true) } end
|
||||
|
||||
column Cohort::TOTAL_LABELS[:jam_track_rights] do |cc|
|
||||
cc.data_val(:jam_track_rights)
|
||||
div(class: :cohort_col) { cc.data_val(:jam_track_rights) }
|
||||
end
|
||||
column '%' do |cc| cc.data_val(:jam_track_rights, true) end
|
||||
column '%' do |cc| div(class: :cohort_col) { cc.data_val(:jam_track_rights, true) } end
|
||||
|
||||
column Cohort::TOTAL_LABELS[:recorded_tracks] do |cc|
|
||||
cc.data_val(:recorded_tracks)
|
||||
div(class: :cohort_col) { cc.data_val(:recorded_tracks) }
|
||||
end
|
||||
column '%' do |cc| cc.data_val(:recorded_tracks, true) end
|
||||
column '%' do |cc| div(class: :cohort_col) { cc.data_val(:recorded_tracks, true) } end
|
||||
|
||||
column Cohort::TOTAL_LABELS[:friendships] do |cc|
|
||||
cc.data_val(:friendships)
|
||||
div(class: :cohort_col) { cc.data_val(:friendships) }
|
||||
end
|
||||
column '%' do |cc| cc.data_val(:friendships, true) end
|
||||
column '%' do |cc| div(class: :cohort_col) { cc.data_val(:friendships, true) } end
|
||||
|
||||
column Cohort::TOTAL_LABELS[:invited_users] do |cc|
|
||||
cc.data_val(:invited_users)
|
||||
div(class: :cohort_col) { cc.data_val(:invited_users) }
|
||||
end
|
||||
column '%' do |cc| cc.data_val(:invited_users, true) end
|
||||
column '%' do |cc| div(class: :cohort_col) { cc.data_val(:invited_users, true) } end
|
||||
end
|
||||
|
||||
end
|
||||
|
|
|
|||
|
|
@ -54,6 +54,26 @@ ActiveAdmin.register Cohort, :as => 'Cohorts Monthly' do
|
|||
end
|
||||
column '%' do |cc| cc.data_val(:music_sessions_user_history_6_, true) end
|
||||
|
||||
column Cohort::MONTHLY_LABELS[:jam_track_played_1] do |cc|
|
||||
cc.data_val(:jam_track_played_1)
|
||||
end
|
||||
column '%' do |cc| cc.data_val(:jam_track_played_1, true) end
|
||||
|
||||
column Cohort::MONTHLY_LABELS[:jam_track_played_2_5] do |cc|
|
||||
cc.data_val(:jam_track_played_2_5)
|
||||
end
|
||||
column '%' do |cc| cc.data_val(:jam_track_played_2_5, true) end
|
||||
|
||||
column Cohort::MONTHLY_LABELS[:jam_track_played_6_] do |cc|
|
||||
cc.data_val(:jam_track_played_6_)
|
||||
end
|
||||
column '%' do |cc| cc.data_val(:jam_track_played_6_, true) end
|
||||
|
||||
column Cohort::MONTHLY_LABELS[:jam_track_rights_redeemed] do |cc|
|
||||
cc.data_val(:jam_track_rights_redeemed)
|
||||
end
|
||||
column '%' do |cc| cc.data_val(:jam_track_rights_redeemed, true) end
|
||||
|
||||
column Cohort::MONTHLY_LABELS[:jam_track_rights] do |cc|
|
||||
cc.data_val(:jam_track_rights)
|
||||
end
|
||||
|
|
|
|||
|
|
@ -31,3 +31,7 @@
|
|||
// .active_admin applies to any Active Admin namespace
|
||||
// .admin_namespace applies to the admin namespace (eg: /admin)
|
||||
// .other_namespace applies to a custom namespace named other (eg: /other)
|
||||
|
||||
.cohort_col {
|
||||
text-align: center;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -4,23 +4,18 @@ class Cohort < ActiveRecord::Base
|
|||
|
||||
EARLIEST_DATE = Time.parse('2014-03-01')
|
||||
|
||||
KEY_SET_TOTAL = [:registered_users, :first_downloaded_client_at, :first_certified_gear_at, :music_sessions_user_history, 'play_jamtr', :jam_track_rights, :recorded_tracks, :friendships, :invited_users]
|
||||
|
||||
TOTAL_LABELS = {
|
||||
registered_users: 'Registered Users',
|
||||
first_downloaded_client_at: 'Downloaded app',
|
||||
first_certified_gear_at: 'Certified Gear',
|
||||
music_sessions_user_history: 'Played Online',
|
||||
play_jamtr: 'Played JamTrack',
|
||||
jam_track_played: 'Played JamTrack',
|
||||
jam_track_rights: 'Purchased JamTrack',
|
||||
recorded_tracks: 'Made Recording',
|
||||
friendships: 'Connected w/Friend',
|
||||
friendships: 'Connected w/ Friend',
|
||||
invited_users: 'Invite Others',
|
||||
}
|
||||
|
||||
# KEY_SET_TOTAL = [:registered_users, :first_downloaded_client_at, :first_certified_gear_at, :music_session_histories, 'play_jamtr', :jam_track_rights, :recordings, :friendships, :invited_users]
|
||||
KEY_SET_MONTH = [:registered_users, :first_downloaded_client_at, :first_certified_gear_at, :visit_1, :visit_2_5, :visit_6_, :play_online_1, :play_online_2_5, :play_online_6_, :play_jamtr_1, :play_jamtr_2_5, :play_jamtr_6_, :jam_track_rights_redeemed, :jam_track_rights, :recorded_tracks, :friendships, :invited_users]
|
||||
|
||||
MONTHLY_LABELS = {
|
||||
registered_users: 'Registered Users',
|
||||
first_downloaded_client_at: 'Downloaded app',
|
||||
|
|
@ -28,10 +23,13 @@ class Cohort < ActiveRecord::Base
|
|||
music_sessions_user_history_1: 'Played Online 1',
|
||||
music_sessions_user_history_2_5: 'Played Online 2-5',
|
||||
music_sessions_user_history_6_: 'Played Online 6+',
|
||||
play_jamtr: 'Played JamTrack',
|
||||
jam_track_played_1: 'Played Online 1',
|
||||
jam_track_played_2_5: 'Played Online 2-5',
|
||||
jam_track_played_6_: 'Played Online 6+',
|
||||
jam_track_rights_redeemed: 'Redeemed JamTrack',
|
||||
jam_track_rights: 'Purchased JamTrack',
|
||||
recorded_tracks: 'Made Recording',
|
||||
friendships: 'Connected w/Friend',
|
||||
friendships: 'Connected w/ Friend',
|
||||
invited_users: 'Invite Others',
|
||||
}
|
||||
|
||||
|
|
@ -171,13 +169,15 @@ SQL
|
|||
count = _subquery(assoc_key = :recorded_tracks, num_user)
|
||||
_put_data_set(assoc_key, count, num_user)
|
||||
|
||||
count = _subquery(assoc_key = :jam_track_rights, num_user)
|
||||
count = _subquery(assoc_key = :jam_track_rights, num_user) do |subsql|
|
||||
subsql += " AND tt.redeemed = 'f' "
|
||||
end
|
||||
_put_data_set(assoc_key, count, num_user)
|
||||
|
||||
count = _subquery(assoc_key = :jam_track_rights, num_user) do |subsql|
|
||||
subsql += " AND tt.redeemed = 't' "
|
||||
end
|
||||
_put_data_set(assoc_key, count, num_user)
|
||||
_put_data_set(:jam_track_rights_redeemed, count, num_user)
|
||||
|
||||
count = _subquery(assoc_key = :friendships, num_user)
|
||||
_put_data_set(assoc_key, count, num_user)
|
||||
|
|
@ -194,6 +194,18 @@ SQL
|
|||
count = self.class.cohort_users(self).where("users.id IN (#{sql})").count
|
||||
_put_data_set(:music_sessions_user_history_6_, count, num_user)
|
||||
|
||||
# sql = _played_jamtrack_subquery(' = 1 ')
|
||||
# count = self.class.cohort_users(self).where("users.id IN (#{sql})").count
|
||||
# _put_data_set(:jam_track_played_1, count, num_user)
|
||||
|
||||
# sql = _played_jamtrack_subquery(2..5)
|
||||
# count = self.class.cohort_users(self).where("users.id IN (#{sql})").count
|
||||
# _put_data_set(:jam_track_played_2_5, count, num_user)
|
||||
|
||||
# sql = _played_jamtrack_subquery(' >= 6')
|
||||
# count = self.class.cohort_users(self).where("users.id IN (#{sql})").count
|
||||
# _put_data_set(:jam_track_played_6_, count, num_user)
|
||||
|
||||
self.save!
|
||||
end
|
||||
|
||||
|
|
@ -235,6 +247,9 @@ SQL
|
|||
count = _subquery(assoc_key = :jam_track_rights, num_user)
|
||||
_put_data_set(assoc_key, count, num_user)
|
||||
|
||||
# count = _subquery(assoc_key = :jam_track_played, num_user)
|
||||
# _put_data_set(assoc_key, count, num_user)
|
||||
|
||||
sql = _played_online_subquery(' >= 1')
|
||||
count = self.class.cohort_users(self).where("users.id IN (#{sql})").count
|
||||
_put_data_set(:music_sessions_user_history, count, num_user)
|
||||
|
|
@ -259,7 +274,7 @@ SQL
|
|||
end
|
||||
|
||||
def group_start_str
|
||||
self.group_start.strftime('%Y-%m-%d')
|
||||
self.group_start.strftime('%Y-%m')
|
||||
end
|
||||
|
||||
def group_end_str
|
||||
|
|
@ -269,7 +284,7 @@ SQL
|
|||
def data_val(col, percent=false)
|
||||
if percent
|
||||
val = self.data_set["#{col}%"]
|
||||
val ? '%0.f' % val : ''
|
||||
val ? "#{'%0.f' % val}%" : ''
|
||||
else
|
||||
self.data_set[col.to_s]
|
||||
end
|
||||
|
|
|
|||
Loading…
Reference in New Issue