From 3c65c2791144a855d2c2db4ac2f8730d0e80c6a2 Mon Sep 17 00:00:00 2001 From: undefined Date: Mon, 17 Mar 2025 06:28:42 +0800 Subject: [PATCH] core&ui: show history judge time --- packages/hydrooj/src/handler/record.ts | 7 ++++--- packages/ui-default/templates/record_detail.html | 6 +++--- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/packages/hydrooj/src/handler/record.ts b/packages/hydrooj/src/handler/record.ts index 8955665ca..aea23f432 100644 --- a/packages/hydrooj/src/handler/record.ts +++ b/packages/hydrooj/src/handler/record.ts @@ -157,8 +157,9 @@ class RecordDetailHandler extends ContestDetailBaseHandler { // eslint-disable-next-line consistent-return async get(domainId: string, rid: ObjectId, download = false, rev?: ObjectId) { let rdoc = this.rdoc; - const allRev: ObjectId[] = (await record.collHistory.find({ rid }).project({ _id: 1 }).toArray()).map((i) => i._id); - if (rev && allRev.some((i) => i.equals(rev))) { + const allRev = await record.collHistory.find({ rid }).project({ _id: 1, judgeAt: 1 }).sort({ _id: -1 }).toArray(); + const allRevs: Record = Object.fromEntries(allRev.map((i) => [i._id.toString(), i.judgeAt])); + if (rev && allRevs[rev.toString()]) { rdoc = { ...rdoc, ...omit(await record.collHistory.findOne({ _id: rev }), ['_id']) }; } let canViewDetail = true; @@ -203,7 +204,7 @@ class RecordDetailHandler extends ContestDetailBaseHandler { } else if (download) return await this.download(); this.response.template = 'record_detail.html'; this.response.body = { - udoc, rdoc: canViewDetail ? rdoc : pick(rdoc, ['_id', 'lang', 'code']), pdoc, tdoc: this.tdoc, rev, allRev, + udoc, rdoc: canViewDetail ? rdoc : pick(rdoc, ['_id', 'lang', 'code']), pdoc, tdoc: this.tdoc, rev, allRevs, }; } diff --git a/packages/ui-default/templates/record_detail.html b/packages/ui-default/templates/record_detail.html index b708a5ecd..18f5b1b85 100644 --- a/packages/ui-default/templates/record_detail.html +++ b/packages/ui-default/templates/record_detail.html @@ -106,7 +106,7 @@ {% endif %} - {% if allRev|length %} + {% if allRevs|length %}

{{ _('History') }}

@@ -118,10 +118,10 @@ {{ _('Latest Version') }} - {% for r in allRev %} + {% for r, rtime in allRevs %} {% endfor %}