mirror of
https://github.com/codeninjasllc/codecombat.git
synced 2024-11-25 00:28:31 -05:00
d72e4eb750
Update classroom and gameplay Ux to surface practice levels as 3a, 3b, etc. Update next level logic to leverage practice levels based on per level completion playtime thresholds. Patrol buster and patrol buster A are live for testing. Fix a few classroom Ux progress hover bubble info bugs. Closes #3767
105 lines
4.4 KiB
Text
105 lines
4.4 KiB
Text
extends /templates/base-flat
|
|
|
|
block page_nav
|
|
include ./teacher-dashboard-nav.jade
|
|
|
|
block content
|
|
if !me.isTeacher() && view.ownedClassrooms.size()
|
|
.alert.alert-danger.text-center
|
|
.container
|
|
// DNT: Temporary
|
|
h3 ATTENTION: Please upgrade your account to a Teacher Account.
|
|
p
|
|
| We are transitioning to a new improved classroom management system for instructors.
|
|
| Please convert your account to ensure you retain access to your classrooms.
|
|
a.btn.btn-primary.btn-lg(href="/teachers/update-account") Upgrade to teacher account
|
|
|
|
.container
|
|
h1(data-i18n="courses.title")
|
|
h2(data-i18n="courses.subtitle")
|
|
p
|
|
a(href="https://discourse.codecombat.com/t/course-level-changelog/7352" data-i18n="courses.changelog")
|
|
|
|
.courses.container
|
|
- var courses = view.courses.models;
|
|
- var courseIndex = 0;
|
|
while courseIndex < courses.length
|
|
- var course = courses[courseIndex];
|
|
- courseIndex++;
|
|
.course.row
|
|
.col-sm-9
|
|
+course-info(course)
|
|
if me.isTeacher()
|
|
.col-sm-3
|
|
.play-level-form(data-course-id=course.id)
|
|
.form-group
|
|
label.control-label
|
|
span(data-i18n="courses.select_language")
|
|
| :
|
|
select.language-select.form-control
|
|
// TODO: Automate this list @scott
|
|
option(value="python")
|
|
| Python
|
|
option(value="javascript")
|
|
| JavaScript
|
|
//- option(value="coffeescript")
|
|
//- | CoffeeScript (Experimental)
|
|
//- option(value="clojure")
|
|
//- | Clojure (Experimental)
|
|
//- option(value="lua")
|
|
//- | Lua
|
|
//- option(value="java")
|
|
//- | Java
|
|
.form-group
|
|
label.control-label
|
|
span(data-i18n="courses.select_level")
|
|
| :
|
|
select.level-select.form-control
|
|
if view.campaigns.loaded
|
|
- var campaign = view.campaigns.get(course.get('campaignID'))
|
|
each level, levelIndex in campaign.getLevels().models
|
|
- var levelNumber = campaign.getLevelNumber(level.get('original'), levelIndex + 1)
|
|
option(value=level.get('slug'))
|
|
span
|
|
= levelNumber
|
|
span.spr
|
|
| .
|
|
span
|
|
= level.get('name').replace('Course: ', '')
|
|
a.play-level-button.btn.btn-lg.btn-primary
|
|
span(data-i18n="courses.play_level")
|
|
.clearfix
|
|
|
|
mixin course-info(course)
|
|
- var campaign = view.campaigns.get(course.get('campaignID'));
|
|
.course-info
|
|
.text-h4.semibold
|
|
= course.get('name')
|
|
p= course.get('description')
|
|
p.concepts.semibold
|
|
span(data-i18n="courses.concepts_covered")
|
|
| :
|
|
each concept in course.get('concepts')
|
|
span(data-i18n="concepts." + concept)
|
|
if course.get('concepts').indexOf(concept) !== course.get('concepts').length - 1
|
|
span.spr ,
|
|
|
|
if me.isTeacher() || view.ownedClassrooms.size()
|
|
if view.guideLinks[course.id]
|
|
//- a.btn.btn-primary(href=view.guideLinks[course.id] class=(me.isTeacher() ? '': 'disabled'))
|
|
//- span(data-i18n="courses.print_guide")
|
|
a.guide-btn.btn.btn-primary(href=view.guideLinks[course.id].python data-course-id=course.id data-course-name=course.get('name') data-event-action="Classes Guides Guide Python" class=(me.isTeacher() ? '': 'disabled'))
|
|
span(data-i18n="courses.view_guide_online")
|
|
| — Python
|
|
a.guide-btn.btn.btn-primary(href=view.guideLinks[course.id].javascript data-course-id=course.id data-course-name=course.get('name') data-event-action="Classes Guides Guide JavaScript" class=(me.isTeacher() ? '': 'disabled'))
|
|
span(data-i18n="courses.view_guide_online")
|
|
| — JavaScript
|
|
else
|
|
i.small
|
|
| (
|
|
span(data-i18n='teacher.guides_coming_soon')
|
|
| )
|
|
if campaign && campaign.get('levelsUpdated')
|
|
p.small.m-t-2
|
|
span.spr(data-i18n="courses.last_updated")
|
|
span= moment(campaign.get('levelsUpdated')).format('LL')
|