From ed0535e14a2e13af0893dc1a2205490b9242d58f Mon Sep 17 00:00:00 2001 From: Kgothatso Ngako Date: Sat, 8 Jan 2022 02:42:23 +0200 Subject: [PATCH] Fix back translate --- server/router/translate/index.js | 109 ++++++++++++----------------- server/views/translate-chapter.pug | 7 +- 2 files changed, 50 insertions(+), 66 deletions(-) diff --git a/server/router/translate/index.js b/server/router/translate/index.js index 18d4c58..5122c72 100644 --- a/server/router/translate/index.js +++ b/server/router/translate/index.js @@ -63,6 +63,12 @@ module.exports = function (options) { ] } ] + }, + { + association: db.TranslationArtifactVersion.Dialect + }, + { + association: db.TranslationArtifactVersion.BackTranslationFrom } ] } @@ -258,26 +264,24 @@ module.exports = function (options) { db.TranslationArtifactVersion.findByPk(request.params.id, { include: [ { - association: db.TranslationArtifactVersion.ArtifactVersion, - required: true, + association: db.TranslationArtifactVersion.Dialect, + }, + { + association: db.TranslationArtifactVersion.TranslationChapters, include: [ { - association: db.ArtifactVersion.Chapters, - required: true, + association: db.TranslationChapter.TranslationChunks, include: [ { - association: db.Chapter.Chunks, - required: true, - include: [ - { - association: db.Chunk.Translation, - required: true, - // TODO: Where text is not null - } - ] + association: db.TranslationChunk.Translation, } ] - }, + } + ] + }, + { + association: db.TranslationArtifactVersion.ArtifactVersion, + include: [ { association: db.ArtifactVersion.Artifact, include: [ @@ -292,59 +296,34 @@ module.exports = function (options) { }).then((translationArtifactVersion) => { if (translationArtifactVersion) { // TODO: Create a backTranslation... - backTranslatedArtifact = {} - return db.BackTranslation.create({ + return db.TranslationArtifactVersion.create({ creatorId: request.user.id, - translationArtifactVersionId: translationArtifactVersion.id, - artifact: { - creatorId: request.user.id, - name: translationArtifactVersion.name + translationArtifactVersion.artifactVersion.artifact.name, - url: `/translate/${request.params.id}`, - dialectId: translationArtifactVersion.dialectId, - licenseId: "copyright", // Should be closed because it's a back translation not meant to be published - artifactVersions: [ - { - tag: translationArtifactVersion.artifactVersion.tag, - chapters: translationArtifactVersion.artifactVersion.chapters.map(chapter => { - return { - name: chapter.chunks[0].translation.text, // TODO: This isn't important... - chunks: chapter.chunks.map(chunk => { - return { - text: chunk.translation.text, - index: chunk.index - } - }) - } - }), - translationArtifactVersions: [ - { - dialectId: translationArtifactVersion.artifactVersion.artifact.dialect.id, - name: translationArtifactVersion.artifactVersion.artifact.dialect.name - } - ] - } - ] - } + 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.BackTranslation.Artifact, + association: db.TranslationArtifactVersion.TranslationChapters, include: [ { - association: db.Artifact.ArtifactVersions, - include: [ - { - association: db.ArtifactVersion.Chapters, - include: [ - { - association: db.Chapter.Chunks - } - ] - }, - { - association: db.ArtifactVersion.TranslationArtifactVersions - } - ] + association: db.TranslationChapter.TranslationChunks } ] } @@ -353,12 +332,12 @@ module.exports = function (options) { } else { return null } - }).then(backTranslation => { - if (backTranslation) { - response.redirect(`/library/${backTranslation.artifactId}`) + }).then(translationArtifactVersion => { + if (translationArtifactVersion) { + response.redirect(`/translate/${translationArtifactVersion.id}`) } else { // TODO: Let user know we cannot back translate - response.redirect(`/translate/${request.params.id}`) + } }).catch(error => { next(error) diff --git a/server/views/translate-chapter.pug b/server/views/translate-chapter.pug index 3a61dfe..4126551 100644 --- a/server/views/translate-chapter.pug +++ b/server/views/translate-chapter.pug @@ -12,7 +12,12 @@ block content table thead tr - th #{translationChapter.translationArtifactVersion.artifactVersion.artifact.dialect.name} + th + if translationChapter.translationArtifactVersion.backTranslationFrom + span= translationChapter.translationArtifactVersion.dialect.name + else + span #{translationChapter.translationArtifactVersion.artifactVersion.artifact.dialect.name} + th #{translationChapter.translationArtifactVersion.name} th