Merge branch 'master' into production

This commit is contained in:
Nick Winter 2015-11-27 12:13:08 -08:00
commit c6bb6580ab
7 changed files with 59 additions and 50 deletions

View file

@ -68,6 +68,11 @@ module.exports = class LevelSetupManager extends CocoClass
@session.set 'heroConfig', {"thangType":goliath,"inventory":{"eyes":"53eb99f41a100989a40ce46e","neck":"54693274a2b1f53ce79443c9","wrists":"54693797a2b1f53ce79443e9","feet":"546d4d8e9df4a17d0d449acd","minion":"54eb5bf649fa2d5c905ddf4a","programming-book":"557871261ff17fef5abee3ee"}}
@onInventoryModalPlayClicked()
return
if @level.get('slug') is 'assembly-speed'
raider = '55527eb0b8abf4ba1fe9a107'
@session.set 'heroConfig', {"thangType":raider,"inventory":{}}
@onInventoryModalPlayClicked()
return
if @level.get('type', true) in ['course', 'course-ladder']
@onInventoryModalPlayClicked()
return

View file

@ -858,6 +858,7 @@
started_2: "Started"
not_started_2: "Not Started"
view_solution: "Click to view solution."
view_attempt: "Click to view attempt."
latest_achievement: "Latest Achievement"
playtime: "Playtime"
last_played: "Last played"

View file

@ -35,7 +35,7 @@ module.exports = nativeDescription: "Português do Brasil", englishDescription:
contact: "Contate-nos"
twitter_follow: "Seguir"
teachers: "Professores"
# careers: "Careers"
careers: "Carreiras"
modal:
close: "Fechar"
@ -740,8 +740,8 @@ module.exports = nativeDescription: "Português do Brasil", englishDescription:
wrong_password: "Senha Incorreta"
upload_picture: "Enviar uma foto"
delete_this_account: "Excluir essa conta definitivamente"
# reset_progress_tab: "Reset All Progress"
# reset_your_progress: "Clear all your progress and start over"
reset_progress_tab: "Resetar Todo o Progresso"
reset_your_progress: "Apaga todo seu progresso e começa novamente"
god_mode: "Modo Deus"
password_tab: "Senha"
emails_tab: "Emails"
@ -879,7 +879,7 @@ module.exports = nativeDescription: "Português do Brasil", englishDescription:
course: "Curso"
courses: "cursos"
not_enrolled: "Você não está matriculado nesse curso."
visit_pref: "Por gntileza, visite e"
visit_pref: "Por gentileza, visite a"
visit_suf: "página para matricular-se."
select_class: "Selecione uma de suas classes"
unnamed: "*sem nome*"
@ -887,18 +887,18 @@ module.exports = nativeDescription: "Português do Brasil", englishDescription:
unnamed_class: "Classe Sem Nome"
edit_settings: "editar configurações da classe"
edit_settings1: "Editar Configurações da Classe"
# progress: "Class Progress"
# add_students: "Add Students"
# stats: "Statistics"
# total_students: "Total students:"
# average_time: "Average level play time:"
# total_time: "Total play time:"
# average_levels: "Average levels completed:"
# total_levels: "Total levels completed:"
# furthest_level: "Furthest level completed:"
# concepts_covered: "Concepts Covered"
# students: "Students"
# students1: "students"
progress: "Progresso da Classe"
add_students: "Adicionar Alunos"
stats: "Estatísticas"
total_students: "Total de Alunos:"
average_time: "Average level play time:"
total_time: "Total play time:"
average_levels: "Média de níveis completados:"
total_levels: "Total de níveis completados:"
furthest_level: "Maior nível alcançado:"
concepts_covered: "Conceitos Abordados"
students: "Estudantes"
students1: "estudantes"
# expand_details: "Expand details"
# concepts: "Concepts"
# levels: "levels"
@ -955,10 +955,10 @@ module.exports = nativeDescription: "Português do Brasil", englishDescription:
# enroll: "Enroll"
# pick_from_classes: "Pick from your current classes"
# enter: "Enter"
# or: "Or"
# topics: "Topics"
# hours_content: "Hours of content:"
# get_free: "Get FREE course"
or: "Ou"
topics: "Tópicos"
hours_content: "Horas de conteúdo:"
get_free: "Obtenha um curso GRÁTIS"
classes:
archmage_title: "Arquimago"

