diff --git a/admin/app/admin/charge.rb b/admin/app/admin/charge.rb
new file mode 100644
index 000000000..c6d3e8722
--- /dev/null
+++ b/admin/app/admin/charge.rb
@@ -0,0 +1,63 @@
+ActiveAdmin.register JamRuby::Charge, :as => 'Charges' do
+
+ menu :label => 'Charge', :parent => 'JamClass'
+
+ config.sort_order = 'created_at desc'
+ config.batch_actions = false
+ config.per_page = 100
+ config.paginate = true
+ config.filters = true
+
+ controller do
+ active_admin_config.includes.push :user
+ end
+
+ filter :user_email_cont, label: 'Name', as: :string
+
+ index do
+ column "Actions" do |charge|
+ links = ''.html_safe
+ links << link_to("View", resource_path(charge), :class => "member_link view_link")
+ links << link_to("Edit", edit_resource_path(charge), :class => "member_link edit_link")
+ links
+ end
+ column "User" do |charge|
+ link_to charge.user.name, charge.user.admin_url
+ end
+ column :billed
+ column :billing_error_reason
+ column :billing_attempts
+ column :amount_in_cents
+ column :fee_in_cents
+ column :created_at
+ column :updated_at
+ column "Stripe" do |charge|
+ link_to "Link", "https://dashboard.stripe.com/payments/#{charge.stripe_charge_id}" if charge.stripe_charge_id
+ end
+ end
+
+ show do
+ attributes_table do
+ row "User" do |charge|
+ link_to charge.user.name, charge.user.admin_url
+ end
+ row :amount_in_cents
+ row :fee_in_cents
+ row :billed
+ row :billed_at
+ row :post_processed
+ row :post_processed_at
+ row :billing_error_reason
+ row :billing_error_detail
+ row :billing_should_retry
+ row :billing_attempts
+ row :stripe_charge_id
+ row :created_at
+ row :updated_at
+ row "Stripe" do |charge|
+ link_to "Link", "https://dashboard.stripe.com/payments/#{charge.stripe_charge_id}" if charge.stripe_charge_id
+ end
+ end
+ end
+
+end
\ No newline at end of file
diff --git a/admin/app/admin/lesson_session.rb b/admin/app/admin/lesson_session.rb
index 71d09ef1b..0bf6f0026 100644
--- a/admin/app/admin/lesson_session.rb
+++ b/admin/app/admin/lesson_session.rb
@@ -22,7 +22,7 @@ ActiveAdmin.register JamRuby::LessonSession, :as => 'LessonSessions' do
filter :student_full_name_or_user_email_cont, label: 'Student Name Or Email', as: :string
filter :by_search_teacher_in, label: 'Teacher Name Or Email', as: :string
- filter :by_lesson_package_type_in, label: 'Card Type', as: :select, collection: -> { LessonPackageType.all.map {|t| [t.admin_name, t.id]}}
+ filter :by_lesson_package_type_in, label: 'Card Type', as: :select, collection: -> { LessonPackageType.all.map { |t| [t.admin_name, t.id] } }
controller do
active_admin_config.includes.push :teacher, :music_session
@@ -75,7 +75,7 @@ ActiveAdmin.register JamRuby::LessonSession, :as => 'LessonSessions' do
column "Teacher" do |lesson_session|
teacher = lesson_session.teacher
span do
- # link_to "#{teacher.name} (#{teacher.email})", "#{Rails.application.config.external_root_url}/client#/profile/teacher/#{teacher.id}"
+ # link_to "#{teacher.name} (#{teacher.email})", "#{Rails.application.config.external_root_url}/client#/profile/teacher/#{teacher.id}"
link_to teacher.admin_name, teacher.admin_url
end
end
@@ -119,14 +119,14 @@ ActiveAdmin.register JamRuby::LessonSession, :as => 'LessonSessions' do
row "Teacher" do |lesson_session|
teacher = lesson_session.teacher
span do
- # link_to teacher.admin_name, "#{Rails.application.config.external_root_url}/client#/profile/teacher/#{teacher.id}"
+ # link_to teacher.admin_name, "#{Rails.application.config.external_root_url}/client#/profile/teacher/#{teacher.id}"
link_to teacher.admin_name, teacher.admin_url
end
end
row "Student" do |lesson_session|
student = lesson_session.student
span do
- # link_to student.admin_name, "#{Rails.application.config.external_root_url}/client#/profile/#{student.id}"
+ # link_to student.admin_name, "#{Rails.application.config.external_root_url}/client#/profile/#{student.id}"
link_to student.admin_name, student.admin_url
end
end
@@ -149,6 +149,101 @@ ActiveAdmin.register JamRuby::LessonSession, :as => 'LessonSessions' do
end
end
end
+ row "Distribution" do |lesson_session|
+ distribution = lesson_session.teacher_distribution
+
+ if distribution
+ payment = distribution.teacher_payment
+
+ if payment
+ charge = payment.teacher_payment_charge
+ end
+ end
+
+ div do
+ if distribution
+ table_for distribution do
+ column :amount_in_cents
+ column :distributed
+ column :ready
+ column :teacher_fee_in_cents
+ column :reduced_roll_forward_amount_in_cents
+ column :created_at
+ column :updated_at
+ column do
+ link_to "Link", distribution.admin_url
+ end
+ end
+ else
+ ''
+ end
+ end
+
+ end
+ row "Teacher Payment" do |lesson_session|
+ distribution = lesson_session.teacher_distribution
+
+ if distribution
+ payment = distribution.teacher_payment
+ end
+
+ div do
+ if payment
+ table_for payment do
+ column :amount_in_cents
+ column :fee_in_cents
+ column :created_at
+ column :updated_at
+ column do
+ link_to "Link", payment.admin_url
+ end
+ end
+ else
+ ''
+ end
+ end
+ end
+ row "Stripe Charge" do |lesson_session|
+ distribution = lesson_session.teacher_distribution
+
+ if distribution
+ payment = distribution.teacher_payment
+ if payment
+ charge = payment.teacher_payment_charge
+ end
+ end
+
+ div do
+ if charge
+ table_for charge do
+ column :amount_in_cents
+ column :fee_in_cents
+ column :billed
+ column :billed_at
+ column :post_processed
+ column :post_processed_at
+ column :billing_error_reason
+ column :billing_error_detail
+ column :billing_should_retry
+ column :billing_attempts
+ column :stripe_charge_id
+ column :created_at
+ column :updated_at
+ column do
+ link_to "Stripe", "https://dashboard.stripe.com/payments/#{charge.stripe_charge_id}" if charge.stripe_charge_id
+ end
+ column do
+ link_to "Link", charge.admin_url
+ end
+ end
+ else
+ ''
+ end
+ end
+ end
+
+
+
row "Admin Marked" do |lesson_session|
span do
lesson_session.admin_marked
@@ -177,11 +272,17 @@ ActiveAdmin.register JamRuby::LessonSession, :as => 'LessonSessions' do
end
row "Chat Messages" do |lesson_session|
div do
- table_for ChatMessage.unscoped.where(lesson_session:lesson_session).order(:created_at) do
+ table_for ChatMessage.unscoped.where(lesson_session: lesson_session).order(:created_at) do
column :created_at
- column do |chat_msg| chat_msg.purpose ? chat_msg.purpose : 'Chat Msg' end
- column 'Sender' do |chat_msg| link_to(chat_msg.user.name, chat_msg.user.admin_url) end
- column :target_user do |chat_msg| chat_msg.target_user ? link_to(chat_msg.target_user.name, chat_msg.target_user.admin_url) : '' end
+ column do |chat_msg|
+ chat_msg.purpose ? chat_msg.purpose : 'Chat Msg'
+ end
+ column 'Sender' do |chat_msg|
+ link_to(chat_msg.user.name, chat_msg.user.admin_url)
+ end
+ column :target_user do |chat_msg|
+ chat_msg.target_user ? link_to(chat_msg.target_user.name, chat_msg.target_user.admin_url) : ''
+ end
column :message
column :id
end
diff --git a/admin/app/admin/teacher_distributions.rb b/admin/app/admin/teacher_distributions.rb
new file mode 100644
index 000000000..1fee11358
--- /dev/null
+++ b/admin/app/admin/teacher_distributions.rb
@@ -0,0 +1,51 @@
+ActiveAdmin.register JamRuby::TeacherDistribution, :as => 'TeacherDistributions' do
+
+ menu :label => 'Teacher Distributions', :parent => 'JamClass'
+
+ config.sort_order = 'created_at desc'
+ config.batch_actions = false
+ config.per_page = 100
+ config.paginate = true
+ config.filters = true
+
+ controller do
+ active_admin_config.includes.push :teacher
+ end
+
+ filter :teacher_full_name_or_teacher_email_cont, label: 'Name', as: :string
+
+ index do
+ column "Teacher" do |distribution|
+ link_to distribution.teacher.name, distribution.teacher.admin_url
+ end
+ column :amount_in_cents
+ column :distributed
+ column :ready
+ column :teacher_fee_in_cents
+ column :reduced_roll_forward_amount_in_cents
+ column :created_at
+ column :updated_at
+ column do
+ link_to "Link", distribution.admin_url
+ end
+ end
+
+ show do
+ attributes_table do
+ row "Teacher" do |distribution|
+ link_to distribution.teacher.name, distribution.teacher.admin_url
+ end
+ row :amount_in_cents
+ row :distributed
+ row :ready
+ row :teacher_fee_in_cents
+ row :reduced_roll_forward_amount_in_cents
+ row :created_at
+ row :updated_at
+ row do
+ link_to "Link", distribution.admin_url
+ end
+ end
+ end
+
+end
\ No newline at end of file
diff --git a/admin/app/admin/teacher_payments.rb b/admin/app/admin/teacher_payments.rb
new file mode 100644
index 000000000..f7240ead9
--- /dev/null
+++ b/admin/app/admin/teacher_payments.rb
@@ -0,0 +1,45 @@
+ActiveAdmin.register JamRuby::TeacherPayment, :as => 'TeacherPayments' do
+
+ menu :label => 'Teacher Payments', :parent => 'JamClass'
+
+ config.sort_order = 'created_at desc'
+ config.batch_actions = false
+ config.per_page = 100
+ config.paginate = true
+ config.filters = true
+
+ controller do
+ active_admin_config.includes.push :teacher
+ end
+
+ filter :teacher_full_name_or_teacher_email_cont, label: 'Name', as: :string
+
+ index do
+ column "Actions" do |payment|
+ links = ''.html_safe
+ links << link_to("View", resource_path(payment), :class => "member_link view_link")
+ links << link_to("Edit", edit_resource_path(payment), :class => "member_link edit_link")
+ links
+ end
+ column "Teacher" do |payment|
+ link_to payment.teacher.name, payment.teacher.admin_url
+ end
+ column :amount_in_cents
+ column :fee_in_cents
+ column :created_at
+ column :updated_at
+ end
+
+ show do
+ attributes_table do
+ row "Teacher" do |payment|
+ link_to payment.teacher.name, payment.teacher.admin_url
+ end
+ row :amount_in_cents
+ row :fee_in_cents
+ row :created_at
+ row :updated_at
+ end
+ end
+
+end
\ No newline at end of file
diff --git a/admin/config/initializers/jam_ruby_charges.rb b/admin/config/initializers/jam_ruby_charges.rb
new file mode 100644
index 000000000..410d97c31
--- /dev/null
+++ b/admin/config/initializers/jam_ruby_charges.rb
@@ -0,0 +1,7 @@
+class JamRuby::Charge
+ ransacker :user_full_name, formatter: proc { |v| v.mb_chars.downcase.to_s } do |parent|
+ Arel::Nodes::NamedFunction.new('LOWER',
+ [Arel::Nodes::NamedFunction.new('concat_ws',
+ [Arel::Nodes::SqlLiteral.new("' '"), 'users.first_name', 'users.last_name'])])
+ end
+end
diff --git a/admin/config/initializers/jam_ruby_teacher_distribution.rb b/admin/config/initializers/jam_ruby_teacher_distribution.rb
new file mode 100644
index 000000000..42f80511d
--- /dev/null
+++ b/admin/config/initializers/jam_ruby_teacher_distribution.rb
@@ -0,0 +1,7 @@
+class JamRuby::TeacherDistribution
+ ransacker :teacher_full_name, formatter: proc { |v| v.mb_chars.downcase.to_s } do |parent|
+ Arel::Nodes::NamedFunction.new('LOWER',
+ [Arel::Nodes::NamedFunction.new('concat_ws',
+ [Arel::Nodes::SqlLiteral.new("' '"), 'teachers.first_name', 'teachers.last_name'])])
+ end
+end
diff --git a/admin/config/initializers/jam_ruby_teacher_payments.rb b/admin/config/initializers/jam_ruby_teacher_payments.rb
new file mode 100644
index 000000000..b15345a96
--- /dev/null
+++ b/admin/config/initializers/jam_ruby_teacher_payments.rb
@@ -0,0 +1,7 @@
+class JamRuby::TeacherPayment
+ ransacker :teacher_full_name, formatter: proc { |v| v.mb_chars.downcase.to_s } do |parent|
+ Arel::Nodes::NamedFunction.new('LOWER',
+ [Arel::Nodes::NamedFunction.new('concat_ws',
+ [Arel::Nodes::SqlLiteral.new("' '"), 'teachers.first_name', 'teachers.last_name'])])
+ end
+end
diff --git a/ruby/lib/jam_ruby/models/charge.rb b/ruby/lib/jam_ruby/models/charge.rb
index 7854d712c..4064a3b3a 100644
--- a/ruby/lib/jam_ruby/models/charge.rb
+++ b/ruby/lib/jam_ruby/models/charge.rb
@@ -33,6 +33,10 @@ module JamRuby
self.save(validate: false)
end
+ def admin_url
+ APP_CONFIG.admin_root_url + "/admin/charges/" + id
+ end
+
def charge(force = false)
@stripe_charge = nil
diff --git a/ruby/lib/jam_ruby/models/teacher_distribution.rb b/ruby/lib/jam_ruby/models/teacher_distribution.rb
index 4c99bca3e..0243f2c2e 100644
--- a/ruby/lib/jam_ruby/models/teacher_distribution.rb
+++ b/ruby/lib/jam_ruby/models/teacher_distribution.rb
@@ -197,7 +197,10 @@ module JamRuby
rescue
"temp fix"
end
+ end
+ def admin_url
+ APP_CONFIG.admin_root_url + "/admin/teacher_distributions/" + id
end
end
end
\ No newline at end of file
diff --git a/ruby/lib/jam_ruby/models/teacher_payment.rb b/ruby/lib/jam_ruby/models/teacher_payment.rb
index 66ae5222d..1e0fab3c4 100644
--- a/ruby/lib/jam_ruby/models/teacher_payment.rb
+++ b/ruby/lib/jam_ruby/models/teacher_payment.rb
@@ -71,6 +71,10 @@ module JamRuby
amount_in_cents - fee_in_cents
end
+ def admin_url
+ APP_CONFIG.admin_root_url + "/admin/teacher_payments/" + id
+ end
+
# will find, for a given teacher, an outstading unsuccessful payment or make a new one.
# it will then associate a charge with it, and then execute the charge.
def self.charge(teacher)
diff --git a/web/app/assets/javascripts/react-components/AccountOnboarderScreen.js.jsx.coffee b/web/app/assets/javascripts/react-components/AccountOnboarderScreen.js.jsx.coffee
index ca1cc2083..dd5a5c745 100644
--- a/web/app/assets/javascripts/react-components/AccountOnboarderScreen.js.jsx.coffee
+++ b/web/app/assets/javascripts/react-components/AccountOnboarderScreen.js.jsx.coffee
@@ -38,7 +38,6 @@ profileUtils = context.JK.ProfileUtils
$this = $(this)
id = $this.attr('data-id')
day = $this.attr('data-date')
- console.log("id-day: #{id}-#{day}")
$this.datepicker({
dateFormat: "D M d yy",
@@ -79,6 +78,7 @@ profileUtils = context.JK.ProfileUtils
})
)
+
afterShow: (e) ->
@screenVisible = true
logger.debug("AccountOnboardingScreen: afterShow")
@@ -115,7 +115,6 @@ profileUtils = context.JK.ProfileUtils
for match in this.state.onboardings
if match.id == onboarding.id
$.extend(match, onboarding)
- console.log("UPDATED ONBOARDING", onboarding)
break
this.setState({onboardings: this.state.onboardings})
@@ -259,7 +258,6 @@ profileUtils = context.JK.ProfileUtils
`)
else if @state.onboardings.length > 0
for onboarding in @state.onboardings
- console.log("onboarding", onboarding)
hours = []
for hour in ['01', '02', '03', '04', '05', '06', '07', '08', '09', '10', '11', '12']
@@ -267,7 +265,7 @@ profileUtils = context.JK.ProfileUtils
key = '00'
else
key = hour
- hours.push(``)
+ hours.push(``)
minutes = []
for minute in ['00', '15', '30', '45']