From 16613a69708a3a3d8e3f7c025a14e8524265966a Mon Sep 17 00:00:00 2001 From: undefined Date: Thu, 10 Dec 2020 01:09:52 +0800 Subject: [PATCH] =?UTF-8?q?core:=20=E6=AF=94=E8=B5=9B=E9=A2=98=E7=9B=AE?= =?UTF-8?q?=E9=A1=B5=E9=9D=A2=E6=B7=BB=E5=8A=A0scratchpad?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/hydrooj/package.json | 2 +- packages/hydrooj/src/handler/contest.ts | 7 ++++--- packages/hydrooj/src/model/contest.ts | 1 + 3 files changed, 6 insertions(+), 4 deletions(-) diff --git a/packages/hydrooj/package.json b/packages/hydrooj/package.json index 438da1dfc..83c2c9ffe 100644 --- a/packages/hydrooj/package.json +++ b/packages/hydrooj/package.json @@ -1,6 +1,6 @@ { "name": "hydrooj", - "version": "2.14.5", + "version": "2.14.6", "bin": "bin/hydrooj.js", "main": "dist/loader.js", "typings": "dist/loader.d.ts", diff --git a/packages/hydrooj/src/handler/contest.ts b/packages/hydrooj/src/handler/contest.ts index 277ea923f..ca2e3542a 100644 --- a/packages/hydrooj/src/handler/contest.ts +++ b/packages/hydrooj/src/handler/contest.ts @@ -271,11 +271,12 @@ class ContestProblemHandler extends ContestHandler { udoc: this.udoc, attended: this.attended, path, + page_name: 'contest_detail_problem', }; } } -class ContestProblemSubmitHandler extends ContestProblemHandler { +class ContestDetailProblemSubmitHandler extends ContestProblemHandler { @param('tid', Types.ObjectID) @param('pid', Types.UnsignedInt) async prepare(domainId: string, tid: ObjectID, pid: number) { @@ -298,11 +299,11 @@ class ContestProblemSubmitHandler extends ContestProblemHandler { this.response.body = { tdoc: this.tdoc, pdoc: this.pdoc, - tsdoc: this.tsdoc, udoc: this.udoc, attended: this.attend, path, rdocs, + page_name: 'contest_detail_problem_submit', }; } @@ -424,7 +425,7 @@ export async function apply() { Route('contest_scoreboard_raw', '/contest/:tid/scoreboard/raw', ContestScoreboardRawHandler, PERM.PERM_VIEW_CONTEST); Route('contest_scoreboard_download', '/contest/:tid/export/:ext', ContestScoreboardDownloadHandler, PERM.PERM_VIEW_CONTEST); Route('contest_detail_problem', '/contest/:tid/p/:pid', ContestProblemHandler, PERM.PERM_VIEW_CONTEST); - Route('contest_detail_problem_submit', '/contest/:tid/p/:pid/submit', ContestProblemSubmitHandler, PERM.PERM_VIEW_CONTEST); + Route('contest_detail_problem_submit', '/contest/:tid/p/:pid/submit', ContestDetailProblemSubmitHandler, PERM.PERM_VIEW_CONTEST); Route('contest_code', '/contest/:tid/code', ContestCodeHandler, PERM.PERM_VIEW_CONTEST); } diff --git a/packages/hydrooj/src/model/contest.ts b/packages/hydrooj/src/model/contest.ts index 96cff87a1..eda2df1a3 100644 --- a/packages/hydrooj/src/model/contest.ts +++ b/packages/hydrooj/src/model/contest.ts @@ -509,6 +509,7 @@ export const ContestHandlerMixin = (c) => class extends c { async getRawStatus(domainId: string, tid: ObjectID, docType: 30 | 60 = document.TYPE_CONTEST) { const tdoc = await get(domainId, tid, docType); if (!this.canShowScoreboard(tdoc)) throw new ContestScoreboardHiddenError(tid); + if (!this.canShowRecord(tdoc)) throw new ContestScoreboardHiddenError(tid); const tsdocs = await getMultiStatus(domainId, { docId: tid }, docType).sort(RULES[tdoc.rule].statusSort).toArray(); const uids = tsdocs.map((tsdoc) => tsdoc.uid); const [udict, pdict] = await Promise.all([