in intellij-plugin/educational-core/src/com/jetbrains/edu/coursecreator/actions/checkAllTasks/checkAllTasksUtil.kt [31:68]
fun checkAllStudyItems(
project: Project,
course: Course,
studyItems: List<StudyItem>,
indicator: ProgressIndicator
): List<Task>? {
val failedTasks = mutableListOf<Task>()
val (tasks, lessons, sections) = splitStudyItems(studyItems)
val selectedCourse = studyItems.find { it is Course }
if (selectedCourse != null) {
return checkAllTasksInItemContainer(project, course, selectedCourse as Course, indicator)
}
for (section in sections) {
failedTasks += checkAllTasksInItemContainer(project, course, section, indicator) ?: return null
}
for (lesson in lessons) {
if (lesson.section in sections) continue
failedTasks += checkAllTasksInItemContainer(project, course, lesson, indicator) ?: return null
}
for (task in tasks) {
if (task.lesson in lessons || task.lesson.section in sections) continue
indicator.isIndeterminate = true
indicator.text = EduCoreBundle.message("progress.text.checking.task", task.name)
if (!checkTask(project, course, task, indicator)) {
failedTasks.add(task)
}
indicator.isIndeterminate = false
if (indicator.isCanceled) {
return null
}
}
return failedTasks
}