mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
get rid of courseInfo
extracted remoteCourse for stepik specific fields
This commit is contained in:
committed by
Ekaterina Tuzova
parent
b9faa00c19
commit
8eadfc678b
Binary file not shown.
+6
-7
@@ -10,7 +10,6 @@ import com.jetbrains.edu.learning.PyStudyDirectoryProjectGenerator;
|
||||
import com.jetbrains.edu.learning.StudyTaskManager;
|
||||
import com.jetbrains.edu.learning.core.EduNames;
|
||||
import com.jetbrains.edu.learning.courseFormat.Course;
|
||||
import com.jetbrains.edu.learning.courseFormat.CourseInfo;
|
||||
import com.jetbrains.edu.learning.courseGeneration.StudyProjectGenerator;
|
||||
import com.jetbrains.python.newProject.steps.PyCharmNewProjectStep;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
@@ -44,10 +43,10 @@ class CreateFromArchiveProjectStep extends PyCharmNewProjectStep {
|
||||
@NotNull
|
||||
@Override
|
||||
protected DirectoryProjectGenerator createEmptyProjectGenerator() {
|
||||
Course course = StudyTaskManager.getInstance(myProject).getCourse();
|
||||
if (course != null) {
|
||||
Course currentCourse = StudyTaskManager.getInstance(myProject).getCourse();
|
||||
if (currentCourse != null) {
|
||||
VirtualFile folder = CCUtils.getGeneratedFilesFolder(myProject, myModule);
|
||||
String zipName = FileUtil.sanitizeFileName(course.getName());
|
||||
String zipName = FileUtil.sanitizeFileName(currentCourse.getName());
|
||||
if (zipName.isEmpty()) {
|
||||
zipName = EduNames.COURSE;
|
||||
}
|
||||
@@ -55,9 +54,9 @@ class CreateFromArchiveProjectStep extends PyCharmNewProjectStep {
|
||||
CCCreateCourseArchive.createCourseArchive(myProject, myModule, zipName, locationDir, false);
|
||||
String path = FileUtil.join(FileUtil.toSystemDependentName(folder.getPath()), zipName + ".zip");
|
||||
StudyProjectGenerator generator = myGenerator.getGenerator();
|
||||
CourseInfo info = generator.addLocalCourse(path);
|
||||
assert info != null;
|
||||
generator.setSelectedCourse(info);
|
||||
Course course = generator.addLocalCourse(path);
|
||||
assert course != null;
|
||||
generator.setSelectedCourse(course);
|
||||
}
|
||||
return myGenerator;
|
||||
}
|
||||
|
||||
+10
-10
@@ -25,7 +25,7 @@ import com.intellij.psi.PsiManager;
|
||||
import com.intellij.util.BooleanFunction;
|
||||
import com.jetbrains.edu.learning.core.EduNames;
|
||||
import com.jetbrains.edu.learning.courseFormat.Course;
|
||||
import com.jetbrains.edu.learning.courseFormat.CourseInfo;
|
||||
import com.jetbrains.edu.learning.courseFormat.RemoteCourse;
|
||||
import com.jetbrains.edu.learning.courseGeneration.StudyProjectGenerator;
|
||||
import com.jetbrains.edu.learning.stepic.EduStepicConnector;
|
||||
import com.jetbrains.edu.learning.ui.StudyNewProjectPanel;
|
||||
@@ -87,7 +87,7 @@ public class PyStudyDirectoryProjectGenerator extends PythonProjectGenerator<PyN
|
||||
@Override
|
||||
public void mouseClicked(MouseEvent e) {
|
||||
final Object selectedItem = mySettingsPanel.getCoursesComboBox().getSelectedItem();
|
||||
if (selectedItem != null && ((CourseInfo)selectedItem).isAdaptive() && !myGenerator.isLoggedIn()) {
|
||||
if (selectedItem != null && ((Course)selectedItem).isAdaptive() && !myGenerator.isLoggedIn()) {
|
||||
mySettingsPanel.showLoginDialog(false, "Signing In");
|
||||
}
|
||||
}
|
||||
@@ -95,14 +95,14 @@ public class PyStudyDirectoryProjectGenerator extends PythonProjectGenerator<PyN
|
||||
@Override
|
||||
public void mouseEntered(MouseEvent e) {
|
||||
final Object selectedItem = mySettingsPanel.getCoursesComboBox().getSelectedItem();
|
||||
if (selectedItem != null && ((CourseInfo)selectedItem).isAdaptive() && !myGenerator.isLoggedIn()) {
|
||||
if (selectedItem != null && ((Course)selectedItem).isAdaptive() && !myGenerator.isLoggedIn()) {
|
||||
e.getComponent().setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR));
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void mouseExited(MouseEvent e) {
|
||||
final CourseInfo selectedItem = (CourseInfo)mySettingsPanel.getCoursesComboBox().getSelectedItem();
|
||||
final Course selectedItem = (Course)mySettingsPanel.getCoursesComboBox().getSelectedItem();
|
||||
if (selectedItem != null && selectedItem.isAdaptive() && !myGenerator.isLoggedIn()) {
|
||||
e.getComponent().setCursor(Cursor.getDefaultCursor());
|
||||
}
|
||||
@@ -165,7 +165,7 @@ public class PyStudyDirectoryProjectGenerator extends PythonProjectGenerator<PyN
|
||||
return mySettingsPanel;
|
||||
}
|
||||
|
||||
public void setSelectedCourse(CourseInfo course) {
|
||||
public void setSelectedCourse(Course course) {
|
||||
myGenerator.setSelectedCourse(course);
|
||||
}
|
||||
|
||||
@@ -183,13 +183,13 @@ public class PyStudyDirectoryProjectGenerator extends PythonProjectGenerator<PyN
|
||||
public BooleanFunction<PythonProjectGenerator> beforeProjectGenerated(@Nullable Sdk sdk) {
|
||||
return generator -> {
|
||||
final List<Integer> enrolledCoursesIds = myGenerator.getEnrolledCoursesIds();
|
||||
final CourseInfo course = (CourseInfo)mySettingsPanel.getCoursesComboBox().getSelectedItem();
|
||||
if (course == null) return true;
|
||||
if (course.getId() > 0 && !enrolledCoursesIds.contains(course.getId())) {
|
||||
final Course course = (Course)mySettingsPanel.getCoursesComboBox().getSelectedItem();
|
||||
if (course == null || !(course instanceof RemoteCourse)) return true;
|
||||
if (((RemoteCourse)course).getId() > 0 && !enrolledCoursesIds.contains(((RemoteCourse)course).getId())) {
|
||||
ProgressManager.getInstance().runProcessWithProgressSynchronously(() -> {
|
||||
ProgressManager.getInstance().getProgressIndicator().setIndeterminate(true);
|
||||
return StudyUtils.execCancelable(() -> EduStepicConnector.enrollToCourse(course.getId(),
|
||||
StudySettings.getInstance().getUser()));
|
||||
return StudyUtils.execCancelable(() -> EduStepicConnector.enrollToCourse(((RemoteCourse)course).getId(),
|
||||
StepicSettings.getInstance().getUser()));
|
||||
}, "Creating Course", true, ProjectManager.getInstance().getDefaultProject());
|
||||
|
||||
}
|
||||
|
||||
+2
-2
@@ -21,7 +21,7 @@ import com.intellij.openapi.actionSystem.AnActionEvent;
|
||||
import com.intellij.openapi.actionSystem.Presentation;
|
||||
import com.jetbrains.edu.learning.EduPluginConfigurator;
|
||||
import com.jetbrains.edu.learning.PyStudyDirectoryProjectGenerator;
|
||||
import com.jetbrains.edu.learning.courseFormat.CourseInfo;
|
||||
import com.jetbrains.edu.learning.courseFormat.Course;
|
||||
import com.jetbrains.python.PythonLanguage;
|
||||
import com.jetbrains.python.newProject.steps.ProjectSpecificSettingsStep;
|
||||
import com.jetbrains.python.newProject.steps.PythonGenerateProjectCallback;
|
||||
@@ -64,7 +64,7 @@ public class PyStudyIntroductionCourseAction extends AnAction {
|
||||
final PyStudyDirectoryProjectGenerator generator = new PyStudyDirectoryProjectGenerator(true);
|
||||
final EduPluginConfigurator configurator = EduPluginConfigurator.INSTANCE.forLanguage(PythonLanguage.getInstance());
|
||||
final String bundledCoursePath = configurator.getBundledCoursePath();
|
||||
CourseInfo introCourse = generator.getGenerator().getCourseInfo(bundledCoursePath);
|
||||
Course introCourse = generator.getGenerator().getCourse(bundledCoursePath);
|
||||
if (introCourse == null) {
|
||||
return;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user