From 0b29608d5977cd94e5feaf0a33fd21a7f9ff8930 Mon Sep 17 00:00:00 2001 From: Valentina Kiryushkina Date: Wed, 11 Jan 2017 14:29:31 +0300 Subject: [PATCH] EDU-810 Friendly message in case we got no recommendations for the adaptive course --- .../src/com/jetbrains/edu/learning/StudyUtils.java | 4 ++++ .../courseGeneration/StudyProjectGenerator.java | 6 +++++- .../edu/learning/stepic/EduStepicConnector.java | 11 ++++------- 3 files changed, 13 insertions(+), 8 deletions(-) diff --git a/python/educational-core/student/src/com/jetbrains/edu/learning/StudyUtils.java b/python/educational-core/student/src/com/jetbrains/edu/learning/StudyUtils.java index feba895970a2..e62040a37aea 100644 --- a/python/educational-core/student/src/com/jetbrains/edu/learning/StudyUtils.java +++ b/python/educational-core/student/src/com/jetbrains/edu/learning/StudyUtils.java @@ -848,4 +848,8 @@ public class StudyUtils { final int endOffset = startOffset + length + delta; return Pair.create(startOffset, endOffset); } + + public static boolean isCourseValid(@Nullable Course course) { + return course != null && !(course.isAdaptive() && course.getLessons().isEmpty()); + } } diff --git a/python/educational-core/student/src/com/jetbrains/edu/learning/courseGeneration/StudyProjectGenerator.java b/python/educational-core/student/src/com/jetbrains/edu/learning/courseGeneration/StudyProjectGenerator.java index 49470e5e15e3..67b7996ba098 100644 --- a/python/educational-core/student/src/com/jetbrains/edu/learning/courseGeneration/StudyProjectGenerator.java +++ b/python/educational-core/student/src/com/jetbrains/edu/learning/courseGeneration/StudyProjectGenerator.java @@ -93,6 +93,10 @@ public class StudyProjectGenerator { Messages.showWarningDialog("Some problems occurred while creating the course", "Error in Course Creation"); return; } + else if (course.isAdaptive() && course.getLessons().isEmpty()) { + Messages.showWarningDialog("There is no recommended tasks for this adaptive course", "Error in Course Creation"); + return; + } final File courseDirectory = StudyUtils.getCourseDirectory(course); StudyTaskManager.getInstance(project).setCourse(course); ApplicationManager.getApplication().runWriteAction(() -> { @@ -135,7 +139,7 @@ public class StudyProjectGenerator { ProgressManager.getInstance().getProgressIndicator().setIndeterminate(true); return execCancelable(() -> { final Course course = EduStepicConnector.getCourse(project, mySelectedCourseInfo); - if (course != null) { + if (StudyUtils.isCourseValid(course)) { flushCourse(course); course.initCourse(false); } diff --git a/python/educational-core/student/src/com/jetbrains/edu/learning/stepic/EduStepicConnector.java b/python/educational-core/student/src/com/jetbrains/edu/learning/stepic/EduStepicConnector.java index 01e83454cb6e..680bab03cfff 100644 --- a/python/educational-core/student/src/com/jetbrains/edu/learning/stepic/EduStepicConnector.java +++ b/python/educational-core/student/src/com/jetbrains/edu/learning/stepic/EduStepicConnector.java @@ -212,19 +212,16 @@ public class EduStepicConnector { } } else { - final Lesson lesson = new Lesson(); course.setName(info.getName()); //TODO: more specific name? - lesson.setName("Adaptive"); - course.addLesson(lesson); final Task recommendation = EduAdaptiveStepicConnector.getNextRecommendation(project, course); if (recommendation != null) { + final Lesson lesson = new Lesson(); + lesson.setName("Adaptive"); + course.addLesson(lesson); lesson.addTask(recommendation); - return course; - } - else { - return null; } + return course; } return null; }