From ef4119e72c51c78cca466137167fe88b6c17d604 Mon Sep 17 00:00:00 2001 From: "liana.bakradze" Date: Wed, 23 Sep 2015 14:50:45 +0300 Subject: [PATCH 1/1] EDU-487 Broken placeholders --- .../actions/CCCreateCourseArchive.java | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/python/educational/course-creator/src/com/jetbrains/edu/coursecreator/actions/CCCreateCourseArchive.java b/python/educational/course-creator/src/com/jetbrains/edu/coursecreator/actions/CCCreateCourseArchive.java index 94222fb32a9b..87f15abad515 100644 --- a/python/educational/course-creator/src/com/jetbrains/edu/coursecreator/actions/CCCreateCourseArchive.java +++ b/python/educational/course-creator/src/com/jetbrains/edu/coursecreator/actions/CCCreateCourseArchive.java @@ -15,6 +15,7 @@ import com.intellij.openapi.ui.Messages; import com.intellij.openapi.util.io.FileUtil; import com.intellij.openapi.vfs.VirtualFile; import com.intellij.openapi.vfs.VirtualFileManager; +import com.intellij.util.containers.hash.HashMap; import com.intellij.util.io.ZipUtil; import com.jetbrains.edu.EduNames; import com.jetbrains.edu.EduUtils; @@ -76,6 +77,7 @@ public class CCCreateCourseArchive extends DumbAwareAction { final VirtualFile baseDir = project.getBaseDir(); final List lessons = course.getLessons(); + final Map savedTaskFiles = new HashMap(); for (Lesson lesson : lessons) { final VirtualFile lessonDir = baseDir.findChild(EduNames.LESSON + String.valueOf(lesson.getIndex())); if (lessonDir == null) continue; @@ -86,8 +88,10 @@ public class CCCreateCourseArchive extends DumbAwareAction { ApplicationManager.getApplication().runWriteAction(new Runnable() { @Override public void run() { - TaskFile taskFile = new TaskFile(); - TaskFile.copy(entry.getValue(), taskFile); + TaskFile taskFileCopy = new TaskFile(); + TaskFile taskFile = entry.getValue(); + TaskFile.copy(taskFile, taskFileCopy); + savedTaskFiles.put(taskFile, taskFileCopy); EduUtils.createStudentFileFromAnswer(project, taskDir, taskDir, entry.getKey(), taskFile); } }); @@ -98,6 +102,13 @@ public class CCCreateCourseArchive extends DumbAwareAction { VirtualFileManager.getInstance().refreshWithoutFileWatcher(false); packCourse(baseDir, course); synchronize(project); + resetTaskFiles(savedTaskFiles); + } + + private static void resetTaskFiles(Map savedTaskFiles) { + for (Map.Entry entry : savedTaskFiles.entrySet()) { + entry.getKey().setAnswerPlaceholders(entry.getValue().getAnswerPlaceholders()); + } } private static void synchronize(@NotNull final Project project) { -- 2.32.0