Skip to content

Commit

Permalink
Merge pull request #23513 from code-dot-org/revert-23510-revert-23465…
Browse files Browse the repository at this point in the history
…-enable-tts-2018

Revert "Revert "Add 2018 courses to k5_course? helper""
  • Loading branch information
Hamms committed Jul 12, 2018
2 parents fff27de + a733116 commit 7b2080a
Show file tree
Hide file tree
Showing 5 changed files with 139 additions and 54 deletions.
93 changes: 52 additions & 41 deletions dashboard/app/models/script.rb
Original file line number Diff line number Diff line change
Expand Up @@ -475,6 +475,48 @@ def minecraft?
ScriptConstants.script_in_category?(:minecraft, name)
end

def k5_draft_course?
ScriptConstants.script_in_category?(:csf2_draft, name)
end

def csf_international?
ScriptConstants.script_in_category?(:csf_international, name)
end

def k5_course?
(
Script::CATEGORIES[:csf_international] +
Script::CATEGORIES[:csf] +
Script::CATEGORIES[:csf_2018]
).include? name
end

def csf?
k5_course? || twenty_hour?
end

def cs_in_a?
name.match(Regexp.union('algebra', 'Algebra'))
end

def k1?
[
Script::COURSEA_DRAFT_NAME,
Script::COURSEB_DRAFT_NAME,
Script::COURSEA_NAME,
Script::COURSEB_NAME,
Script::COURSE1_NAME
].include?(name)
end

def beta?
Script.beta? name
end

def self.beta?(name)
name == Script::EDIT_CODE_NAME || ScriptConstants.script_in_category?(:csf2_draft, name)
end

def get_script_level_by_id(script_level_id)
script_levels.find {|sl| sl.id == script_level_id.to_i}
end
Expand Down Expand Up @@ -509,24 +551,6 @@ def get_bonus_script_levels(current_stage)
@all_bonus_script_levels.select {|stage| stage[:stageNumber] <= current_stage.absolute_position}
end

def beta?
Script.beta? name
end

def self.beta?(name)
name == 'edit-code' || name == 'coursea-draft' || name == 'courseb-draft' || name == 'coursec-draft' || name == 'coursed-draft' || name == 'coursee-draft' || name == 'coursef-draft'
end

def k1?
[
Script::COURSEA_DRAFT_NAME,
Script::COURSEB_DRAFT_NAME,
Script::COURSEA_NAME,
Script::COURSEB_NAME,
Script::COURSE1_NAME
].include?(name)
end

private def csf_tts_level?
k5_course?
end
Expand Down Expand Up @@ -577,37 +601,24 @@ def banner_image
end
end

def k5_course?
%w(course1 course2 course3 course4 coursea-2017 courseb-2017 coursec-2017 coursed-2017 coursee-2017 coursef-2017 express-2017 pre-express-2017).include? name
end

def k5_draft_course?
%w(coursea-draft courseb-draft coursec-draft coursed-draft coursee-draft coursef-draft).include? name
end

def csf?
k5_course? || twenty_hour?
end

def csf_international?
%w(course1 course2 course3 course4).include? name
end

def cs_in_a?
name.match(Regexp.union('algebra', 'Algebra'))
end

def has_lesson_pdf?
return false if %w(coursea-2017 courseb-2017 coursec-2017 coursed-2017 coursee-2017 coursef-2017 express-2017 pre-express-2017).include?(name)
return false if ScriptConstants.script_in_category?(:csf, name) || ScriptConstants.script_in_category?(:csf_2018, name)

has_lesson_plan?
end

def has_banner?
# Temporarily remove Course A-F banner (wrong size) - Josh L.
return false if %w(coursea-2017 courseb-2017 coursec-2017 coursed-2017 coursee-2017 coursef-2017 express-2017 pre-express-2017).include?(name)
return false if ScriptConstants.script_in_category?(:csf, name) || ScriptConstants.script_in_category?(:csf_2018, name)

