diff --git a/hs-edu-format/src/org/hyperskill/academy/learning/yaml/YamlMapper.kt b/hs-edu-format/src/org/hyperskill/academy/learning/yaml/YamlMapper.kt index 6e0200c76..bb05565d9 100644 --- a/hs-edu-format/src/org/hyperskill/academy/learning/yaml/YamlMapper.kt +++ b/hs-edu-format/src/org/hyperskill/academy/learning/yaml/YamlMapper.kt @@ -21,6 +21,7 @@ import org.hyperskill.academy.learning.courseFormat.hyperskill.HyperskillProject import org.hyperskill.academy.learning.courseFormat.hyperskill.HyperskillStage import org.hyperskill.academy.learning.courseFormat.hyperskill.HyperskillTopic import org.hyperskill.academy.learning.courseFormat.tasks.CodeTask +import org.hyperskill.academy.learning.courseFormat.tasks.RemoteEduTask import org.hyperskill.academy.learning.courseFormat.tasks.Task import org.hyperskill.academy.learning.courseFormat.tasks.TheoryTask import org.hyperskill.academy.learning.yaml.format.* @@ -31,6 +32,7 @@ import org.hyperskill.academy.learning.yaml.format.hyperskill.HyperskillStageMix import org.hyperskill.academy.learning.yaml.format.hyperskill.HyperskillTopicMixin import org.hyperskill.academy.learning.yaml.format.remote.DataTaskAttemptYamlMixin import org.hyperskill.academy.learning.yaml.format.remote.RemoteCourseYamlMixin +import org.hyperskill.academy.learning.yaml.format.remote.RemoteEduTaskYamlMixin import org.hyperskill.academy.learning.yaml.format.remote.RemoteStudyItemYamlMixin import org.hyperskill.academy.learning.yaml.format.student.FeedbackYamlMixin import org.hyperskill.academy.learning.yaml.format.student.StudentTaskFileYamlMixin @@ -87,6 +89,7 @@ object YamlMapper { addMixIn(Lesson::class.java, LessonYamlMixin::class.java) addMixIn(FrameworkLesson::class.java, FrameworkLessonYamlMixin::class.java) addMixIn(Task::class.java, StudentTaskYamlMixin::class.java) + addMixIn(RemoteEduTask::class.java, RemoteEduTaskYamlMixin::class.java) addMixIn(CodeTask::class.java, CodeTaskYamlMixin::class.java) addMixIn(TheoryTask::class.java, TheoryTaskYamlUtil::class.java) addMixIn(CheckFeedback::class.java, FeedbackYamlMixin::class.java) diff --git a/intellij-plugin/hs-core/src/org/hyperskill/academy/learning/yaml/format/student/StudentTaskChangeApplier.kt b/intellij-plugin/hs-core/src/org/hyperskill/academy/learning/yaml/format/student/StudentTaskChangeApplier.kt index c0baf37a4..52007343a 100644 --- a/intellij-plugin/hs-core/src/org/hyperskill/academy/learning/yaml/format/student/StudentTaskChangeApplier.kt +++ b/intellij-plugin/hs-core/src/org/hyperskill/academy/learning/yaml/format/student/StudentTaskChangeApplier.kt @@ -1,6 +1,7 @@ package org.hyperskill.academy.learning.yaml.format.student import com.intellij.openapi.application.ApplicationManager +import com.intellij.openapi.diagnostic.logger import com.intellij.openapi.project.Project import org.hyperskill.academy.learning.courseFormat.StudyItem import org.hyperskill.academy.learning.courseFormat.TaskFile @@ -11,9 +12,10 @@ import org.hyperskill.academy.learning.messages.EduCoreBundle import org.hyperskill.academy.learning.yaml.errorHandling.YamlLoadingException import org.hyperskill.academy.learning.yaml.format.TaskChangeApplier - class StudentTaskChangeApplier(project: Project) : TaskChangeApplier(project) { + private val LOG = logger() override fun applyChanges(existingItem: Task, deserializedItem: Task) { + LOG.info("Applying changes for task: ${existingItem} - ${deserializedItem}") if (existingItem.solutionHidden != deserializedItem.solutionHidden && !ApplicationManager.getApplication().isInternal) { throw YamlLoadingException(EduCoreBundle.message("yaml.editor.invalid.visibility.cannot.be.changed")) } @@ -27,7 +29,10 @@ class StudentTaskChangeApplier(project: Project) : TaskChangeApplier(project) { when (existingItem) { is EduTask -> { if (existingItem is RemoteEduTask) { - existingItem.checkProfile = (deserializedItem as RemoteEduTask).checkProfile + val newCheckProfile = (deserializedItem as RemoteEduTask).checkProfile + if (newCheckProfile.isNotEmpty()) { + existingItem.checkProfile = newCheckProfile + } } } }