def post(self, *, rid: objectid.ObjectId, score: int, message: str=''):
rdoc = await record.get(rid)
if rdoc['domain_id'] == self.domain_id:
self.check_perm(builtin.PERM_REJUDGE)
else:
self.check_priv(builtin.PRIV_REJUDGE)
await record.rejudge(rdoc['_id'], False)
await record.begin_judge(rid, self.user['_id'], self.user['_id'],
constant.record.STATUS_FETCHED)
update = {'$set': {}, '$push': {}}
update['$set']['status'] = constant.record.STATUS_ACCEPTED if score == 100 \
else constant.record.STATUS_WRONG_ANSWER
update['$push']['cases'] = {
'status': update['$set']['status'],
'score': score,
'time_ms': 0,
'memory_kb': 0,
'judge_text': message,
}
await record.next_judge(rid, self.user['_id'], self.user['_id'], **update)
rdoc = await record.end_judge(rid, self.user['_id'], self.user['_id'],
update['$set']['status'], score, 0, 0)
await _post_judge(self, rdoc)
self.json_or_redirect(self.referer_or_main)
评论列表
文章目录