修复计分板,完成OI赛制

This commit is contained in:
masnn committed 2020-04-13 19:01:20 +08:00
1 parent b66ed01fa2
commit 0aa6183804
3 files changed
+12 -18

No files matched your search

-3
View File
@@ -11,9 +11,6 @@ exports.datetime_span = function (dt, relative = true, format = '%Y-%m-%d %H:%M:
dt.format(format) dt.format(format)
); );
}; };
exports.nl2br = function (self) {
return self.replace(/\n/gm, '<br>');
};
exports.paginate = function* (page, num_pages) { exports.paginate = function* (page, num_pages) {
let radius = 2, first, last; let radius = 2, first, last;
if (page > 1) { if (page > 1) {
+6 -5
View File
@@ -22,12 +22,14 @@ module.exports = {
let columns = [ let columns = [
{ type: 'rank', value: _('Rank') }, { type: 'rank', value: _('Rank') },
{ type: 'user', value: _('User') }, { type: 'user', value: _('User') },
{ type: 'display_name', value: _('Display Name') },
{ type: 'total_score', value: _('Total Score') } { type: 'total_score', value: _('Total Score') }
]; ];
for (let i in tdoc.pids) for (let i in tdoc.pids)
if (is_export) if (is_export)
columns.push({ type: 'problem_score', value: '#{0} {1}'.format(i + 1, pdict[tdoc.pids[i]].title) }); columns.push({
type: 'problem_score',
value: '#{0} {1}'.format(i + 1, pdict[tdoc.pids[i]].title)
});
else else
columns.push({ columns.push({
type: 'problem_detail', type: 'problem_detail',
@@ -37,13 +39,12 @@ module.exports = {
let rows = [columns]; let rows = [columns];
for (let [rank, tsdoc] of ranked_tsdocs) { for (let [rank, tsdoc] of ranked_tsdocs) {
let tsddict = {}; let tsddict = {};
if (tdoc.detail) if (tsdoc.journal)
for (let item of tsdoc.detail) for (let item of tsdoc.journal)
tsddict[item.pid] = item; tsddict[item.pid] = item;
let row = []; let row = [];
row.push({ type: 'string', value: rank }); row.push({ type: 'string', value: rank });
row.push({ type: 'user', value: udict[tsdoc.uid].uname, raw: udict[tsdoc.uid] }); row.push({ type: 'user', value: udict[tsdoc.uid].uname, raw: udict[tsdoc.uid] });
row.push({ type: 'display_name', value: dudict[tsdoc.uid].display_name || '' });
row.push({ type: 'string', value: tsdoc.score || 0 }); row.push({ type: 'string', value: tsdoc.score || 0 });
for (let pid of tdoc.pids) for (let pid of tdoc.pids)
row.push({ row.push({
+6 -10
View File
@@ -4,10 +4,10 @@
<div class="row"><div class="medium-12 columns"> <div class="row"><div class="medium-12 columns">
<div class="section visible"> <div class="section visible">
<div class="section__header"> <div class="section__header">
<a class="button" target="_blank" href="{{ reverse_url('contest_scoreboard_download' if tdoc['doc_type'] == vj4.model.document.TYPE_CONTEST else 'homework_scoreboard_download', tid=tdoc['doc_id'], ext='html') }}"> <a class="button" target="_blank" href="/c/{{ tdoc._id }}/export?format=html">
<span class="icon icon-download"></span> {{ _('Export as HTML') }} <span class="icon icon-download"></span> {{ _('Export as HTML') }}
</a> </a>
<a class="button" href="{{ reverse_url('contest_scoreboard_download' if tdoc['doc_type'] == vj4.model.document.TYPE_CONTEST else 'homework_scoreboard_download', tid=tdoc['doc_id'], ext='csv') }}"> <a class="button" href="/c/{{ tdoc._id }}/export?format=csv">
<span class="icon icon-download"></span> {{ _('Export as CSV') }} <span class="icon icon-download"></span> {{ _('Export as CSV') }}
</a> </a>
</div> </div>
@@ -32,20 +32,16 @@
</tr> </tr>
</thead> </thead>
<tbody> <tbody>
{%- for i, row in rows -%}{% if i>0 %} {%- for row in rows -%}{% if loop.index0>0 %}
<tr> <tr>
{%- for column in row -%} {%- for column in row -%}
<td class="col--{{ rows[0][loop.index0]['type'] }}"> <td class="col--{{ rows[0][loop.index0]['type'] }}">
{% if column.type == 'user' %} {% if column.type == 'user' %}
{{ user.render_inline(column.raw, badge=false) }} {{ user.render_inline(column.raw, badge=false) }}
{% elif column.type == 'record' %} {% elif column.type == 'record' and column.raw %}
{% if column.raw %} <a href="/r/{{ column.raw }}">{{ column.value }}</a>
<a href="/r/{{ column.raw }}">{{ column.value|nl2br }}</a>
{% else %} {% else %}
{{ column['value']|nl2br }} {{ column.value }}
{% endif %}
{% else %}
{{ column['value']|nl2br }}
{% endif %} {% endif %}
</td> </td>
{%- endfor -%} {%- endfor -%}