* student page

This commit is contained in:
Seth Call 2016-03-21 16:37:13 -05:00
parent 5c14d283ab
commit 2e3f47e9b2
6 changed files with 257 additions and 6 deletions

View File

@ -14,6 +14,7 @@ ActiveAdmin.register JamRuby::JamTrack, :as => 'JamTracks' do
scope("Onboarding TODO") { |scope| scope.where('onboarding_exceptions is not null') }
scope("Tency Only") { |scope| scope.joins('INNER JOIN jam_track_licensors as licensors ON jam_tracks.licensor_id = licensors.id').where("licensors.name = 'Tency Music'") }
scope("TimTracks Only") { |scope| scope.joins('INNER JOIN jam_track_licensors as licensors ON jam_tracks.licensor_id = licensors.id').where("licensors.name = 'Tim Waurick'") }
scope("Drumma Boy Only") { |scope| scope.joins('INNER JOIN jam_track_licensors as licensors ON jam_tracks.licensor_id = licensors.id').where("licensors.name = 'Drumma Boy'") }
# scope("Onboarding TODO w/ Tency Only") { |scope| scope.joins('INNER JOIN jam_track_licensors as licensors ON jam_tracks.licensor_id = licensors.id').where("licensors.name = 'Tency Music'").where('onboarding_exceptions is not null') }
form :partial => 'form'

245
admin/app/admin/students.rb Normal file
View File

@ -0,0 +1,245 @@
=begin
ActiveAdmin.register JamRuby::User, :as => 'Students' do
menu :label => 'Students', :parent => 'JamClass'
config.sort_order = 'created_at desc'
config.batch_actions = false
config.per_page = 100
config.paginate = true
def booked_anything(scope)
scope.joins(lesson_booking)
end
scope("Default", default: true) { |scope| booked_anything(scope) }
index do
column "Name" do |teacher|
link_to teacher.user.name, "#{Rails.application.config.external_root_url}/client#/profile/teacher/#{teacher.user.id}"
end
column "Email" do |teacher|
teacher.user.email
end
column "Location" do |teacher|
teacher.user.location(country = true)
end
column "Profile %" do |teacher|
div do
span do
"#{teacher.pct_complete[:pct]}%"
end
br
span do
link_to "Detail", admin_teacher_path(teacher.id)
end
end
end
column "Background Check" do |teacher|
div do
if teacher.background_check_at
span do
teacher.background_check_at.to_date
end
span do
br
end
span do
link_to(mark_background_check_admin_teacher_path(teacher.id), {confirm: "Mark as background checked?"}) do
"mark as checked"
end
end
else
span do
'NOT DONE'
end
span do
br
end
span do
link_to("mark as checked", mark_background_check_admin_teacher_path(teacher.id), {confirm: "Mark as background checked?"})
end
end
end
end
column "Session Ready" do |teacher|
div do
if teacher.ready_for_session
span do
'YES'
end
else
span do
'NO'
end
span do
br
end
span do
link_to("mark as checked", mark_session_ready_admin_teacher_path(teacher.id), {confirm: "Mark as ready for session?"})
end
end
end
end
column "Top Teacher" do |teacher|
div do
if teacher.top_rated
span do
'YES'
end
span do
br
end
span do
link_to("mark not top", mark_not_top_admin_teacher_path(teacher.id), {confirm: "Mark as not top rated?"})
end
else
span do
'NO'
end
span do
br
end
span do
link_to("mark as top", mark_top_admin_teacher_path(teacher.id), {confirm: "Mark as top rated?"})
end
end
end
end
end
show do
attributes_table do
row "Name" do |teacher|
link_to teacher.user.name, "#{Rails.application.config.external_root_url}/client#/profile/teacher/#{teacher.user.id}"
end
row "Email" do |teacher|
teacher.user.email
end
row "Location" do |teacher|
teacher.user.location(country = true)
end
row "Profile %" do |teacher|
div do
span do
"#{teacher.pct_complete[:pct]}%"
end
br
br
div do
h5 do "Completed Sections" end
teacher.pct_complete.each do |k, v|
if k != :pct && v
div do
k
end
end
end
br
br
h5 do "Uncompleted Sections" end
teacher.pct_complete.each do |k, v|
if k != :pct && !v
div do
k
end
end
end
end
end
end
row "Background Check" do |teacher|
div do
if teacher.background_check_at
span do
teacher.background_check_at.to_date
end
span do
br
end
span do
link_to(mark_background_check_admin_teacher_path(teacher.id), {confirm: "Mark as background checked?"}) do
"mark as checked"
end
end
else
span do
'NOT DONE'
end
span do
br
end
span do
link_to("mark as checked", mark_background_check_admin_teacher_path(teacher.id), {confirm: "Mark as background checked?"})
end
end
end
end
row "Session Ready" do |teacher|
div do
if teacher.ready_for_session
span do
'YES'
end
else
span do
'NO'
end
span do
br
end
span do
link_to("mark as checked", mark_session_ready_admin_teacher_path(teacher.id), {confirm: "Mark as ready for session?"})
end
end
end
end
row "Top Teacher" do |teacher|
div do
if teacher.top_rated
span do
'YES'
end
span do
br
end
span do
link_to("mark not top", mark_not_top_admin_teacher_path(teacher.id), {confirm: "Mark as not top rated?"})
end
else
span do
'NO'
end
span do
br
end
span do
link_to("mark as top", mark_top_admin_teacher_path(teacher.id), {confirm: "Mark as top rated?"})
end
end
end
end
end
end
member_action :mark_session_ready, :method => :get do
resource.mark_session_ready
redirect_to :back
end
end
=end

