mirror of
https://gitcode.com/gh_mirrors/hy/Hydro.git
synced 2026-10-20 01:38:19 +08:00
core: rp: fix wrong contest status count (#530)
This commit is contained in:
1 parent
2731d4ba3a
commit
4df9527eac
7 files changed
+20
-5
No files matched your search
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "hydrooj",
|
"name": "hydrooj",
|
||||||
"version": "4.8.0",
|
"version": "4.8.1",
|
||||||
"bin": "bin/hydrooj.js",
|
"bin": "bin/hydrooj.js",
|
||||||
"main": "src/plugin-api",
|
"main": "src/plugin-api",
|
||||||
"module": "src/plugin-api",
|
"module": "src/plugin-api",
|
||||||
|
|||||||
@@ -785,6 +785,10 @@ export function count(domainId: string, query: any) {
|
|||||||
return document.count(domainId, document.TYPE_CONTEST, query);
|
return document.count(domainId, document.TYPE_CONTEST, query);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export function countStatus(domainId: string, query: any) {
|
||||||
|
return document.countStatus(domainId, document.TYPE_CONTEST, query);
|
||||||
|
}
|
||||||
|
|
||||||
export function getMulti(
|
export function getMulti(
|
||||||
domainId: string, query: Filter<document.DocType['30']> = {},
|
domainId: string, query: Filter<document.DocType['30']> = {},
|
||||||
) {
|
) {
|
||||||
@@ -900,6 +904,7 @@ global.Hydro.model.contest = {
|
|||||||
updateStatus,
|
updateStatus,
|
||||||
getStatus,
|
getStatus,
|
||||||
count,
|
count,
|
||||||
|
countStatus,
|
||||||
getMulti,
|
getMulti,
|
||||||
setStatus,
|
setStatus,
|
||||||
getAndListStatus,
|
getAndListStatus,
|
||||||
|
|||||||
@@ -173,6 +173,12 @@ export function count<K extends keyof DocType>(
|
|||||||
return coll.countDocuments({ ...query, docType, domainId });
|
return coll.countDocuments({ ...query, docType, domainId });
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export function countStatus<K extends keyof DocStatusType>(
|
||||||
|
domainId: string, docType: K, query?: Filter<DocStatusType[K]>,
|
||||||
|
) {
|
||||||
|
return collStatus.countDocuments({ ...query, docType, domainId });
|
||||||
|
}
|
||||||
|
|
||||||
export async function push<K extends keyof DocType>(
|
export async function push<K extends keyof DocType>(
|
||||||
domainId: string, docType: K, docId: DocType[K]['docId'],
|
domainId: string, docType: K, docId: DocType[K]['docId'],
|
||||||
key: ArrayKeys<DocType[K]>, value: DocType[K][0],
|
key: ArrayKeys<DocType[K]>, value: DocType[K][0],
|
||||||
@@ -463,6 +469,7 @@ global.Hydro.model.document = {
|
|||||||
addToSet,
|
addToSet,
|
||||||
cappedIncStatus,
|
cappedIncStatus,
|
||||||
count,
|
count,
|
||||||
|
countStatus,
|
||||||
deleteMulti,
|
deleteMulti,
|
||||||
deleteMultiStatus,
|
deleteMultiStatus,
|
||||||
deleteOne,
|
deleteOne,
|
||||||
|
|||||||
@@ -64,7 +64,7 @@ export const RpTypes: Record<string, RpDef> = {
|
|||||||
docId: tdoc.docId,
|
docId: tdoc.docId,
|
||||||
journal: { $ne: null },
|
journal: { $ne: null },
|
||||||
};
|
};
|
||||||
if (!await contest.count(tdoc.domainId, query)) continue;
|
if (!await contest.countStatus(tdoc.domainId, query)) continue;
|
||||||
const cursor = contest.getMultiStatus(tdoc.domainId, query).sort(contest.RULES[tdoc.rule].statusSort);
|
const cursor = contest.getMultiStatus(tdoc.domainId, query).sort(contest.RULES[tdoc.rule].statusSort);
|
||||||
const rankedTsdocs = await contest.RULES[tdoc.rule].ranked(tdoc, cursor);
|
const rankedTsdocs = await contest.RULES[tdoc.rule].ranked(tdoc, cursor);
|
||||||
const users = rankedTsdocs.map((i) => ({ uid: i[1].uid, rank: i[0], old: udict[i[1].uid] }));
|
const users = rankedTsdocs.map((i) => ({ uid: i[1].uid, rank: i[0], old: udict[i[1].uid] }));
|
||||||
|
|||||||
@@ -85,7 +85,11 @@ export default function ScratchpadContainer() {
|
|||||||
{Object.keys(pages).map((key) => {
|
{Object.keys(pages).map((key) => {
|
||||||
const Component = pages[key].icon;
|
const Component = pages[key].icon;
|
||||||
return (
|
return (
|
||||||
<div key={key} className={key === ui.activePage ? 'scratchpad__tab-active' : ''} onClick={() => switchToPage(key)}>
|
<div
|
||||||
|
key={key}
|
||||||
|
className={`scratchpad__tabicon-${key}${key === ui.activePage ? ' scratchpad__tab-active' : ''}`}
|
||||||
|
onClick={() => switchToPage(key)}
|
||||||
|
>
|
||||||
<Component />
|
<Component />
|
||||||
</div>
|
</div>
|
||||||
);
|
);
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "@hydrooj/ui-default",
|
"name": "@hydrooj/ui-default",
|
||||||
"version": "4.47.7",
|
"version": "4.47.8",
|
||||||
"author": "undefined <i@undefined.moe>",
|
"author": "undefined <i@undefined.moe>",
|
||||||
"license": "AGPL-3.0",
|
"license": "AGPL-3.0",
|
||||||
"main": "index.ts",
|
"main": "index.ts",
|
||||||
|
|||||||
@@ -31,7 +31,6 @@
|
|||||||
<colgroup>
|
<colgroup>
|
||||||
<col class="col--checkbox">
|
<col class="col--checkbox">
|
||||||
<col class="col--id">
|
<col class="col--id">
|
||||||
<col class="col--description">
|
|
||||||
<col class="col--users">
|
<col class="col--users">
|
||||||
</colgroup>
|
</colgroup>
|
||||||
<thead>
|
<thead>
|
||||||
|
|||||||
Reference in new issue
Block a user