Execute study after check action not only for solved tasks
authorValentina Kiryushkina <valentina.kiryushkina@jetbrains.com>
Thu, 10 Mar 2016 12:34:29 +0000 (15:34 +0300)
committerValentina Kiryushkina <valentina.kiryushkina@jetbrains.com>
Tue, 15 Mar 2016 16:41:52 +0000 (19:41 +0300)
python/educational-core/student/src/com/jetbrains/edu/learning/actions/StudyAfterCheckAction.java
python/educational-core/student/src/com/jetbrains/edu/learning/checker/StudyCheckTask.java

index a112e4330de72fc1b90720f8996e5a210ad3f739..b85df4256cf86dde8bd93f29509e29913add2878 100644 (file)
@@ -1,10 +1,10 @@
 package com.jetbrains.edu.learning.actions;
 
-import com.intellij.openapi.actionSystem.AnAction;
 import com.intellij.openapi.project.Project;
+import com.jetbrains.edu.courseFormat.StudyStatus;
 import com.jetbrains.edu.courseFormat.Task;
 import org.jetbrains.annotations.NotNull;
 
-public abstract class StudyAfterCheckAction extends AnAction {
-  public abstract void run(@NotNull final Project project, @NotNull final Task solvedTask);
+public abstract class StudyAfterCheckAction {
+  public abstract void run(@NotNull final Project project, @NotNull final Task solvedTask, StudyStatus statusBeforeCheck);
 }
index 5de1e25b6725224e46f9647f552b7cc0716e427f..bdeb215a89f1fbc892d78bed6a5fe8d58393ebfe 100644 (file)
@@ -100,6 +100,7 @@ public class StudyCheckTask extends com.intellij.openapi.progress.Task.Backgroun
     else {
       onTaskFailed(testsOutput);
     }
+    runAfterTaskSolvedActions();
   }
 
   protected void onTaskFailed(StudyTestsOutputParser.TestsOutput testsOutput) {
@@ -112,16 +113,15 @@ public class StudyCheckTask extends com.intellij.openapi.progress.Task.Backgroun
     myTaskManger.setStatus(myTask, StudyStatus.Solved);
     ApplicationManager.getApplication().invokeLater(
       () -> StudyCheckUtils.showTestResultPopUp(testsOutput.getMessage(), MessageType.INFO.getPopupBackground(), myProject));
-    runAfterTaskActions();
   }
 
-  private void runAfterTaskActions() {
+  private void runAfterTaskSolvedActions() {
     StudyPluginConfigurator configurator = StudyUtils.getConfigurator(myProject);
     if (configurator != null) {
       StudyAfterCheckAction[] checkActions = configurator.getAfterCheckActions();
       if (checkActions != null) {
         for (StudyAfterCheckAction action: checkActions) {
-          action.run(myProject, myTask);
+          action.run(myProject, myTask, myStatusBeforeCheck);
         }
       }
     }