diff --git a/packages/hydrooj/package.json b/packages/hydrooj/package.json index 42dcd2736..e624f066c 100644 --- a/packages/hydrooj/package.json +++ b/packages/hydrooj/package.json @@ -1,6 +1,6 @@ { "name": "hydrooj", - "version": "3.14.5", + "version": "3.14.6", "bin": "bin/hydrooj.js", "main": "src/loader", "module": "src/loader", diff --git a/packages/hydrooj/src/handler/contest.ts b/packages/hydrooj/src/handler/contest.ts index 31522f3eb..8c33d536e 100644 --- a/packages/hydrooj/src/handler/contest.ts +++ b/packages/hydrooj/src/handler/contest.ts @@ -237,7 +237,11 @@ export class ContestEditHandler extends Handler { async get(domainId: string, tid: ObjectID) { this.response.template = 'contest_edit.html'; const rules = {}; - for (const i in contest.RULES) rules[i] = contest.RULES[i].TEXT; + for (const i in contest.RULES) { + if (!contest.RULES[i].hidden) { + rules[i] = contest.RULES[i].TEXT; + } + } let ts = Date.now(); ts = ts - (ts % (15 * Time.minute)) + 15 * Time.minute; this.response.body = { @@ -256,7 +260,7 @@ export class ContestEditHandler extends Handler { @param('duration', Types.Float) @param('title', Types.Title) @param('content', Types.Content) - @param('rule', Types.Range(Object.keys(contest.RULES).filter((i) => i !== 'homework'))) + @param('rule', Types.Range(Object.keys(contest.RULES).filter((i) => !contest.RULES[i].hidden))) @param('pids', Types.Content) @param('rated', Types.Boolean) @param('code', Types.String, true) diff --git a/packages/hydrooj/src/interface.ts b/packages/hydrooj/src/interface.ts index df67241c5..37f398a27 100644 --- a/packages/hydrooj/src/interface.ts +++ b/packages/hydrooj/src/interface.ts @@ -481,6 +481,7 @@ export interface ContestStat extends Record { export interface ContestRule { _originalRule?: Partial>; TEXT: string; + hidden?: boolean; check: (args: any) => any; statusSort: any; submitAfterAccept: boolean; diff --git a/packages/hydrooj/src/model/contest.ts b/packages/hydrooj/src/model/contest.ts index 52ebf24d0..b8733b648 100644 --- a/packages/hydrooj/src/model/contest.ts +++ b/packages/hydrooj/src/model/contest.ts @@ -302,6 +302,7 @@ const ioi = buildContestRule({ const homework = buildContestRule({ TEXT: 'Assignment', + hidden: true, check: () => { }, submitAfterAccept: false, statusSort: { penaltyScore: -1, time: 1 },