View File

@ -63,7 +63,7 @@ ActiveAdmin.register JamRuby::Teacher, :as => 'Teachers' do
column "Session Ready" do |teacher|
div do
if teacher.ready_for_session
if teacher.ready_for_session_at
span do
'YES'
end
@ -183,7 +183,7 @@ ActiveAdmin.register JamRuby::Teacher, :as => 'Teachers' do
row "Session Ready" do |teacher|
div do
if teacher.ready_for_session
if teacher.ready_for_session_at
span do
'YES'
end

View File

@ -1,3 +1,4 @@
ALTER TABLE teachers ADD COLUMN background_check_at TIMESTAMP WITHOUT TIME ZONE;
ALTER TABLE teachers ADD COLUMN ready_for_session BOOLEAN NOT NULL DEFAULT FALSE;
ALTER TABLE teachers ADD COLUMN ready_for_session_at TIMESTAMP WITHOUT TIME ZONE;
ALTER TABLE users ADD COLUMN ready_for_session_at TIMESTAMP WITHOUT TIME ZONE;
ALTER TABLE teachers ADD COLUMN top_rated BOOLEAN NOT NULL DEFAULT FALSE;

View File

@ -23,7 +23,6 @@ module JamRuby
validates :years_playing, :presence => true, :if => :validate_introduction
validates :teaches_test_drive, inclusion: {in: [true, false]}, :if => :validate_pricing
validates :top_rated, inclusion: {in: [true, false]}
validates :ready_for_session, inclusion: {in: [true, false]}
validates :test_drives_per_week, numericality: {only_integer: true, minimum: 2, maximum: 10}, :if => :validate_pricing
validates :instruments, :length => {minimum: 1, message: "At least one instrument or subject is required"}, if: :validate_basics, unless: ->(teacher) { teacher.subjects.length>0 }
validates :subjects, :length => {minimum: 1, message: "At least one instrument or subject is required"}, if: :validate_basics, unless: ->(teacher) { teacher.instruments.length>0 }
@ -263,7 +262,7 @@ module JamRuby
end
def mark_session_ready
self.ready_for_session = true
self.ready_for_session_at = Time.now
self.save!
end
@ -359,7 +358,7 @@ module JamRuby
end
end
complete = 100.0 * done.to_f / parts.length.to_f
complete = 100.0 * done.to_f / @part_complete.length.to_f
@part_complete[:pct] = complete.round
@part_complete

View File

@ -1816,6 +1816,11 @@ module JamRuby
using_free_credit
end
def mark_session_ready
self.ready_for_session_at = Time.now
self.save!
end
private
def create_remember_token
self.remember_token = SecureRandom.urlsafe_base64