View file

@ -12,14 +12,14 @@ module.exports = nativeDescription: "Português (Portugal)", englishDescription:
multiplayer: "Multijogador" # Not currently shown on home page
for_developers: "Para Programadores" # Not currently shown on home page.
or_ipad: "Ou descarrega para iPad"
# hoc_class_code: "I Have a Class Code"
# hoc_enter: "Enter"
# hoc_title: "Hour of Code?"
hoc_class_code: "Tenho um Código de Turma"
hoc_enter: "Entrar"
hoc_title: "Hora do Código?"
nav:
play: "Níveis" # The top nav bar entry where players choose which levels to play
community: "Comunidade"
# courses: "Courses"
courses: "Cursos"
editor: "Editor"
blog: "Blog"
forum: "Fórum"
@ -54,7 +54,7 @@ module.exports = nativeDescription: "Português (Portugal)", englishDescription:
play:
play_as: "Jogar Como" # Ladder page
# compete: "Compete!" # Course details page
compete: "Competir!" # Course details page
spectate: "Assistir" # Ladder page
players: "jogadores" # Hover over a level on /play
hours_played: "horas jogadas" # Hover over a level on /play
@ -221,10 +221,10 @@ module.exports = nativeDescription: "Português (Portugal)", englishDescription:
years: "anos"
play_level:
# completed_level: "Completed Level:"
# course: "Course:"
completed_level: "Nível Completo:"
course: "Curso:"
done: "Concluir"
# next_level: "Next Level:"
next_level: "Próximo Nível:"
next_game: "Próximo jogo"
show_menu: "Mostrar o menu do jogo"
home: "Início" # Not used any more, will be removed soon.
@ -253,7 +253,7 @@ module.exports = nativeDescription: "Português (Portugal)", englishDescription:
victory_title_suffix: " Concluído"
victory_sign_up: "Criar Conta para Guardar Progresso"
victory_sign_up_poke: "Queres guardar o teu código? Cria uma conta grátis!"
victory_rate_the_level: "Classifica o nível: " # {change}
victory_rate_the_level: "Quão divertido foi este nível?"
victory_return_to_ladder: "Voltar à Classificação"
victory_play_continue: "Continuar"
victory_saving_progress: "A Guardar Progresso"
@ -620,16 +620,16 @@ module.exports = nativeDescription: "Português (Portugal)", englishDescription:
free_title: "Quanto custa?"
# cost_premium_server: "CodeCombat is free for the first five levels, after which it costs $9.99 USD per month for access to our other 190+ levels on our exclusive country-specific servers."
free_1: "Há 110+ níveis GRATUITOS que abordam cada conceito."
free_2: "Uma subscrição mensal garante acesso a tutoriais em vídeo e a níveis extra para praticar."
# free_3: "The CodeCombat content is divided into"
# free_4: "courses"
# free_5: ". The first course is free, and about an hour of material."
# free_6: "Access to the additional courses can be unlocked with a one-time purchase."
teacher_subs_title: "Os professores recebem uma subscrição gratuita!" # {change}
teacher_subs_0: "Oferecemos subscrições gartuitas para professores, para fins de avaliação." # {change}
free_2: "Uma subscrição mensal acesso a tutoriais em vídeo e a níveis extra para praticar."
free_3: "O conteúdo do CodeCombat está dividido em"
free_4: "cursos"
free_5: ". O primeiro curso é gratuito e tem cerca de uma hora de material."
free_6: "O acesso aos cursos adicionais pode ser desbloqueado com uma compra de uma só vez."
teacher_subs_title: "Os professores recebem uma avaliação gratuita!"
teacher_subs_0: "Oferecemos avaliações gratuitas a professores."
teacher_subs_1: "Por favor, preenche o nosso"
teacher_subs_2: "Inquérito para Professores"
teacher_subs_3: "para configurares a tua subscrição." # {change}
teacher_subs_3: "para experimentares os cursos pagos."
sub_includes_title: "O que está incluído na subscrição?"
sub_includes_1: "Para além dos 110+ níveis básicos, os estudantes com uma subscrição mensal têm acesso às seguintes funcionalidades adicionais:"
sub_includes_2: "80+ níveis para praticar"
@ -673,22 +673,22 @@ module.exports = nativeDescription: "Português (Portugal)", englishDescription:
title: "Inquérito para Professores"
must_be_logged: "Primeiro tens de ter sessão iniciada. Por favor, cria uma conta ou inicia sessão a partir do menu acima."
retrieving: "A recolher informações..."
being_reviewed_1: "A tua aplicação para uma subscrição de avaliação gratuita está a ser" # {change}
being_reviewed_1: "A tua aplicação para uma avaliação gratuita está a ser"
being_reviewed_2: "revista."
approved_1: "A tua aplicação para uma subscrição de avaliação gratuita foi" # {change}
approved_1: "A tua aplicação para uma avaliação gratuita foi"
approved_2: "aprovada."
approved_3: "Mais instruções foram enviadas para"
# approved_4: "Enroll your students on the"
# approved_5: "courses"
# approved_6: "page."
denied_1: "A tua aplicação para uma subscrição de avaliação gratuita foi" # {change}
approved_4: "Inscreve os teus alunos na"
approved_5: "página"
approved_6: "dos cursos."
denied_1: "A tua aplicação para uma avaliação gratuita foi"
denied_2: "recusada."
contact_1: "Por favor, contacta"
contact_2: "se tiveres mais questões."
description_1: "Oferecemos subscrições gratuitas a professores para efeitos de avaliação. Na nossa página para" # {change}
# description_1b: "You can find more information on our"
description_2: "professores"
description_3: "podes encontar muitas mais informações."
description_1: "Oferecemos avaliações gratuitas a professores. Vão-te ser dadas duas inscrições gratuitas que podem ser usadas para inscrever estudantes em cursos pagos."
description_1b: "Podes encontrar mais informações na nossa"
description_2: "página"
description_3: "para professores."
description_4: "Por favor, preenche este pequeno inquérito e nós enviar-te-emos, por e-mail, as instruções de configuração."
email: "Endereço de E-mail"
school: "Nome da Escola"

