From 5f7fb64de82ebee5aaa051044b3d4e252f5475a5 Mon Sep 17 00:00:00 2001 From: lesion Date: Wed, 23 Feb 2022 09:55:17 +0100 Subject: [PATCH] fix next/prev selection on same datetime events --- server/api/controller/event.js | 22 ++++++++++++++++++---- 1 file changed, 18 insertions(+), 4 deletions(-) diff --git a/server/api/controller/event.js b/server/api/controller/event.js index 856d3639..3dd3634c 100644 --- a/server/api/controller/event.js +++ b/server/api/controller/event.js @@ -145,21 +145,35 @@ const eventController = { const next = await Event.findOne({ attributes: ['id', 'slug'], where: { + id: { [Op.not]: event.id }, is_visible: true, recurrent: null, - start_datetime: { [Op.gt]: event.start_datetime } + [Op.or]: [ + { start_datetime: { [Op.gt]: event.start_datetime } }, + { + start_datetime: event.start_datetime, + id: { [Op.gt]: event.id } + } + ] }, - order: [['start_datetime', 'ASC']] + order: [['start_datetime', 'ASC'], ['id', 'ASC']] }) const prev = await Event.findOne({ attributes: ['id', 'slug'], where: { is_visible: true, + id: { [Op.not]: event.id }, recurrent: null, - start_datetime: { [Op.lt]: event.start_datetime } + [Op.or]: [ + { start_datetime: { [Op.lt]: event.start_datetime } }, + { + start_datetime: event.start_datetime, + id: { [Op.lt]: event.id } + } + ] }, - order: [['start_datetime', 'DESC']] + order: [['start_datetime', 'DESC'], ['id', 'DESC']] }) // TODO: also check if event is mine