From d06abe37a92596d56b8a38ed9a881ff32964ba0b Mon Sep 17 00:00:00 2001 From: CollinBeczak Date: Tue, 9 Apr 2024 09:39:14 -0500 Subject: [PATCH] fix nearby task looping too hard tasks issue --- app/org/maproulette/models/dal/TaskDAL.scala | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/app/org/maproulette/models/dal/TaskDAL.scala b/app/org/maproulette/models/dal/TaskDAL.scala index 9c74fa21..a4eff8d4 100644 --- a/app/org/maproulette/models/dal/TaskDAL.scala +++ b/app/org/maproulette/models/dal/TaskDAL.scala @@ -1170,8 +1170,16 @@ class TaskDAL @Inject() ( case None => "" } - val query = s"$select ${queryBuilder.toString} ${whereClause.toString} " + - s"ORDER BY $proximityOrdering tasks.status, RANDOM() LIMIT ${this.sqlLimit(limit)}" + val query = + s"""$select ${queryBuilder.toString} ${whereClause.toString} + |ORDER BY + | (CASE + | WHEN tasks.status = ${Task.STATUS_TOO_HARD} AND tasks.completed_by = ${user.id} THEN 0 + | WHEN tasks.status = ${Task.STATUS_SKIPPED} AND tasks.completed_by = ${user.id} THEN 1 + | ELSE 2 + | END) DESC, + | $proximityOrdering tasks.status, RANDOM() LIMIT ${this + .sqlLimit(limit)}""".stripMargin implicit val ids = List[Long]() this.cacheManager.withIDListCaching { implicit cachedItems =>