* teacher profile pgae
This commit is contained in:
parent
b3e2943599
commit
5c14d283ab
|
|
@ -0,0 +1,253 @@
|
||||||
|
ActiveAdmin.register JamRuby::Teacher, :as => 'Teachers' do
|
||||||
|
|
||||||
|
menu :label => 'Teacher', :parent => 'JamClass'
|
||||||
|
|
||||||
|
config.sort_order = 'created_at desc'
|
||||||
|
config.batch_actions = false
|
||||||
|
config.per_page = 100
|
||||||
|
config.paginate = true
|
||||||
|
|
||||||
|
|
||||||
|
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_background_check, :method => :get do
|
||||||
|
resource.mark_background_checked
|
||||||
|
redirect_to :back
|
||||||
|
end
|
||||||
|
|
||||||
|
member_action :mark_session_ready, :method => :get do
|
||||||
|
resource.mark_session_ready
|
||||||
|
redirect_to :back
|
||||||
|
end
|
||||||
|
|
||||||
|
member_action :mark_top, :method => :get do
|
||||||
|
resource.mark_top_rated
|
||||||
|
redirect_to :back
|
||||||
|
end
|
||||||
|
|
||||||
|
member_action :mark_not_top, :method => :get do
|
||||||
|
resource.mark_not_top_rated
|
||||||
|
redirect_to :back
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
@ -338,4 +338,5 @@ jamblaster_v2.sql
|
||||||
acapella_rename.sql
|
acapella_rename.sql
|
||||||
jamblaster_pairing_active.sql
|
jamblaster_pairing_active.sql
|
||||||
email_blacklist.sql
|
email_blacklist.sql
|
||||||
jamblaster_connection.sql
|
jamblaster_connection.sql
|
||||||
|
teacher_progression.sql
|
||||||
|
|
@ -0,0 +1,3 @@
|
||||||
|
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 top_rated BOOLEAN NOT NULL DEFAULT FALSE;
|
||||||
|
|
@ -4,35 +4,37 @@ module JamRuby
|
||||||
html_sanitize strict: [:biography, :website]
|
html_sanitize strict: [:biography, :website]
|
||||||
attr_accessor :validate_introduction, :validate_basics, :validate_pricing
|
attr_accessor :validate_introduction, :validate_basics, :validate_pricing
|
||||||
attr_accessible :genres, :teacher_experiences, :experiences_teaching, :experiences_education, :experiences_award
|
attr_accessible :genres, :teacher_experiences, :experiences_teaching, :experiences_education, :experiences_award
|
||||||
has_and_belongs_to_many :genres, :class_name => "JamRuby::Genre", :join_table => "teachers_genres", :order=>"description"
|
has_and_belongs_to_many :genres, :class_name => "JamRuby::Genre", :join_table => "teachers_genres", :order => "description"
|
||||||
has_and_belongs_to_many :instruments, :class_name => "JamRuby::Instrument", :join_table => "teachers_instruments", :order=>"description"
|
has_and_belongs_to_many :instruments, :class_name => "JamRuby::Instrument", :join_table => "teachers_instruments", :order => "description"
|
||||||
has_and_belongs_to_many :subjects, :class_name => "JamRuby::Subject", :join_table => "teachers_subjects", :order=>"description"
|
has_and_belongs_to_many :subjects, :class_name => "JamRuby::Subject", :join_table => "teachers_subjects", :order => "description"
|
||||||
has_and_belongs_to_many :languages, :class_name => "JamRuby::Language", :join_table => "teachers_languages", :order=>"description"
|
has_and_belongs_to_many :languages, :class_name => "JamRuby::Language", :join_table => "teachers_languages", :order => "description"
|
||||||
has_many :teacher_experiences, :class_name => "JamRuby::TeacherExperience"
|
has_many :teacher_experiences, :class_name => "JamRuby::TeacherExperience"
|
||||||
has_many :experiences_teaching, :class_name => "JamRuby::TeacherExperience", conditions: {experience_type: 'teaching'}
|
has_many :experiences_teaching, :class_name => "JamRuby::TeacherExperience", conditions: {experience_type: 'teaching'}
|
||||||
has_many :experiences_education, :class_name => "JamRuby::TeacherExperience", conditions: {experience_type: 'education'}
|
has_many :experiences_education, :class_name => "JamRuby::TeacherExperience", conditions: {experience_type: 'education'}
|
||||||
has_many :experiences_award, :class_name => "JamRuby::TeacherExperience", conditions: {experience_type: 'award'}
|
has_many :experiences_award, :class_name => "JamRuby::TeacherExperience", conditions: {experience_type: 'award'}
|
||||||
has_many :reviews, :class_name => "JamRuby::Review", as: :target
|
has_many :reviews, :class_name => "JamRuby::Review", as: :target
|
||||||
has_one :review_summary, :class_name => "JamRuby::ReviewSummary", as: :target
|
has_one :review_summary, :class_name => "JamRuby::ReviewSummary", as: :target
|
||||||
has_one :user, :class_name => 'JamRuby::User'
|
has_one :user, :class_name => 'JamRuby::User'
|
||||||
|
|
||||||
validates :user, :presence => true
|
validates :user, :presence => true
|
||||||
validates :biography, length: {minimum: 5, maximum: 4096}, :if => :validate_introduction
|
validates :biography, length: {minimum: 5, maximum: 4096}, :if => :validate_introduction
|
||||||
validates :introductory_video, :format=> {:with=> /^(?:https?:\/\/)?(?:www\.)?youtu(?:\.be|be\.com)\/(?:watch\?v=)?([\w-]{10,})/, message: "is not a valid youtube URL"}, :allow_blank => true, :if => :validate_introduction
|
validates :introductory_video, :format => {:with => /^(?:https?:\/\/)?(?:www\.)?youtu(?:\.be|be\.com)\/(?:watch\?v=)?([\w-]{10,})/, message: "is not a valid youtube URL"}, :allow_blank => true, :if => :validate_introduction
|
||||||
validates :years_teaching, :presence => true, :if => :validate_introduction
|
validates :years_teaching, :presence => true, :if => :validate_introduction
|
||||||
validates :years_playing, :presence => true, :if => :validate_introduction
|
validates :years_playing, :presence => true, :if => :validate_introduction
|
||||||
validates :teaches_test_drive, inclusion: {in: [true, false]}, :if => :validate_pricing
|
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 :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 :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}
|
validates :subjects, :length => {minimum: 1, message: "At least one instrument or subject is required"}, if: :validate_basics, unless: ->(teacher) { teacher.instruments.length>0 }
|
||||||
validates :genres, :length => { minimum:1, message:"At least one genre is required"}, if: :validate_basics
|
validates :genres, :length => {minimum: 1, message: "At least one genre is required"}, if: :validate_basics
|
||||||
validates :languages, :length => { minimum:1, message:"At least one language is required"}, if: :validate_basics
|
validates :languages, :length => {minimum: 1, message: "At least one language is required"}, if: :validate_basics
|
||||||
|
|
||||||
validate :offer_pricing, :if => :validate_pricing
|
validate :offer_pricing, :if => :validate_pricing
|
||||||
validate :offer_duration, :if => :validate_pricing
|
validate :offer_duration, :if => :validate_pricing
|
||||||
validate :teaches_ages, :if => :validate_basics
|
validate :teaches_ages, :if => :validate_basics
|
||||||
|
|
||||||
default_scope { includes(:genres) }
|
default_scope { includes(:genres).order('created_at desc') }
|
||||||
|
|
||||||
|
|
||||||
def self.index(user, params = {})
|
def self.index(user, params = {})
|
||||||
|
|
@ -45,7 +47,7 @@ module JamRuby
|
||||||
instruments = params[:instruments]
|
instruments = params[:instruments]
|
||||||
if instruments && !instruments.blank? && instruments.length > 0
|
if instruments && !instruments.blank? && instruments.length > 0
|
||||||
query = query.joins("inner JOIN teachers_instruments AS tinst ON tinst.teacher_id = teachers.id")
|
query = query.joins("inner JOIN teachers_instruments AS tinst ON tinst.teacher_id = teachers.id")
|
||||||
.where("tinst.instrument_id IN (?)", instruments)
|
.where("tinst.instrument_id IN (?)", instruments)
|
||||||
end
|
end
|
||||||
|
|
||||||
subjects = params[:subjects]
|
subjects = params[:subjects]
|
||||||
|
|
@ -72,8 +74,8 @@ module JamRuby
|
||||||
|
|
||||||
languages = params[:languages]
|
languages = params[:languages]
|
||||||
if languages && !languages.blank? && languages.length > 0
|
if languages && !languages.blank? && languages.length > 0
|
||||||
query= query.joins("inner JOIN teachers_languages AS tlang ON tlang.teacher_id = teachers.id")
|
query= query.joins("inner JOIN teachers_languages AS tlang ON tlang.teacher_id = teachers.id")
|
||||||
.where('tlang.language_id IN (?)', languages)
|
.where('tlang.language_id IN (?)', languages)
|
||||||
end
|
end
|
||||||
|
|
||||||
years_teaching = params[:years_teaching].to_i
|
years_teaching = params[:years_teaching].to_i
|
||||||
|
|
@ -118,12 +120,12 @@ module JamRuby
|
||||||
# will_paginate gem
|
# will_paginate gem
|
||||||
query = query.paginate(:page => current_page, :per_page => limit)
|
query = query.paginate(:page => current_page, :per_page => limit)
|
||||||
|
|
||||||
if query.length == 0 # no more results
|
if query.length == 0 # no more results
|
||||||
{ query: query, next_page: nil}
|
{query: query, next_page: nil}
|
||||||
elsif query.length < limit # no more results
|
elsif query.length < limit # no more results
|
||||||
{ query: query, next_page: nil}
|
{query: query, next_page: nil}
|
||||||
else
|
else
|
||||||
{ query: query, next_page: next_page }
|
{query: query, next_page: next_page}
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
@ -147,33 +149,33 @@ module JamRuby
|
||||||
teacher.biography = params[:biography] if params.key?(:biography)
|
teacher.biography = params[:biography] if params.key?(:biography)
|
||||||
teacher.introductory_video = params[:introductory_video] if params.key?(:introductory_video)
|
teacher.introductory_video = params[:introductory_video] if params.key?(:introductory_video)
|
||||||
|
|
||||||
teacher.introductory_video = params[:introductory_video] if params.key?(:introductory_video)
|
teacher.introductory_video = params[:introductory_video] if params.key?(:introductory_video)
|
||||||
teacher.years_teaching = params[:years_teaching] if params.key?(:years_teaching)
|
teacher.years_teaching = params[:years_teaching] if params.key?(:years_teaching)
|
||||||
teacher.years_playing = params[:years_playing] if params.key?(:years_playing)
|
teacher.years_playing = params[:years_playing] if params.key?(:years_playing)
|
||||||
teacher.teaches_age_lower = params[:teaches_age_lower] if params.key?(:teaches_age_lower)
|
teacher.teaches_age_lower = params[:teaches_age_lower] if params.key?(:teaches_age_lower)
|
||||||
teacher.teaches_age_upper = params[:teaches_age_upper] if params.key?(:teaches_age_upper)
|
teacher.teaches_age_upper = params[:teaches_age_upper] if params.key?(:teaches_age_upper)
|
||||||
teacher.website = params[:website] if params.key?(:website)
|
teacher.website = params[:website] if params.key?(:website)
|
||||||
teacher.biography = params[:biography] if params.key?(:biography)
|
teacher.biography = params[:biography] if params.key?(:biography)
|
||||||
teacher.teaches_beginner = params[:teaches_beginner] if params.key?(:teaches_beginner)
|
teacher.teaches_beginner = params[:teaches_beginner] if params.key?(:teaches_beginner)
|
||||||
teacher.teaches_intermediate = params[:teaches_intermediate] if params.key?(:teaches_intermediate)
|
teacher.teaches_intermediate = params[:teaches_intermediate] if params.key?(:teaches_intermediate)
|
||||||
teacher.teaches_advanced = params[:teaches_advanced] if params.key?(:teaches_advanced)
|
teacher.teaches_advanced = params[:teaches_advanced] if params.key?(:teaches_advanced)
|
||||||
teacher.prices_per_lesson = params[:prices_per_lesson] if params.key?(:prices_per_lesson)
|
teacher.prices_per_lesson = params[:prices_per_lesson] if params.key?(:prices_per_lesson)
|
||||||
teacher.prices_per_month = params[:prices_per_month] if params.key?(:prices_per_month)
|
teacher.prices_per_month = params[:prices_per_month] if params.key?(:prices_per_month)
|
||||||
teacher.lesson_duration_30 = params[:lesson_duration_30] if params.key?(:lesson_duration_30)
|
teacher.lesson_duration_30 = params[:lesson_duration_30] if params.key?(:lesson_duration_30)
|
||||||
teacher.lesson_duration_45 = params[:lesson_duration_45] if params.key?(:lesson_duration_45)
|
teacher.lesson_duration_45 = params[:lesson_duration_45] if params.key?(:lesson_duration_45)
|
||||||
teacher.lesson_duration_60 = params[:lesson_duration_60] if params.key?(:lesson_duration_60)
|
teacher.lesson_duration_60 = params[:lesson_duration_60] if params.key?(:lesson_duration_60)
|
||||||
teacher.lesson_duration_90 = params[:lesson_duration_90] if params.key?(:lesson_duration_90)
|
teacher.lesson_duration_90 = params[:lesson_duration_90] if params.key?(:lesson_duration_90)
|
||||||
teacher.lesson_duration_120 = params[:lesson_duration_120] if params.key?(:lesson_duration_120)
|
teacher.lesson_duration_120 = params[:lesson_duration_120] if params.key?(:lesson_duration_120)
|
||||||
teacher.price_per_lesson_30_cents = params[:price_per_lesson_30_cents] if params.key?(:price_per_lesson_30_cents)
|
teacher.price_per_lesson_30_cents = params[:price_per_lesson_30_cents] if params.key?(:price_per_lesson_30_cents)
|
||||||
teacher.price_per_lesson_45_cents = params[:price_per_lesson_45_cents] if params.key?(:price_per_lesson_45_cents)
|
teacher.price_per_lesson_45_cents = params[:price_per_lesson_45_cents] if params.key?(:price_per_lesson_45_cents)
|
||||||
teacher.price_per_lesson_60_cents = params[:price_per_lesson_60_cents] if params.key?(:price_per_lesson_60_cents)
|
teacher.price_per_lesson_60_cents = params[:price_per_lesson_60_cents] if params.key?(:price_per_lesson_60_cents)
|
||||||
teacher.price_per_lesson_90_cents = params[:price_per_lesson_90_cents] if params.key?(:price_per_lesson_90_cents)
|
teacher.price_per_lesson_90_cents = params[:price_per_lesson_90_cents] if params.key?(:price_per_lesson_90_cents)
|
||||||
teacher.price_per_lesson_120_cents = params[:price_per_lesson_120_cents] if params.key?(:price_per_lesson_120_cents)
|
teacher.price_per_lesson_120_cents = params[:price_per_lesson_120_cents] if params.key?(:price_per_lesson_120_cents)
|
||||||
teacher.price_per_month_30_cents = params[:price_per_month_30_cents] if params.key?(:price_per_month_30_cents)
|
teacher.price_per_month_30_cents = params[:price_per_month_30_cents] if params.key?(:price_per_month_30_cents)
|
||||||
teacher.price_per_month_45_cents = params[:price_per_month_45_cents] if params.key?(:price_per_month_45_cents)
|
teacher.price_per_month_45_cents = params[:price_per_month_45_cents] if params.key?(:price_per_month_45_cents)
|
||||||
teacher.price_per_month_60_cents = params[:price_per_month_60_cents] if params.key?(:price_per_month_60_cents)
|
teacher.price_per_month_60_cents = params[:price_per_month_60_cents] if params.key?(:price_per_month_60_cents)
|
||||||
teacher.price_per_month_90_cents = params[:price_per_month_90_cents] if params.key?(:price_per_month_90_cents)
|
teacher.price_per_month_90_cents = params[:price_per_month_90_cents] if params.key?(:price_per_month_90_cents)
|
||||||
teacher.price_per_month_120_cents = params[:price_per_month_120_cents] if params.key?(:price_per_month_120_cents)
|
teacher.price_per_month_120_cents = params[:price_per_month_120_cents] if params.key?(:price_per_month_120_cents)
|
||||||
teacher.teaches_test_drive = params[:teaches_test_drive] if params.key?(:teaches_test_drive)
|
teacher.teaches_test_drive = params[:teaches_test_drive] if params.key?(:teaches_test_drive)
|
||||||
teacher.test_drives_per_week = params[:test_drives_per_week] if params.key?(:test_drives_per_week)
|
teacher.test_drives_per_week = params[:test_drives_per_week] if params.key?(:test_drives_per_week)
|
||||||
|
|
||||||
|
|
@ -181,22 +183,22 @@ module JamRuby
|
||||||
if params.key?(:genres)
|
if params.key?(:genres)
|
||||||
genres = params[:genres]
|
genres = params[:genres]
|
||||||
genres = [] if genres.nil?
|
genres = [] if genres.nil?
|
||||||
teacher.genres = genres.collect{|genre_id| Genre.find(genre_id)}
|
teacher.genres = genres.collect { |genre_id| Genre.find(genre_id) }
|
||||||
end
|
end
|
||||||
if params.key?(:instruments)
|
if params.key?(:instruments)
|
||||||
instruments = params[:instruments]
|
instruments = params[:instruments]
|
||||||
instruments = [] if instruments.nil?
|
instruments = [] if instruments.nil?
|
||||||
teacher.instruments = instruments.collect{|instrument_id| Instrument.find(instrument_id)}
|
teacher.instruments = instruments.collect { |instrument_id| Instrument.find(instrument_id) }
|
||||||
end
|
end
|
||||||
if params.key?(:subjects)
|
if params.key?(:subjects)
|
||||||
subjects = params[:subjects]
|
subjects = params[:subjects]
|
||||||
subjects = [] if subjects.nil?
|
subjects = [] if subjects.nil?
|
||||||
teacher.subjects = subjects.collect{|subject_id| Subject.find(subject_id)}
|
teacher.subjects = subjects.collect { |subject_id| Subject.find(subject_id) }
|
||||||
end
|
end
|
||||||
if params.key?(:languages)
|
if params.key?(:languages)
|
||||||
languages = params[:languages]
|
languages = params[:languages]
|
||||||
languages = [] if languages.nil?
|
languages = [] if languages.nil?
|
||||||
teacher.languages = languages.collect{|language_id| Language.find(language_id)}
|
teacher.languages = languages.collect { |language_id| Language.find(language_id) }
|
||||||
end
|
end
|
||||||
|
|
||||||
# Experience:
|
# Experience:
|
||||||
|
|
@ -207,11 +209,11 @@ module JamRuby
|
||||||
list = [] if list.nil?
|
list = [] if list.nil?
|
||||||
experiences = list.collect do |exp|
|
experiences = list.collect do |exp|
|
||||||
TeacherExperience.new(
|
TeacherExperience.new(
|
||||||
name: exp[:name],
|
name: exp[:name],
|
||||||
experience_type: experience_type,
|
experience_type: experience_type,
|
||||||
organization: exp[:organization],
|
organization: exp[:organization],
|
||||||
start_year: exp[:start_year],
|
start_year: exp[:start_year],
|
||||||
end_year: exp[:end_year]
|
end_year: exp[:end_year]
|
||||||
)
|
)
|
||||||
end # collect
|
end # collect
|
||||||
|
|
||||||
|
|
@ -254,5 +256,113 @@ module JamRuby
|
||||||
def recent_reviews
|
def recent_reviews
|
||||||
reviews.order('created_at desc').limit(20)
|
reviews.order('created_at desc').limit(20)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def mark_background_checked
|
||||||
|
self.background_check_at = Time.now
|
||||||
|
self.save!
|
||||||
|
end
|
||||||
|
|
||||||
|
def mark_session_ready
|
||||||
|
self.ready_for_session = true
|
||||||
|
self.save!
|
||||||
|
end
|
||||||
|
|
||||||
|
def mark_top_rated
|
||||||
|
self.top_rated = true
|
||||||
|
self.save!
|
||||||
|
end
|
||||||
|
|
||||||
|
def mark_not_top_rated
|
||||||
|
self.top_rated = false
|
||||||
|
self.save!
|
||||||
|
end
|
||||||
|
def has_experiences_teaching?
|
||||||
|
experiences_teaching.count > 0
|
||||||
|
end
|
||||||
|
|
||||||
|
def has_experiences_education?
|
||||||
|
experiences_education.count > 0
|
||||||
|
end
|
||||||
|
|
||||||
|
def has_experiences_award?
|
||||||
|
experiences_award.count > 0
|
||||||
|
end
|
||||||
|
|
||||||
|
def has_stripe_billing?
|
||||||
|
false
|
||||||
|
end
|
||||||
|
|
||||||
|
def has_instruments_or_subject?
|
||||||
|
instruments.count > 0 || subjects.count > 0
|
||||||
|
end
|
||||||
|
|
||||||
|
def has_genres?
|
||||||
|
genres.count > 0
|
||||||
|
end
|
||||||
|
|
||||||
|
def has_languages?
|
||||||
|
languages.count > 0
|
||||||
|
end
|
||||||
|
|
||||||
|
def teaches_ages_specified?
|
||||||
|
(!teaches_age_lower.nil? && teaches_age_lower > 0) || (!teaches_age_upper.nil? && teaches_age_upper > 0)
|
||||||
|
end
|
||||||
|
|
||||||
|
def teaching_level_specified?
|
||||||
|
teaches_beginner || teaches_intermediate || teaches_advanced
|
||||||
|
end
|
||||||
|
|
||||||
|
def has_pricing_specified?
|
||||||
|
specified = false
|
||||||
|
durations_allowed = []
|
||||||
|
[30, 45, 60, 90, 120].each do |i|
|
||||||
|
durations_allowed << i if self["lesson_duration_#{i}"]
|
||||||
|
end
|
||||||
|
|
||||||
|
durations_allowed.each do |i|
|
||||||
|
if self["price_per_lesson_#{i}_cents"] || self["price_per_month_#{i}_cents"]
|
||||||
|
specified = true
|
||||||
|
break
|
||||||
|
end
|
||||||
|
end
|
||||||
|
specified
|
||||||
|
end
|
||||||
|
|
||||||
|
def has_name_specified?
|
||||||
|
!user.anonymous?
|
||||||
|
end
|
||||||
|
|
||||||
|
# how complete is their profile?
|
||||||
|
def pct_complete
|
||||||
|
@part_complete ||= {
|
||||||
|
name_specified: has_name_specified?,
|
||||||
|
experiences_teaching: has_experiences_teaching?,
|
||||||
|
experiences_education: has_experiences_education?,
|
||||||
|
experiences_award: has_experiences_award?,
|
||||||
|
has_stripe_account: has_stripe_billing?,
|
||||||
|
has_teacher_bio: !biography.nil?,
|
||||||
|
intro_video: !introductory_video.nil?,
|
||||||
|
years_teaching: years_teaching > 0,
|
||||||
|
years_playing: years_playing > 0,
|
||||||
|
instruments_or_subject: has_instruments_or_subject?,
|
||||||
|
genres: genres.count > 0,
|
||||||
|
languages: languages.count > 0,
|
||||||
|
teaches_ages_specified: teaches_ages_specified?,
|
||||||
|
teaching_level_specified: teaching_level_specified?,
|
||||||
|
has_pricing_specified: has_pricing_specified?
|
||||||
|
}
|
||||||
|
|
||||||
|
done = 0
|
||||||
|
@part_complete.each do |k, v|
|
||||||
|
if v
|
||||||
|
done += 1
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
complete = 100.0 * done.to_f / parts.length.to_f
|
||||||
|
|
||||||
|
@part_complete[:pct] = complete.round
|
||||||
|
@part_complete
|
||||||
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
||||||
|
|
@ -349,11 +349,12 @@ module JamRuby
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
def location
|
def location(country = false)
|
||||||
loc = self.city.blank? ? '' : self.city
|
loc = self.city.blank? ? '' : self.city
|
||||||
loc = loc.blank? ? self.state : "#{loc}, #{self.state}" unless self.state.blank?
|
loc = loc.blank? ? self.state : "#{loc}, #{self.state}" unless self.state.blank?
|
||||||
#loc = loc.blank? ? self.country : "#{loc}, #{self.country}" unless self.country.blank?
|
if country
|
||||||
# XXX WHY IS COUNTRY COMMENTED OUT?
|
loc = loc.blank? ? self.country : "#{loc}, #{self.country}" unless self.country.blank?
|
||||||
|
end
|
||||||
loc
|
loc
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue