| 1196 | } |
| 1197 | |
| 1198 | collapsePracticeLevels (levels) { |
| 1199 | if (!['junior', '65c56663d2ca2055e65676af'].includes(this.terrain) && this.campaign?.get('type') !== 'junior') { |
| 1200 | // Only do this for Junior campaigns for now |
| 1201 | return levels |
| 1202 | } |
| 1203 | // Collapse practice levels into their parent levels. |
| 1204 | const collapsedLevels = [] |
| 1205 | let lastSourceLevel |
| 1206 | for (const level of levels) { |
| 1207 | if (level.practice) { |
| 1208 | lastSourceLevel.practiceLevels = lastSourceLevel.practiceLevels || [] |
| 1209 | lastSourceLevel.practiceLevels.push(level) |
| 1210 | } else { |
| 1211 | collapsedLevels.push(level) |
| 1212 | lastSourceLevel = level |
| 1213 | } |
| 1214 | } |
| 1215 | |
| 1216 | return collapsedLevels |
| 1217 | } |
| 1218 | |
| 1219 | annotateLevels (orderedLevels, campaign = this.campaign) { |
| 1220 | if (this.isClassroom()) { return } |