From 3487ba34418db5d47a165809fd0e62f2e8032b15 Mon Sep 17 00:00:00 2001 From: undefined Date: Sun, 17 Oct 2021 22:05:18 +0800 Subject: [PATCH] core: show dcnt and scnt --- packages/hydrooj/package.json | 2 +- packages/hydrooj/src/handler/problem.ts | 7 +++++++ packages/ui-default/package.json | 2 +- packages/ui-default/pages/problem_sidebar.page.ts | 2 +- .../templates/partials/problem_sidebar_normal.html | 4 ++-- 5 files changed, 12 insertions(+), 5 deletions(-) diff --git a/packages/hydrooj/package.json b/packages/hydrooj/package.json index 8440c6245..d580fe117 100644 --- a/packages/hydrooj/package.json +++ b/packages/hydrooj/package.json @@ -1,6 +1,6 @@ { "name": "hydrooj", - "version": "2.39.29", + "version": "2.39.30", "bin": "bin/hydrooj.js", "main": "src/loader", "module": "src/loader", diff --git a/packages/hydrooj/src/handler/problem.ts b/packages/hydrooj/src/handler/problem.ts index 77324dd8e..f37e5e4a5 100644 --- a/packages/hydrooj/src/handler/problem.ts +++ b/packages/hydrooj/src/handler/problem.ts @@ -17,6 +17,7 @@ import paginate from '../lib/paginate'; import { isPid, parsePid as convertPid } from '../lib/validator'; import { PERM, PRIV } from '../model/builtin'; import * as contest from '../model/contest'; +import * as discussion from '../model/discussion'; import domain from '../model/domain'; import problem from '../model/problem'; import record from '../model/record'; @@ -223,11 +224,17 @@ export class ProblemDetailHandler extends ProblemHandler { problem.getStatus(domainId, this.pdoc.docId, this.user._id), user.getById(domainId, this.pdoc.owner), ]); + const [scnt, dcnt] = await Promise.all([ + solution.count(domainId, { parentId: this.pdoc.docId }), + discussion.count(domainId, { parentId: this.pdoc.docId }), + ]); this.response.body = { pdoc: this.pdoc, udoc: this.udoc, psdoc: this.psdoc, title: this.pdoc.title, + solutionCount: scnt, + discussionCount: dcnt, }; this.extraTitleContent = this.pdoc.title; } diff --git a/packages/ui-default/package.json b/packages/ui-default/package.json index 7bc80a3b3..a06a88116 100644 --- a/packages/ui-default/package.json +++ b/packages/ui-default/package.json @@ -1,6 +1,6 @@ { "name": "@hydrooj/ui-default", - "version": "4.25.9", + "version": "4.25.10", "author": "undefined ", "license": "AGPL-3.0", "main": "hydro.js", diff --git a/packages/ui-default/pages/problem_sidebar.page.ts b/packages/ui-default/pages/problem_sidebar.page.ts index 0fc3cf3cd..9de87123f 100644 --- a/packages/ui-default/pages/problem_sidebar.page.ts +++ b/packages/ui-default/pages/problem_sidebar.page.ts @@ -5,7 +5,7 @@ import { ConfirmDialog } from 'vj/components/dialog'; const page = new NamedPage([ 'problem_create', 'problem_edit', 'problem_solution', 'problem_submit', - 'problem_files', 'discussion_node', 'discussion_detail', + 'problem_files', 'problem_detail', 'discussion_node', 'discussion_detail', ], () => { $(document).on('click', '[name="problem-sidebar__show-category"]', (ev) => { $(ev.currentTarget).hide(); diff --git a/packages/ui-default/templates/partials/problem_sidebar_normal.html b/packages/ui-default/templates/partials/problem_sidebar_normal.html index 2f0791c40..c9b733dc6 100644 --- a/packages/ui-default/templates/partials/problem_sidebar_normal.html +++ b/packages/ui-default/templates/partials/problem_sidebar_normal.html @@ -67,12 +67,12 @@ {% endif %} {% if handler.user.hasPerm(perm.PERM_VIEW_DISCUSSION) %} {% endif %} {% if handler.user.hasPerm(perm.PERM_VIEW_PROBLEM_SOLUTION) %} {% endif %}