publish proper course language to stepik

This commit is contained in:
Ekaterina Tuzova
2017-04-07 19:52:36 +03:00
parent fd54035b21
commit 1bc47c4d3e
5 changed files with 22 additions and 3 deletions
@@ -692,7 +692,7 @@ public class StudyUtils {
}
public static void registerStudyToolWindow(@Nullable final Course course, Project project) {
if (course != null && "PyCharm".equals(course.getCourseType())) {
if (course != null && EduNames.PYCHARM.equals(course.getCourseType())) {
final ToolWindowManager toolWindowManager = ToolWindowManager.getInstance(project);
registerToolWindows(toolWindowManager, project);
final ToolWindow studyToolWindow = toolWindowManager.getToolWindow(StudyToolWindowFactory.STUDY_TOOL_WINDOW);
@@ -147,7 +147,7 @@ public class EduAdaptiveStepicConnector {
else if (stepType.equals(CHOICE_TYPE_TEXT)) {
return getChoiceTaskFromStep(name, step.block, stepId, userId);
}
else if (stepType.startsWith(EduStepicConnector.PYCHARM_PREFIX)) {
else if (stepType.startsWith(EduStepicNames.PYCHARM_PREFIX)) {
return EduStepicConnector.createTask(stepId);
}
else if (stepType.equals(TEXT_STEP_TYPE)) {
@@ -2,13 +2,16 @@ package com.jetbrains.edu.learning.stepic;
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import com.intellij.lang.LanguageExtensionPoint;
import com.intellij.openapi.application.ApplicationManager;
import com.intellij.openapi.diagnostic.Logger;
import com.intellij.openapi.editor.Document;
import com.intellij.openapi.extensions.Extensions;
import com.intellij.openapi.fileEditor.FileDocumentManager;
import com.intellij.openapi.project.Project;
import com.intellij.openapi.util.text.StringUtil;
import com.intellij.openapi.vfs.VirtualFile;
import com.jetbrains.edu.learning.EduPluginConfigurator;
import com.jetbrains.edu.learning.StudySettings;
import com.jetbrains.edu.learning.core.EduNames;
import com.jetbrains.edu.learning.courseFormat.*;
@@ -33,12 +36,13 @@ import java.net.URI;
import java.net.URISyntaxException;
import java.util.*;
import static com.jetbrains.edu.learning.stepic.EduStepicNames.PYCHARM_PREFIX;
public class EduStepicConnector {
private static final Logger LOG = Logger.getInstance(EduStepicConnector.class.getName());
public static final int CURRENT_VERSION = 2;
//this prefix indicates that course can be opened by educational plugin
public static final String PYCHARM_PREFIX = "pycharm";
private static final String ADAPTIVE_NOTE =
"\n\nInitially, the adaptive system may behave somewhat randomly, but the more problems you solve, the smarter it becomes!";
@@ -170,8 +174,20 @@ public class EduStepicConnector {
return true;
}
String courseType = courseInfo.getType();
final ArrayList<String> supportedLanguages = new ArrayList<>();
final LanguageExtensionPoint[] extensions = Extensions.getExtensions(EduPluginConfigurator.EP_NAME, null);
for (LanguageExtensionPoint extension : extensions) {
String languageId = extension.getKey();
supportedLanguages.add(languageId);
}
final List<String> typeLanguage = StringUtil.split(courseType, " ");
String prefix = typeLanguage.get(0);
if (typeLanguage.size() > 1) {
final String courseLanguage = typeLanguage.get(typeLanguage.size() - 1);
if (!supportedLanguages.contains(courseLanguage)) return false;
}
if (typeLanguage.size() < 2 || !prefix.startsWith(PYCHARM_PREFIX)) {
return false;
}
@@ -21,4 +21,6 @@ public class EduStepicNames {
public static final String SECTIONS = "/sections/";
public static final String ENROLLMENTS = "/enrollments";
public static final String STEPIC_REGISTRATION_LINK = "https://stepic.org/registration?next=%2Fexplore%2Fcourses";
public static final String PYCHARM_PREFIX = "pycharm";
}
@@ -194,6 +194,7 @@ public class StepicWrappers {
public CourseWrapper(Course course) {
this.course = new RemoteCourse();
this.course.setName(course.getName());
this.course.setLanguage(course.getLanguageID());
this.course.setDescription(course.getDescription());
this.course.setAuthors(course.getAuthors());
}