From 1936c7c28ee5f384fbc1ed79d04903e8375c7e40 Mon Sep 17 00:00:00 2001 From: "Liana.Bakradze" Date: Wed, 26 Oct 2016 19:49:20 +0300 Subject: [PATCH] use last subtask index instead of subtask number --- .../CCSubtaskEditorNotificationProvider.java | 7 ++++--- .../coursecreator/actions/CCNewSubtaskAction.java | 4 ++-- .../edu/learning/checker/StudyCheckTask.java | 6 ++++-- .../jetbrains/edu/learning/courseFormat/Task.java | 14 +++++++------- .../learning/projectView/TaskDirectoryNode.java | 3 ++- .../edu/coursecreator/PyCCLanguageManager.java | 2 +- 6 files changed, 20 insertions(+), 16 deletions(-) diff --git a/python/educational-core/course-creator/src/com/jetbrains/edu/coursecreator/CCSubtaskEditorNotificationProvider.java b/python/educational-core/course-creator/src/com/jetbrains/edu/coursecreator/CCSubtaskEditorNotificationProvider.java index f56dddc7e685..b049e851fef5 100644 --- a/python/educational-core/course-creator/src/com/jetbrains/edu/coursecreator/CCSubtaskEditorNotificationProvider.java +++ b/python/educational-core/course-creator/src/com/jetbrains/edu/coursecreator/CCSubtaskEditorNotificationProvider.java @@ -66,10 +66,11 @@ public class CCSubtaskEditorNotificationProvider extends EditorNotifications.Pro }; String header = isTestFile ? "test" : "task file"; int activeSubtaskIndex = task.getActiveSubtaskIndex() + 1; - panel.setText("This is " + header + " for " + EduNames.SUBTASK + " " + activeSubtaskIndex + "/" + task.getSubtaskNum()); + int subtaskSize = task.getLastSubtaskIndex() + 1; + panel.setText("This is " + header + " for " + EduNames.SUBTASK + " " + activeSubtaskIndex + "/" + subtaskSize); panel.createActionLabel(SWITCH_SUBTASK, () -> { ArrayList values = new ArrayList<>(); - for (int i = 0; i < task.getSubtaskNum(); i++) { + for (int i = 0; i <= task.getLastSubtaskIndex(); i++) { values.add(i); } values.add(ADD_SUBTASK_ID); @@ -155,7 +156,7 @@ public class CCSubtaskEditorNotificationProvider extends EditorNotifications.Pro if (selectedValue.equals(SELECT)) { StudySubtaskUtils.switchStep(myProject, myTask, mySubtaskIndex); } else { - if (mySubtaskIndex != myTask.getSubtaskNum() - 1) { + if (mySubtaskIndex != myTask.getLastSubtaskIndex()) { //TODO: implement } else { //TODO: delete last subtask diff --git a/python/educational-core/course-creator/src/com/jetbrains/edu/coursecreator/actions/CCNewSubtaskAction.java b/python/educational-core/course-creator/src/com/jetbrains/edu/coursecreator/actions/CCNewSubtaskAction.java index 4e224d258f5e..11581f3d8830 100644 --- a/python/educational-core/course-creator/src/com/jetbrains/edu/coursecreator/actions/CCNewSubtaskAction.java +++ b/python/educational-core/course-creator/src/com/jetbrains/edu/coursecreator/actions/CCNewSubtaskAction.java @@ -60,9 +60,9 @@ public class CCNewSubtaskAction extends DumbAwareAction { return; } createTestsForNewSubtask(project, task); - int num = task.getSubtaskNum(); + int num = task.getLastSubtaskIndex() + 1; createTaskDescriptionFile(project, taskDir, num); - task.setSubtaskNum(num + 1); + task.setLastSubtaskIndex(num); StudySubtaskUtils.switchStep(project, task, num); } diff --git a/python/educational-core/student/src/com/jetbrains/edu/learning/checker/StudyCheckTask.java b/python/educational-core/student/src/com/jetbrains/edu/learning/checker/StudyCheckTask.java index b38f438a078d..cf054406f5d8 100644 --- a/python/educational-core/student/src/com/jetbrains/edu/learning/checker/StudyCheckTask.java +++ b/python/educational-core/student/src/com/jetbrains/edu/learning/checker/StudyCheckTask.java @@ -189,10 +189,12 @@ public class StudyCheckTask extends com.intellij.openapi.progress.Task.Backgroun }); } else { - boolean hasMoreSubtasks = myTask.hasSubtasks() && myTask.getActiveSubtaskIndex() != myTask.getSubtaskNum() - 1; + boolean hasMoreSubtasks = myTask.hasSubtasks() && myTask.getActiveSubtaskIndex() != myTask.getLastSubtaskIndex(); int visibleSubtaskIndex = myTask.getActiveSubtaskIndex() + 1; ApplicationManager.getApplication().invokeLater(() -> { - String resultMessage = !hasMoreSubtasks ? message : "Subtask " + visibleSubtaskIndex + "/" + myTask.getSubtaskNum() + " solved"; + int subtaskSize = myTask.getLastSubtaskIndex() + 1; + String resultMessage = !hasMoreSubtasks ? message : "Subtask " + visibleSubtaskIndex + "/" + + subtaskSize + " solved"; StudyCheckUtils.showTestResultPopUp(resultMessage, MessageType.INFO.getPopupBackground(), myProject); if (hasMoreSubtasks) { int nextSubtaskIndex = myTask.getActiveSubtaskIndex() + 1; diff --git a/python/educational-core/student/src/com/jetbrains/edu/learning/courseFormat/Task.java b/python/educational-core/student/src/com/jetbrains/edu/learning/courseFormat/Task.java index d16950df17ae..81512cb9ac0b 100644 --- a/python/educational-core/student/src/com/jetbrains/edu/learning/courseFormat/Task.java +++ b/python/educational-core/student/src/com/jetbrains/edu/learning/courseFormat/Task.java @@ -43,7 +43,7 @@ public class Task implements StudyItem { @Expose @SerializedName("update_date") private Date myUpdateDate; private int myActiveSubtaskIndex = 0; - @Expose private int mySubtaskNum = 1; + @Expose private int myLastSubtaskIndex = 0; public Task() {} @@ -230,7 +230,7 @@ public class Task implements StudyItem { placeholder.setStatus(status); } } - if (status == StudyStatus.Solved && hasSubtasks() && getActiveSubtaskIndex() != getSubtaskNum() - 1) { + if (status == StudyStatus.Solved && hasSubtasks() && getActiveSubtaskIndex() != getLastSubtaskIndex()) { return; } myStatus = status; @@ -270,15 +270,15 @@ public class Task implements StudyItem { myActiveSubtaskIndex = activeSubtaskIndex; } - public int getSubtaskNum() { - return mySubtaskNum; + public int getLastSubtaskIndex() { + return myLastSubtaskIndex; } - public void setSubtaskNum(int subtaskNum) { - mySubtaskNum = subtaskNum; + public void setLastSubtaskIndex(int lastSubtaskIndex) { + myLastSubtaskIndex = lastSubtaskIndex; } public boolean hasSubtasks() { - return mySubtaskNum > 1; + return myLastSubtaskIndex > 0; } } diff --git a/python/educational-core/student/src/com/jetbrains/edu/learning/projectView/TaskDirectoryNode.java b/python/educational-core/student/src/com/jetbrains/edu/learning/projectView/TaskDirectoryNode.java index 2f092a206b13..22577d618fa2 100644 --- a/python/educational-core/student/src/com/jetbrains/edu/learning/projectView/TaskDirectoryNode.java +++ b/python/educational-core/student/src/com/jetbrains/edu/learning/projectView/TaskDirectoryNode.java @@ -57,7 +57,8 @@ public class TaskDirectoryNode extends StudyDirectoryNode { private String getSubtaskInfo() { int index = myTask.getActiveSubtaskIndex() + 1; - return EduNames.SUBTASK + " " + index + "/" + myTask.getSubtaskNum(); + int subtasksNum = myTask.getLastSubtaskIndex() + 1; + return EduNames.SUBTASK + " " + index + "/" + subtasksNum; } @Override diff --git a/python/educational-python/course-creator-python/src/com/jetbrains/edu/coursecreator/PyCCLanguageManager.java b/python/educational-python/course-creator-python/src/com/jetbrains/edu/coursecreator/PyCCLanguageManager.java index d0c342227b94..6748590975f1 100644 --- a/python/educational-python/course-creator-python/src/com/jetbrains/edu/coursecreator/PyCCLanguageManager.java +++ b/python/educational-python/course-creator-python/src/com/jetbrains/edu/coursecreator/PyCCLanguageManager.java @@ -70,7 +70,7 @@ public class PyCCLanguageManager implements CCLanguageManager { return; } - int prevSubtaskIndex = task.getSubtaskNum() - 1; + int prevSubtaskIndex = task.getLastSubtaskIndex(); String name = prevSubtaskIndex == 0 ? EduNames.TESTS_FILE : getSubtaskTestsFileName(prevSubtaskIndex); VirtualFile testsFile = taskDir.findChild(name); if (testsFile == null) {