k5_course? || %w(csp1-2017 csp2-2017 csp3-2017 cspunit1 cspunit2 cspunit3).include?(name)
k5_course? || [
Script::CSP17_UNIT1_NAME,
Script::CSP17_UNIT2_NAME,
Script::CSP17_UNIT3_NAME,
Script::CSP_UNIT1_NAME,
Script::CSP_UNIT2_NAME,
Script::CSP_UNIT3_NAME,
].include?(name)
end

def freeplay_links
Expand Down
12 changes: 10 additions & 2 deletions lib/cdo/script_constants.rb
Original file line number Diff line number Diff line change
Expand Up @@ -76,7 +76,6 @@ module ScriptConstants
COURSE2_NAME = 'course2'.freeze,
COURSE3_NAME = 'course3'.freeze,
COURSE4_NAME = 'course4'.freeze,
TWENTY_HOUR_NAME = '20-hour'.freeze,
],
math: [
ALGEBRA_NAME = 'algebra'.freeze,
Expand Down Expand Up @@ -146,7 +145,9 @@ module ScriptConstants
CSP_EXAM1_NAME = 'cspexam1-mWU7ilDYM9'.freeze,
CSP_EXAM2_NAME = 'cspexam2-AKwgAh1ac5'.freeze,
],
twenty_hour: [TWENTY_HOUR_NAME],
twenty_hour: [
TWENTY_HOUR_NAME = '20-hour'.freeze,
],
flappy: [FLAPPY_NAME],
minecraft: [
MINECRAFT_NAME,
Expand Down Expand Up @@ -224,4 +225,11 @@ def self.assignable_info(course_or_script)
category_priority: ScriptConstants.category_priority(first_category),
}
end

def self.has_congrats_page?(script)
script == ACCELERATED_NAME ||
ScriptConstants.script_in_category?(:csf_international, script) ||
ScriptConstants.script_in_category?(:csf, script) ||
ScriptConstants.script_in_category?(:csf_2018, script)
end
end
12 changes: 1 addition & 11 deletions pegasus/sites.v3/code.org/public/congrats/splat.haml
Original file line number Diff line number Diff line change
Expand Up @@ -17,17 +17,7 @@ max_age: 60

- course = File.basename(request.path_info)

- if [ ScriptConstants::COURSE1_NAME,
ScriptConstants::COURSE2_NAME,
ScriptConstants::COURSE3_NAME,
ScriptConstants::COURSE4_NAME,
ScriptConstants::COURSEA_NAME,
ScriptConstants::COURSEB_NAME,
ScriptConstants::COURSEC_NAME,
ScriptConstants::COURSED_NAME,
ScriptConstants::COURSEE_NAME,
ScriptConstants::COURSEF_NAME,
ScriptConstants::ACCELERATED_NAME ].include? course
- if ScriptConstants.has_congrats_page?(course)
= view :csf_congrats, course: course
- else
- redirect "/congrats"
22 changes: 22 additions & 0 deletions pegasus/sites.v3/code.org/views/csf_congrats.haml
Original file line number Diff line number Diff line change
Expand Up @@ -22,10 +22,21 @@

ScriptConstants::COURSEA_NAME => ScriptConstants::COURSEB_NAME,
ScriptConstants::COURSEB_NAME => ScriptConstants::COURSEC_NAME,
ScriptConstants::PRE_READER_EXPRESS_NAME => ScriptConstants::COURSEC_NAME,
ScriptConstants::COURSEC_NAME => ScriptConstants::COURSED_NAME,
ScriptConstants::COURSED_NAME => ScriptConstants::COURSEE_NAME,
ScriptConstants::COURSEE_NAME => ScriptConstants::COURSEF_NAME,
ScriptConstants::COURSEF_NAME => "applab",
ScriptConstants::EXPRESS_NAME => "applab",

