Browse Source

Fix status in contest page not updated when submit in NOI contests

master
Menci 8 years ago
parent
commit
723bcdd81e
  1. 2
      models/contest.js
  2. 4
      models/contest_player.js

2
models/contest.js

@ -115,8 +115,6 @@ class Contest extends Model {
} }
async newSubmission(judge_state) { async newSubmission(judge_state) {
if (judge_state.pending) return;
let problems = await this.getProblems(); let problems = await this.getProblems();
if (!problems.includes(judge_state.problem_id)) throw new ErrorMessage('当前比赛中无此题目。'); if (!problems.includes(judge_state.problem_id)) throw new ErrorMessage('当前比赛中无此题目。');

4
models/contest_player.js

@ -71,6 +71,8 @@ class ContestPlayer extends Model {
async updateScore(judge_state) { async updateScore(judge_state) {
await this.loadRelationships(); await this.loadRelationships();
if (this.contest.type === 'ioi') { if (this.contest.type === 'ioi') {
if (judge_state.pending) return;
if (!this.score_details[judge_state.problem_id]) { if (!this.score_details[judge_state.problem_id]) {
this.score_details[judge_state.problem_id] = { this.score_details[judge_state.problem_id] = {
score: judge_state.score, score: judge_state.score,
@ -113,6 +115,8 @@ class ContestPlayer extends Model {
this.score += this.score_details[x].score; this.score += this.score_details[x].score;
} }
} else if (this.contest.type === 'acm') { } else if (this.contest.type === 'acm') {
if (judge_state.pending) return;
if (!this.score_details[judge_state.problem_id]) { if (!this.score_details[judge_state.problem_id]) {
this.score_details[judge_state.problem_id] = { this.score_details[judge_state.problem_id] = {
accepted: false, accepted: false,

Loading…
Cancel
Save