From 1732c55d8463f1fbc8da60043bf04069711c8616 Mon Sep 17 00:00:00 2001 From: elangptra Date: Fri, 18 Oct 2024 14:24:10 +0700 Subject: [PATCH] refactor: exercise model sort function --- controllers/contentControllers/exercise.js | 11 +++++++++-- middlewares/autoGrading.js | 9 ++++++++- 2 files changed, 17 insertions(+), 3 deletions(-) diff --git a/controllers/contentControllers/exercise.js b/controllers/contentControllers/exercise.js index 1829376..91df347 100644 --- a/controllers/contentControllers/exercise.js +++ b/controllers/contentControllers/exercise.js @@ -531,7 +531,7 @@ export const createExercises = async (req, res) => { let generatedTitle = TITLE; if (!TITLE) { lastTitleNumber++; - generatedTitle = `Soal ${lastTitleNumber}`; + generatedTitle = `Question ${lastTitleNumber}`; } const existingExercise = await models.Exercise.findOne({ @@ -871,7 +871,14 @@ export const updateExerciseTitle = async (req, res) => { IS_DELETED: 0, ID_LEVEL, }, - order: [["TITLE", "ASC"]], + order: [ + [ + models.Sequelize.literal( + "CAST(SUBSTRING_INDEX(TITLE, ' ', -1) AS UNSIGNED)" + ), + "ASC", + ], + ], transaction, }); diff --git a/middlewares/autoGrading.js b/middlewares/autoGrading.js index d54ee3c..27ae29c 100644 --- a/middlewares/autoGrading.js +++ b/middlewares/autoGrading.js @@ -165,7 +165,14 @@ export const checkFirstFiveCorrect = async (req, res, next) => { ID_LEVEL: stdLearning.ID_LEVEL, IS_DELETED: 0, }, - order: [["TITLE", "ASC"]], + order: [ + [ + models.Sequelize.literal( + "CAST(SUBSTRING_INDEX(TITLE, ' ', -1) AS UNSIGNED)" + ), + "ASC", + ], + ], limit: 5, });