fun checkAllStudyItems()

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
}