Skip to content

Commit

Permalink
add metaReviewedBy object to task history log
Browse files Browse the repository at this point in the history
  • Loading branch information
CollinBeczak committed Jan 16, 2024
1 parent 0900af4 commit 2aa3a21
Show file tree
Hide file tree
Showing 4 changed files with 45 additions and 9 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -68,6 +68,13 @@ class TaskHistoryController @Inject() (
.toMap
)

val metaReviewers = Some(
this.serviceManager.user
.retrieveListById(entries.map(t => t.metaReviewRequestedBy.getOrElse(0).toLong))
.map(u => u.id -> Json.obj("username" -> u.name, "id" -> u.id))
.toMap
)

val jsonList = entries.map { entry =>
var updated = Json.toJson(entry)
if (entry.user.getOrElse(0) != 0) {
Expand All @@ -82,6 +89,11 @@ class TaskHistoryController @Inject() (
val reviewerJson = Json.toJson(reviewers.get(entry.reviewedBy.get.toLong)).as[JsObject]
updated = Utils.insertIntoJson(updated, "reviewedBy", reviewerJson, true)
}
if (entry.metaReviewRequestedBy.getOrElse(0) != 0) {
val reviewerJson =
Json.toJson(reviewers.get(entry.metaReviewRequestedBy.get.toLong)).as[JsObject]
updated = Utils.insertIntoJson(updated, "metaReviewRequestedBy", reviewerJson, true)
}

updated
}
Expand Down
1 change: 1 addition & 0 deletions app/org/maproulette/framework/model/TaskLogEntry.scala
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@ case class TaskLogEntry(
status: Option[Int],
startedAt: Option[DateTime],
reviewStatus: Option[Int],
metaReviewRequestedBy: Option[Int],
reviewRequestedBy: Option[Int],
reviewedBy: Option[Int],
comment: Option[String],
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,7 @@ class TaskHistoryRepository @Inject() (override val db: Database) extends Reposi
None,
None,
None,
None,
Some(comment),
None
)
Expand Down Expand Up @@ -108,6 +109,7 @@ class TaskHistoryRepository @Inject() (override val db: Database) extends Reposi
None,
reviewStartedAt,
metaReviewStatus,
metaReviewedBy,
Some(requestedBy),
metaReviewedBy,
None,
Expand All @@ -123,6 +125,7 @@ class TaskHistoryRepository @Inject() (override val db: Database) extends Reposi
None,
reviewStartedAt,
reviewStatus,
metaReviewedBy,
Some(requestedBy),
reviewedBy,
None,
Expand Down Expand Up @@ -154,6 +157,7 @@ class TaskHistoryRepository @Inject() (override val db: Database) extends Reposi
None,
None,
None,
None,
None
)
}
Expand All @@ -176,6 +180,7 @@ class TaskHistoryRepository @Inject() (override val db: Database) extends Reposi
None,
None,
None,
None,
None
)
}
Expand Down
36 changes: 27 additions & 9 deletions app/org/maproulette/framework/service/TaskReviewService.scala
Original file line number Diff line number Diff line change
Expand Up @@ -789,23 +789,41 @@ class TaskReviewService @Inject() (
}
}

// Make sure we have an updated claimed at time.
val reviewClaimedAt = this.getTaskWithReview(task.id).task.review.reviewClaimedAt
val metaReviewer = user.id

val metaReviewer = task.review.metaReviewedBy match {
case Some(m) => m
case None => user.id
}
var fetchBy = "meta_reviewed_by"

val isDisputed = task.review.reviewStatus.getOrElse(-1) != Task.REVIEW_STATUS_DISPUTED &&
reviewStatus == Task.REVIEW_STATUS_DISPUTED
val needsReReview = (task.review.reviewStatus.getOrElse(-1) != Task.REVIEW_STATUS_REQUESTED &&
reviewStatus == Task.REVIEW_STATUS_REQUESTED) || isDisputed

var reviewedBy = task.review.reviewedBy
var reviewRequestedBy = task.review.reviewRequestedBy
var additionalReviewers = task.review.additionalReviewers

val currentTask = this.getTaskWithReview(task.id).task
val reviewClaimedAt = currentTask.review.reviewClaimedAt

val fetchByUser =
if (needsReReview) {
fetchBy = "meta_reviewed_by"
reviewRequestedBy = Some(user.id)
user.id
} else {
reviewedBy = Some(user.id)
user.id
}

// Update the meta_review_by and meta_review_status column on the task_review
// if error tags are currently on the review, and if this meta review provides no error tags, retain the existing tags
val updatedRows = this.repository.updateTaskReview(
user,
task,
task.review.reviewStatus.get,
"meta_reviewed_by",
metaReviewer,
task.review.additionalReviewers,
fetchBy,
fetchByUser,
additionalReviewers,
Some(reviewStatus),
errorTags = if (errorTags.isEmpty) task.errorTags else errorTags
)
Expand Down

0 comments on commit 2aa3a21

Please sign in to comment.