* VRFS-2972 - adding test purchase feature to jam-admin for buying all JamTracks (admin users only)

This commit is contained in:
Seth Call 2015-03-20 17:26:56 -05:00
parent 49368e2e66
commit 36b4179492
21 changed files with 79 additions and 16 deletions

View File

@ -1,6 +1,6 @@
ActiveAdmin.register Cohort, :as => 'Cohorts' do ActiveAdmin.register Cohort, :as => 'Cohorts' do
menu :label => 'Cohorts All-time', :parent => 'Analytics' menu :label => 'Cohorts All-time', :parent => 'Reports'
config.sort_order = 'group_start_desc' config.sort_order = 'group_start_desc'
config.batch_actions = false config.batch_actions = false

View File

@ -1,6 +1,6 @@
ActiveAdmin.register Cohort, :as => 'Cohorts Monthly' do ActiveAdmin.register Cohort, :as => 'Cohorts Monthly' do
menu :label => 'Cohorts Monthly', :parent => 'Analytics' menu :label => 'Cohorts Monthly', :parent => 'Reports'
config.sort_order = 'group_start_desc' config.sort_order = 'group_start_desc'
config.batch_actions = false config.batch_actions = false

View File

@ -3,7 +3,7 @@ ActiveAdmin.register JamRuby::CrashDump, :as => 'Crash Dump' do
filter :timestamp filter :timestamp
filter :user_email, :as => :string filter :user_email, :as => :string
filter :client_id filter :client_id
menu :parent => 'Debug' menu :parent => 'Misc'
index do index do
column "Timestamp" do |post| column "Timestamp" do |post|

View File

@ -1,6 +1,6 @@
ActiveAdmin.register JamRuby::EmailBatch, :as => 'Batch Emails' do ActiveAdmin.register JamRuby::EmailBatch, :as => 'Batch Emails' do
menu :label => 'Batch Emails', :parent => 'Email' menu :label => 'Batch Emails', :parent => 'Misc'
config.sort_order = 'updated_at DESC' config.sort_order = 'updated_at DESC'
config.batch_actions = false config.batch_actions = false

View File

@ -1,6 +1,6 @@
ActiveAdmin.register JamRuby::EmailBatchScheduledSessions, :as => 'Daily Sessions' do ActiveAdmin.register JamRuby::EmailBatchScheduledSessions, :as => 'Daily Sessions' do
menu :label => 'Daily Sessions', :parent => 'Email' menu :label => 'Daily Sessions', :parent => 'Misc'
config.sort_order = 'updated_at DESC' config.sort_order = 'updated_at DESC'
config.filters = false config.filters = false

View File

@ -1,3 +1,3 @@
ActiveAdmin.register JamRuby::Event, :as => 'Event' do ActiveAdmin.register JamRuby::Event, :as => 'Event' do
menu :parent => 'Events' menu :parent => 'Misc'
end end

View File

@ -1,3 +1,3 @@
ActiveAdmin.register JamRuby::EventSession, :as => 'Event Session' do ActiveAdmin.register JamRuby::EventSession, :as => 'Event Session' do
menu :parent => 'Events' menu :parent => 'Misc'
end end

View File

@ -0,0 +1,54 @@
ActiveAdmin.register_page "Fake Purchaser" do
menu :parent => 'Misc'
page_action :bulk_jamtrack_purchase, :method => :post do
puts params.inspect
user_field = params[:jam_ruby_jam_track_right][:user]
if user_field.blank?
redirect_to admin_fake_purchaser_path, :notice => "user not specified"
return
end
bits = user_field.strip.split(' ')
user = User.find_by_email(bits[0])
if user.nil?
redirect_to admin_fake_purchaser_path, :notice =>"no user with email #{bits[0]}"
return
end
if !user.admin
redirect_to admin_fake_purchaser_path, :notice =>"user is not admin"
return
end
count = 0
JamTrack.all.each do |jam_track|
unless jam_track.right_for_user(user)
jam_track_right=JamTrackRight.new
jam_track_right.user = user
jam_track_right.jam_track = jam_track
jam_track_right.is_test_purchase = true
jam_track_right.save!
count = count + 1
end
end
redirect_to admin_fake_purchaser_path, :notice => "Bought #{count} jamtracks for #{user.email}"
end
content do
semantic_form_for JamTrackRight.new, :url => admin_fake_purchaser_bulk_jamtrack_purchase_path, :builder => ActiveAdmin::FormBuilder do |f|
f.inputs "Admin User to Fake JamTrack Purchases" do
f.input :user, :as => :autocomplete, :url => autocomplete_user_email_admin_users_path, :input_html => { :id_element => "#jam_trak_right_user_id" }, hint: 'All JamTracks in the system will be \'bought\' for this user. No Recurly interaction occurs with this feature.'
end
f.actions
end
end
end

View File

@ -2,6 +2,6 @@ ActiveAdmin.register JamRuby::IspScoreBatch, :as => 'Isp Score Data' do
config.sort_order = 'created_at_desc' config.sort_order = 'created_at_desc'
menu :parent => 'Debug' menu :parent => 'Misc'
end end

View File

