<commit_before>extends /templates/base

//- DO NOT TRANSLATE

block content

  h3 Classroom Levels
  if !me.isAdmin()
    div You must be logged in as an admin to view this page.
  else
    p
      - var levelsTotal = 0;
      table.table.table-striped.table-condensed
        tr
          th Levels
          th Course
        each course in view.courses.models
          if course.get('releasePhase') !== 'released'
            - continue;
          - var campaign = view.campaigns.get(course.get('campaignID'));
          if !campaign
            - continue;
          - var levels = campaign.getLevels().models;
          - levelsTotal += levels.length;
          tr
            td= levels.length
            td= course.get('name')
        tr
          td= levelsTotal
          td All
    each course in view.courses.models
      if course.get('releasePhase') !== 'released'
        - continue;
      - var campaign = view.campaigns.get(course.get('campaignID'));
      if !campaign
        - continue;
      - var levels = campaign.getLevels().models;
      - levelCounts = levels.length;
      strong #{course.get('name')}
      .small= course.get('description')
      .small Levels last updated #{campaign.get('levelsUpdated')}
      table.table.table-striped.table-condensed
        tr
          th= levels.length
          th Slug
          th Type
          th Practice
          th Practice Threshold (m)
          th Shareable
          th Primer
        each level, levelIndex in levels
          - var levelNumber = campaign.getLevelNumber(level.get('original'), levelIndex + 1)
          tr
            td
              a(href='/play/level/' + level.get('slug'))= levelNumber
            td= level.get('slug')
            td= level.get('type')
            td= level.get('practice')
            td= level.get('practiceThresholdMinutes')
            td= level.get('shareable')
            td= level.get('primerLanguage')<commit_msg>Add new concepts column to /admin/classroom-levels<commit_after>extends /templates/base

//- DO NOT TRANSLATE

block content

  h3 Classroom Levels
  if !me.isAdmin()
    div You must be logged in as an admin to view this page.
  else
    p
      - var levelsTotal = 0;
      table.table.table-striped.table-condensed
        tr
          th Levels
          th Course
        each course in view.courses.models
          if course.get('releasePhase') !== 'released'
            - continue;
          - var campaign = view.campaigns.get(course.get('campaignID'));
          if !campaign
            - continue;
          - var levels = campaign.getLevels().models;
          - levelsTotal += levels.length;
          tr
            td= levels.length
            td= course.get('name')
        tr
          td= levelsTotal
          td All
    - var conceptsSeen = {};
    each course in view.courses.models
      if course.get('releasePhase') !== 'released'
        - continue;
      - var campaign = view.campaigns.get(course.get('campaignID'));
      if !campaign
        - continue;
      - var levels = campaign.getLevels().models;
      - levelCounts = levels.length;
      strong #{course.get('name')}
      .small= course.get('description')
      .small Levels last updated #{campaign.get('levelsUpdated')}
      table.table.table-striped.table-condensed
        tr
          th= levels.length
          th Slug
          th Type
          th Practice
          th Practice Threshold (m)
          th Shareable
          th Primer
          th New Concepts
        each level, levelIndex in levels
          - var levelNumber = campaign.getLevelNumber(level.get('original'), levelIndex + 1)
          tr
            td
              a(href='/play/level/' + level.get('slug'))= levelNumber
            td= level.get('slug')
            td= level.get('type')
            td= level.get('practice')
            td= level.get('practiceThresholdMinutes')
            td= level.get('shareable')
            td= level.get('primerLanguage')
            td
              for concept in level.get('concepts') || []
                if !conceptsSeen[concept]
                  - conceptsSeen[concept] = true;
                  span= concept + ' '
{'fraction_non_alphanumeric': 0.10630673674151934, 'fraction_numerical': 0.001433349259436216, 'mean_word_length': 1.7082794307891334, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '5992936', 'n_tokens_mistral': 1176, 'n_tokens_neox': 1122, 'n_words': 296}