VRFS-4058 - update search ordering for teachers

This commit is contained in:
Seth Call 2016-05-17 21:35:09 -05:00
parent f9429f8712
commit 9725667e2a
4 changed files with 48 additions and 1 deletions

View File

@ -348,4 +348,5 @@ add_test_drive_types.sql
updated_subjects.sql
update_payment_history.sql
lesson_booking_schools.sql
lesson_booking_schools_2.sql
lesson_booking_schools_2.sql
phantom_accounts.sql

View File

@ -0,0 +1,16 @@
ALTER TABLE users ADD COLUMN phantom BOOLEAN DEFAULT FALSE NOT NULL;
CREATE OR REPLACE FUNCTION phantom_check() RETURNS TRIGGER
STRICT VOLATILE AS $$
BEGIN
-- Remember who changed the payroll when
NEW.phantom := (SELECT NEW.email ilike 'phantom+%@jamkazam.com');
RETURN NEW;
END;
$$ LANGUAGE plpgsql;
CREATE TRIGGER phantom_update BEFORE INSERT OR UPDATE
ON users FOR EACH ROW EXECUTE PROCEDURE phantom_check(id);
UPDATE users set updated_at = NOW();

View File

@ -132,6 +132,13 @@ module JamRuby
query = query.where("teaches_age_lower <= ? AND (CASE WHEN teaches_age_upper = 0 THEN true ELSE teaches_age_upper >= ? END)", student_age, student_age)
end
# order in this way: https://jamkazam.atlassian.net/browse/VRFS-4058
# Real teachers who are marked as top.
# Real teachers who are not marked as top.
# Phantom teachers.
query = query.order("top_rated DESC, phantom ASC")
current_page = params[:page].nil? ? 1 : params[:page].to_i
next_page = current_page + 1

View File

@ -20,6 +20,29 @@ describe Teacher do
teachers[0].should eq(teacher.user)
end
it "sorting" do
teacher3 = FactoryGirl.create(:teacher, ready_for_session_at: Time.now)
teacher3.user.email = 'phantom+dogpound@jamkazam.com'
teacher3.user.save!
teacher2 = FactoryGirl.create(:teacher, ready_for_session_at: Time.now)
teacher2.top_rated = false
teacher2.save!
teacher1 = FactoryGirl.create(:teacher, ready_for_session_at: Time.now)
teacher1.top_rated = true
teacher1.save!
query = Teacher.index(nil, {})[:query]
query.count.should eql 3
query[0].should eq(teacher1.user)
query[1].should eq(teacher2.user)
query[2].should eq(teacher3.user)
end
it "instruments" do
teacher = FactoryGirl.create(:teacher, ready_for_session_at: Time.now)
teachers = Teacher.index(nil, {instruments: ['acoustic guitar']})[:query]