@ -1,5 +1,5 @@
ActiveAdmin.register JamRuby::ArtifactUpdate, :as => 'Artifacts' do ActiveAdmin.register JamRuby::ArtifactUpdate, :as => 'Artifacts' do
menu :label => 'Artifacts' menu :label => 'Artifacts', :parent => 'Operations'
config.sort_order = 'product,environment' config.sort_order = 'product,environment'
#config.batch_actions = false #config.batch_actions = false

View File

@ -80,6 +80,7 @@ ActiveAdmin.register JamRuby::User, :as => 'Users' do
User.select("email, first_name, last_name, id").where(["email ILIKE ? OR first_name ILIKE ? OR last_name ILIKE ?", "%#{parameters[:term]}%", "%#{parameters[:term]}%", "%#{parameters[:term]}%"]) User.select("email, first_name, last_name, id").where(["email ILIKE ? OR first_name ILIKE ? OR last_name ILIKE ?", "%#{parameters[:term]}%", "%#{parameters[:term]}%", "%#{parameters[:term]}%"])
end end
def create def create
@jam_ruby_user = JamRuby::User.new(params[:jam_ruby_user]) @jam_ruby_user = JamRuby::User.new(params[:jam_ruby_user])
@jam_ruby_user.administratively_created = true @jam_ruby_user.administratively_created = true

View File

@ -1,6 +1,6 @@
ActiveAdmin.register JamRuby::PromoBuzz, :as => 'Buzz' do ActiveAdmin.register JamRuby::PromoBuzz, :as => 'Buzz' do
menu :label => 'Buzz', :parent => 'Home Page' menu :label => 'Promo Buzz', :parent => 'Misc'
config.sort_order = 'position ASC aasm_state DESC updated_at DESC' config.sort_order = 'position ASC aasm_state DESC updated_at DESC'
config.batch_actions = false config.batch_actions = false

View File

@ -1,6 +1,6 @@
ActiveAdmin.register JamRuby::PromoLatest, :as => 'Latest' do ActiveAdmin.register JamRuby::PromoLatest, :as => 'Latest' do
menu :label => 'Latest', :parent => 'Home Page' menu :label => 'Promo Latest', :parent => 'Misc'
config.batch_actions = false config.batch_actions = false
config.sort_order = '' config.sort_order = ''

View File

@ -1,5 +1,6 @@
ActiveAdmin.register_page "Download CSV" do =begin
menu :parent => 'Score' ActiveAdmin.register_page "Download Score CSV" do
menu :parent => 'Misc'
page_action :create_csv, :method => :post do page_action :create_csv, :method => :post do
@ -96,3 +97,4 @@ ActiveAdmin.register_page "Download CSV" do
end end
end end
=end

View File

@ -1,3 +1,4 @@
=begin
ActiveAdmin.register JamRuby::ScoreHistory, :as => 'Score History' do ActiveAdmin.register JamRuby::ScoreHistory, :as => 'Score History' do
menu :parent => 'Score' menu :parent => 'Score'
@ -80,3 +81,4 @@ ActiveAdmin.register JamRuby::ScoreHistory, :as => 'Score History' do
column "To Client", :to_client_id column "To Client", :to_client_id
end end
end end
=end

View File

@ -1,5 +1,5 @@
ActiveAdmin.register_page "Current Scoring Load" do ActiveAdmin.register_page "Current Scoring Load" do
menu :parent => 'Score' menu :parent => 'Misc'
content :title => "Current Scoring Load" do content :title => "Current Scoring Load" do
table_for GetWork.summary do table_for GetWork.summary do

View File

@ -40,6 +40,7 @@ FactoryGirl.define do
scoring_timeout Time.now scoring_timeout Time.now
sequence(:channel_id) { |n| "Channel#{n}"} sequence(:channel_id) { |n| "Channel#{n}"}
association :user, factory: :user association :user, factory: :user
metronome_open false
end end
factory :artifact_update, :class => JamRuby::ArtifactUpdate do factory :artifact_update, :class => JamRuby::ArtifactUpdate do

View File

@ -264,3 +264,4 @@ jam_track_redeemed.sql
connection_metronome.sql connection_metronome.sql
preview_jam_track_tracks.sql preview_jam_track_tracks.sql
cohorts.sql cohorts.sql
jam_track_right_admin_purchase.sql

View File

@ -0,0 +1 @@
ALTER TABLE jam_track_rights ADD COLUMN is_test_purchase BOOLEAN DEFAULT FALSE NOT NULL;

View File

@ -11,6 +11,8 @@ module JamRuby
validates :user, presence:true validates :user, presence:true
validates :jam_track, presence:true validates :jam_track, presence:true
validates :is_test_purchase, inclusion: {in: [true, false]}
validate :verify_download_count validate :verify_download_count
after_save :after_save after_save :after_save

View File

@ -56,7 +56,6 @@ class ApiRecurlyController < ApiController
def place_order def place_order
error=nil error=nil
puts "PLACING ORDER #{params.inspect}"
response = {jam_tracks:[]} response = {jam_tracks:[]}
# 1st confirm that all specified JamTracks exist # 1st confirm that all specified JamTracks exist