mirror of
https://gitcode.com/gh_mirrors/hy/Hydro.git
synced 2026-10-17 09:36:08 +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",
|
||||
"version": "4.8.0",
|
||||
"version": "4.8.1",
|
||||
"bin": "bin/hydrooj.js",
|
||||
"main": "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);
|
||||
}
|
||||
|
||||
export function countStatus(domainId: string, query: any) {
|
||||
return document.countStatus(domainId, document.TYPE_CONTEST, query);
|
||||
}
|
||||
|
||||
export function getMulti(
|
||||
domainId: string, query: Filter<document.DocType['30']> = {},
|
||||
) {
|
||||
@@ -900,6 +904,7 @@ global.Hydro.model.contest = {
|
||||
updateStatus,
|
||||
getStatus,
|
||||
count,
|
||||
countStatus,
|
||||
getMulti,
|
||||
setStatus,
|
||||
getAndListStatus,
|
||||
|
||||
@@ -173,6 +173,12 @@ export function count<K extends keyof DocType>(
|
||||
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>(
|
||||
domainId: string, docType: K, docId: DocType[K]['docId'],
|
||||
key: ArrayKeys<DocType[K]>, value: DocType[K][0],
|
||||
@@ -463,6 +469,7 @@ global.Hydro.model.document = {
|
||||
addToSet,
|
||||
cappedIncStatus,
|
||||
count,
|
||||
countStatus,
|
||||
deleteMulti,
|
||||
deleteMultiStatus,
|
||||
deleteOne,
|
||||
|
||||
@@ -64,7 +64,7 @@ export const RpTypes: Record<string, RpDef> = {
|
||||
docId: tdoc.docId,
|
||||
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 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] }));
|
||||
|
||||
@@ -85,7 +85,11 @@ export default function ScratchpadContainer() {
|
||||
{Object.keys(pages).map((key) => {
|
||||
const Component = pages[key].icon;
|
||||
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 />
|
||||
</div>
|
||||
);
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@hydrooj/ui-default",
|
||||
"version": "4.47.7",
|
||||
"version": "4.47.8",
|
||||
"author": "undefined <i@undefined.moe>",
|
||||
"license": "AGPL-3.0",
|
||||
"main": "index.ts",
|
||||
|
||||
@@ -31,7 +31,6 @@
|
||||
<colgroup>
|
||||
<col class="col--checkbox">
|
||||
<col class="col--id">
|
||||
<col class="col--description">
|
||||
<col class="col--users">
|
||||
</colgroup>
|
||||
<thead>
|
||||
|
||||
Reference in new issue
Block a user