View file

@ -256,7 +256,7 @@ mixin progress-members-popup-started(i, level, session)
span.spr(data-i18n="clans.last_played")
span #{moment(session.get('changed')).format('MMMM Do YYYY, h:mm:ss a')}
if adminMode
strong(data-i18n="clans.view_solution")
strong(data-i18n="clans.view_attempt")
mixin levels-tab
table.table.table-striped.table-condensed

View file

@ -283,6 +283,9 @@ module.exports = class PlayLevelView extends RootView
else if e.level.get('slug') is 'ace-of-coders'
goliath = '55e1a6e876cb0948c96af9f8'
e.session.set 'heroConfig', {"thangType":goliath,"inventory":{"eyes":"53eb99f41a100989a40ce46e","neck":"54693274a2b1f53ce79443c9","wrists":"54693797a2b1f53ce79443e9","feet":"546d4d8e9df4a17d0d449acd","minion":"54eb5bf649fa2d5c905ddf4a","programming-book":"557871261ff17fef5abee3ee"}}
else if e.level.get('slug') is 'assembly-speed'
raider = '55527eb0b8abf4ba1fe9a107'
e.session.set 'heroConfig', {"thangType":raider,"inventory":{}}
else if e.level.get('type', true) in ['hero', 'hero-ladder', 'hero-coop'] and not _.size e.session.get('heroConfig')?.inventory ? {}
@setupManager?.destroy()
@setupManager = new LevelSetupManager({supermodel: @supermodel, level: @level, levelID: @levelID, parent: @, session: @session, courseID: @courseID, courseInstanceID: @courseInstanceID})

View file

@ -705,11 +705,11 @@ UserHandler = class UserHandler extends Handler
return @sendMethodNotAllowed res unless req.method is 'POST'
return @sendForbiddenError res unless userID and userID is req.user?._id + '' # Only you can reset your own progress
return @sendForbiddenError res if req.user?.isAdmin() # Protect admins from resetting their progress
@resetProgressForUser req.user, (err, results) =>
@constructor.resetProgressForUser req.user, (err, results) =>
return @sendDatabaseError res, err if err
@sendSuccess res, result: 'success'
resetProgressForUser: (user, cb) ->
@resetProgressForUser: (user, cb) ->
async.parallel [
(cb) -> LevelSession.remove {creator: user._id + ''}, cb
(cb) -> EarnedAchievement.remove {user: user._id + ''}, cb