From c7e08c1944c08466764769849464f9084e60c817 Mon Sep 17 00:00:00 2001 From: Kgothatso Ngako Date: Sat, 8 Jan 2022 03:34:51 +0200 Subject: [PATCH] Fixes for back translations --- server/router/translate/index.js | 78 +++++++++++++++++--------------- server/router/versions/index.js | 6 ++- 2 files changed, 47 insertions(+), 37 deletions(-) diff --git a/server/router/translate/index.js b/server/router/translate/index.js index 5122c72..4545f93 100644 --- a/server/router/translate/index.js +++ b/server/router/translate/index.js @@ -291,44 +291,51 @@ module.exports = function (options) { ] } ] - } + }, + { + association: db.TranslationArtifactVersion.BackTranslation, + }, ] }).then((translationArtifactVersion) => { if (translationArtifactVersion) { - // TODO: Create a backTranslation... - return db.TranslationArtifactVersion.create({ - creatorId: request.user.id, - name: translationArtifactVersion.artifactVersion.artifact.dialect.name, - artifactVersionId: translationArtifactVersion.artifactVersionId, - dialectId: translationArtifactVersion.dialect.id, - backTranslationFromId: translationArtifactVersion.id, - entityId: request.user.individualEntityUser.entityUser.entityId, - translationChapters: translationArtifactVersion.translationChapters.map(translationChapter => { - return { - creatorId: request.user.id, - chapterId: translationChapter.chapterId, - translationChunks: translationChapter.translationChunks.map(translationChunk => { - return { - creatorId: request.user.id, - chunkId: translationChunk.chunkId, - text: translationChunk.translation.text, - index: translationChunk.index - } - }) - } + if (translationArtifactVersion.backTranslation) { + // translationArtifactVersion has a back translation...xx§ + return translationArtifactVersion.backTranslation + } else { + return db.TranslationArtifactVersion.create({ + creatorId: request.user.id, + name: translationArtifactVersion.artifactVersion.artifact.dialect.name, + artifactVersionId: translationArtifactVersion.artifactVersionId, + dialectId: translationArtifactVersion.dialect.id, + backTranslationFromId: translationArtifactVersion.id, + entityId: request.user.individualEntityUser.entityUser.entityId, + translationChapters: translationArtifactVersion.translationChapters.map(translationChapter => { + return { + creatorId: request.user.id, + chapterId: translationChapter.chapterId, + translationChunks: translationChapter.translationChunks.map(translationChunk => { + return { + creatorId: request.user.id, + chunkId: translationChunk.chunkId, + text: translationChunk.translation.text, + index: translationChunk.index + } + }) + } + }) + }, { + include: [ + { + association: db.TranslationArtifactVersion.TranslationChapters, + include: [ + { + association: db.TranslationChapter.TranslationChunks + } + ] + } + ] }) - }, { - include: [ - { - association: db.TranslationArtifactVersion.TranslationChapters, - include: [ - { - association: db.TranslationChapter.TranslationChunks - } - ] - } - ] - }) + } } else { return null } @@ -336,8 +343,7 @@ module.exports = function (options) { if (translationArtifactVersion) { response.redirect(`/translate/${translationArtifactVersion.id}`) } else { - // TODO: Let user know we cannot back translate - + next() } }).catch(error => { next(error) diff --git a/server/router/versions/index.js b/server/router/versions/index.js index 7de87a3..b04bd82 100644 --- a/server/router/versions/index.js +++ b/server/router/versions/index.js @@ -21,7 +21,11 @@ module.exports = function (options) { association: db.ArtifactVersion.Chapters }, { - association: db.ArtifactVersion.TranslationArtifactVersions + association: db.ArtifactVersion.TranslationArtifactVersions, + where: { + backTranslationFromId: null + }, + required: false } ] }).then(artifactVersion => {