ScriptConstants::COURSEA_2018_NAME => ScriptConstants::COURSEB_2018_NAME,
ScriptConstants::COURSEB_2018_NAME => ScriptConstants::COURSEC_2018_NAME,
ScriptConstants::PRE_READER_EXPRESS_2018_NAME => ScriptConstants::COURSEC_2018_NAME,
ScriptConstants::COURSEC_2018_NAME => ScriptConstants::COURSED_2018_NAME,
ScriptConstants::COURSED_2018_NAME => ScriptConstants::COURSEE_2018_NAME,
ScriptConstants::COURSEE_2018_NAME => ScriptConstants::COURSEF_2018_NAME,
ScriptConstants::COURSEF_2018_NAME => "applab",
ScriptConstants::EXPRESS_2018_NAME => "applab",
}

rec_third_party = {
Expand All @@ -36,12 +47,23 @@

"accelerated" => "accelerated_next",

ScriptConstants::EXPRESS_NAME => "csf_next",
ScriptConstants::PRE_READER_EXPRESS_NAME => "csf_next",
ScriptConstants::COURSEA_NAME => "csf_next",
ScriptConstants::COURSEB_NAME => "csf_next",
ScriptConstants::COURSEC_NAME => "csf_next",
ScriptConstants::COURSED_NAME => "csf_next",
ScriptConstants::COURSEE_NAME => "csf_next",
ScriptConstants::COURSEF_NAME => "csf_next",

ScriptConstants::EXPRESS_2018_NAME => "csf_next",
ScriptConstants::PRE_READER_EXPRESS_2018_NAME => "csf_next",
ScriptConstants::COURSEA_2018_NAME => "csf_next",
ScriptConstants::COURSEB_2018_NAME => "csf_next",
ScriptConstants::COURSEC_2018_NAME => "csf_next",
ScriptConstants::COURSED_2018_NAME => "csf_next",
ScriptConstants::COURSEE_2018_NAME => "csf_next",
ScriptConstants::COURSEF_2018_NAME => "csf_next",
}

#congrats.mobile-pad{:style=>'margin: 0 auto;'}
Expand Down
54 changes: 54 additions & 0 deletions pegasus/test/test_congrats_routes.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
require_relative './test_helper'
require 'minitest/autorun'
require 'rack/test'
require_relative 'fixtures/mock_pegasus'

class CongratsRoutesTest < Minitest::Test
describe 'Congrats Routes' do
before do
$log.level = Logger::ERROR # Pegasus spams debug logging otherwise
@mock_session = Rack::MockSession.new(MockPegasus.new, 'code.org')
@pegasus = Rack::Test::Session.new(@mock_session)
end

it 'shows a course-specific congrats page for appropriate courses' do
[
ScriptConstants::ACCELERATED_NAME,
ScriptConstants::COURSE1_NAME,
ScriptConstants::COURSE2_NAME,
ScriptConstants::COURSE3_NAME,
ScriptConstants::COURSE4_NAME,
ScriptConstants::COURSEA_NAME,
ScriptConstants::COURSEB_NAME,
ScriptConstants::COURSEC_NAME,
ScriptConstants::COURSED_NAME,
ScriptConstants::COURSEE_NAME,
ScriptConstants::COURSEF_NAME,
ScriptConstants::EXPRESS_NAME,
ScriptConstants::PRE_READER_EXPRESS_NAME,
ScriptConstants::COURSEA_2018_NAME,
ScriptConstants::COURSEB_2018_NAME,
ScriptConstants::COURSEC_2018_NAME,
ScriptConstants::COURSED_2018_NAME,
ScriptConstants::COURSEE_2018_NAME,
ScriptConstants::COURSEF_2018_NAME,
ScriptConstants::EXPRESS_2018_NAME,
ScriptConstants::PRE_READER_EXPRESS_2018_NAME
].each do |course|
@pegasus.get "/congrats/#{course}"
assert_equal 200, @pegasus.last_response.status
end
end

it 'redirects to a generic congrats page for other courses' do
ScriptConstants::CATEGORIES[:hoc].each do |course|
next if course.nil?

@pegasus.get "/congrats/#{CGI.escape(course)}"
assert_equal 302, @pegasus.last_response.status
@pegasus.follow_redirect!
assert_equal @pegasus.last_request.path, '/congrats'
end
end
end
end

0 comments on commit 7b2080a

Please sign in to comment.