Merge branch 'master' of https://github.com/LQDJudge/online-judge
This commit is contained in:
commit
02ba30a29e
9 changed files with 510 additions and 445 deletions
File diff suppressed because it is too large
Load diff
File diff suppressed because one or more lines are too long
|
@ -792,10 +792,34 @@ ul.errorlist {
|
||||||
align-self: center !important;
|
align-self: center !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
.a-problem {
|
.link-row {
|
||||||
font-size: 15px;
|
display: flex;
|
||||||
line-height: 1.8;
|
align-items: center;
|
||||||
|
padding: 6px;
|
||||||
font-weight: normal;
|
font-weight: normal;
|
||||||
|
cursor: pointer;
|
||||||
|
transition: background-color 0.3s;
|
||||||
|
|
||||||
|
a {
|
||||||
|
color: inherit;
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
width: 100%;
|
||||||
|
text-decoration: none;
|
||||||
|
|
||||||
|
i {
|
||||||
|
width: 1.5em;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
span {
|
||||||
|
flex-grow: 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
&:hover {
|
||||||
|
color: $theme_color;
|
||||||
|
background-color: #f8f8f2;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
a {
|
a {
|
||||||
|
|
|
@ -53,7 +53,7 @@
|
||||||
{% if actionbar_report_url %}
|
{% if actionbar_report_url %}
|
||||||
<span class="actionbar-block">
|
<span class="actionbar-block">
|
||||||
<a class="actionbar-button black" href="{{actionbar_report_url}}">
|
<a class="actionbar-button black" href="{{actionbar_report_url}}">
|
||||||
<i class="fa fa-flag-o" style="font-size: large;"></i>
|
<i class="fa fa-flag" style="font-size: large;"></i>
|
||||||
<span class="actionbar-text">{{_("Report")}}</span>
|
<span class="actionbar-text">{{_("Report")}}</span>
|
||||||
</a>
|
</a>
|
||||||
</span>
|
</span>
|
||||||
|
|
|
@ -24,7 +24,8 @@
|
||||||
</form>
|
</form>
|
||||||
{% else %}
|
{% else %}
|
||||||
<a href="{{ url('request_organization', organization.id, organization.slug) }}"
|
<a href="{{ url('request_organization', organization.id, organization.slug) }}"
|
||||||
class="unselectable button">{{ _('Request membership') }}</a>
|
class="unselectable button">
|
||||||
|
{{ _('Request membership') }}</a>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -4,71 +4,64 @@
|
||||||
<h3><i class="fa fa-cog"></i>{{ _('Controls') }}</h3>
|
<h3><i class="fa fa-cog"></i>{{ _('Controls') }}</h3>
|
||||||
<ul id="control-list" class="sidebox-content" style="margin: 0;">
|
<ul id="control-list" class="sidebox-content" style="margin: 0;">
|
||||||
{% if can_edit %}
|
{% if can_edit %}
|
||||||
<li>
|
<div class="link-row">
|
||||||
<div>
|
<a href="{{ url('edit_organization', organization.id, organization.slug) }}">
|
||||||
<a href="{{ url('edit_organization', organization.id, organization.slug) }}">{{ _('Edit group') }}</a>
|
<i class="fa fa-edit"></i>{{ _('Edit group') }}</a>
|
||||||
</div>
|
</div>
|
||||||
</li>
|
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% if can_edit and not organization.is_open %}
|
{% if can_edit and not organization.is_open %}
|
||||||
<li>
|
<div class="link-row">
|
||||||
<div>
|
<a href="{{ url('organization_requests_pending', organization.id, organization.slug) }}">
|
||||||
<a href="{{ url('organization_requests_pending', organization.id, organization.slug) }}">{{ _('View requests') }}</a>
|
<i class="fa fa-inbox"></i>{{ _('View requests') }}</a>
|
||||||
{% if pending_count > 0 %}
|
{% if pending_count > 0 %}
|
||||||
<span id="pending-count-box">
|
<span id="pending-count-box">
|
||||||
{{pending_count}}
|
{{pending_count}}
|
||||||
</span>
|
</span>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
</div>
|
</div>
|
||||||
</li>
|
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% if can_edit %}
|
{% if can_edit %}
|
||||||
<li>
|
<div class="link-row">
|
||||||
<div>
|
<a href="{{ url('add_organization_member', organization.id, organization.slug) }}">
|
||||||
<a href="{{ url('add_organization_member', organization.id, organization.slug) }}">{{ _('Add members') }}</a>
|
<i class="fa fa-user-plus"></i>{{ _('Add members') }}</a>
|
||||||
</div>
|
</div>
|
||||||
</li>
|
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% if is_member %}
|
{% if is_member %}
|
||||||
<li>
|
<div class="link-row">
|
||||||
<div>
|
<a href="{{ url('add_organization_blog', organization.id, organization.slug) }}">
|
||||||
<a href="{{ url('add_organization_blog', organization.id, organization.slug) }}">{{ _('Add blog') }}</a>
|
<i class="fa fa-pencil"></i>{{ _('Add blog') }}</a>
|
||||||
</div>
|
</div>
|
||||||
</li>
|
|
||||||
{% endif %}
|
{% endif %}
|
||||||
<li>
|
<div class="link-row">
|
||||||
<div>
|
<a href="{{ url('organization_pending_blogs', organization.id, organization.slug) }}">
|
||||||
<a href="{{ url('organization_pending_blogs', organization.id, organization.slug) }}">{{ _('Pending blogs') }}</a>
|
<i class="fa fa-clipboard-list"></i>{{ _('Pending blogs') }}</a>
|
||||||
{% if pending_blog_count > 0 %}
|
{% if pending_blog_count > 0 %}
|
||||||
<span id="pending-count-box">
|
<span id="pending-count-box">
|
||||||
{{pending_blog_count}}
|
{{pending_blog_count}}
|
||||||
</span>
|
</span>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
</div>
|
</div>
|
||||||
</li>
|
|
||||||
{% if can_edit %}
|
{% if can_edit %}
|
||||||
<li>
|
<div class="link-row">
|
||||||
<div>
|
<a href="{{ url('organization_contest_add', organization.id, organization.slug) }}">
|
||||||
<a href="{{ url('organization_contest_add', organization.id, organization.slug) }}">{{ _('Add contest') }}</a>
|
<i class="fa fa-calendar-plus"></i>{{ _('Add contest') }}</a>
|
||||||
</div>
|
</div>
|
||||||
</li>
|
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% if is_member %}
|
{% if is_member %}
|
||||||
<li>
|
<div class="link-row">
|
||||||
<div>
|
|
||||||
<a href="{{ organization_subdomain }}" target="_blank">
|
<a href="{{ organization_subdomain }}" target="_blank">
|
||||||
{{_('Subdomain')}}
|
<i class="fa fa-globe"></i>{{_('Subdomain')}}
|
||||||
</a>
|
</a>
|
||||||
</div>
|
</div>
|
||||||
</li>
|
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% if is_member and not is_admin %}
|
{% if is_member and not is_admin %}
|
||||||
<li>
|
<div class="link-row" style="color: red;">
|
||||||
<form method="post" action="{{ url('leave_organization', organization.id, organization.slug) }}">
|
<form method="post" action="{{ url('leave_organization', organization.id, organization.slug) }}">
|
||||||
{% csrf_token %}
|
{% csrf_token %}
|
||||||
<a href="#" class="leave-organization">{{ _('Leave group') }}</a>
|
<a href="#" class="leave-organization">
|
||||||
|
<i class="fa fa-sign-out-alt"></i>{{ _('Leave group') }}</a>
|
||||||
</form>
|
</form>
|
||||||
</li>
|
</div>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -131,7 +131,7 @@
|
||||||
<a id="pdf_button" class="view-pdf" href='#'>
|
<a id="pdf_button" class="view-pdf" href='#'>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
<span class="pdf-icon">
|
<span class="pdf-icon">
|
||||||
<span class="fa fa-file-pdf-o pdf-icon-logo"></span>
|
<span class="fa fa-file-pdf pdf-icon-logo"></span>
|
||||||
<span class="pdf-icon-bar"></span>
|
<span class="pdf-icon-bar"></span>
|
||||||
</span>
|
</span>
|
||||||
{{ _('View as PDF') }}
|
{{ _('View as PDF') }}
|
||||||
|
@ -147,7 +147,7 @@
|
||||||
<button class="btn-green btn btn-primary btn-block btn-round">
|
<button class="btn-green btn btn-primary btn-block btn-round">
|
||||||
<span>{{ _('Submit') }}</span>
|
<span>{{ _('Submit') }}</span>
|
||||||
<div class="icon icon-round d-flex align-items-center justify-content-center">
|
<div class="icon icon-round d-flex align-items-center justify-content-center">
|
||||||
<i class="fa fa-send"></i>
|
<i class="fa fa-paper-plane"></i>
|
||||||
</div>
|
</div>
|
||||||
</button>
|
</button>
|
||||||
</a>
|
</a>
|
||||||
|
@ -162,7 +162,7 @@
|
||||||
<button class="btn btn-disabled btn-block btn-round">
|
<button class="btn btn-disabled btn-block btn-round">
|
||||||
<span>{{ _('Submit') }}</span>
|
<span>{{ _('Submit') }}</span>
|
||||||
<div class="icon icon-round d-flex align-items-center justify-content-center">
|
<div class="icon icon-round d-flex align-items-center justify-content-center">
|
||||||
<i class="fa fa-send"></i>
|
<i class="fa fa-paper-plane"></i>
|
||||||
</div>
|
</div>
|
||||||
</button>
|
</button>
|
||||||
<div class="no-submissions-left submissions-left">{{ _('0 submissions left') }}</div>
|
<div class="no-submissions-left submissions-left">{{ _('0 submissions left') }}</div>
|
||||||
|
@ -172,7 +172,7 @@
|
||||||
<button class="btn-green btn btn-primary btn-block btn-round">
|
<button class="btn-green btn btn-primary btn-block btn-round">
|
||||||
<span>{{ _('Submit') }}</span>
|
<span>{{ _('Submit') }}</span>
|
||||||
<div class="icon icon-round d-flex align-items-center justify-content-center">
|
<div class="icon icon-round d-flex align-items-center justify-content-center">
|
||||||
<i class="fa fa-send"></i>
|
<i class="fa fa-paper-plane"></i>
|
||||||
</div>
|
</div>
|
||||||
</button>
|
</button>
|
||||||
</a>
|
</a>
|
||||||
|
@ -181,55 +181,85 @@
|
||||||
<hr style="padding-bottom: 0.3em">
|
<hr style="padding-bottom: 0.3em">
|
||||||
|
|
||||||
{% if request.user.is_authenticated and has_submissions %}
|
{% if request.user.is_authenticated and has_submissions %}
|
||||||
<div>
|
<div class="link-row">
|
||||||
<a class="a-problem" href="{{ url('user_submissions', problem.code, request.user.username) }}">{{ _('My submissions') }}</a>
|
<a href="{{url('user_submissions', problem.code, request.user.username) }}">
|
||||||
</div>
|
<i class="fa fa-address-book"></i><span> {{ _('My submissions') }}</span>
|
||||||
{% endif %}
|
</a>
|
||||||
<div><a class="a-problem" href="{{ url('chronological_submissions', problem.code) }}">{{ _('All submissions') }}</a></div>
|
</div>
|
||||||
<div><a class="a-problem" href="{{ url('ranked_submissions', problem.code) }}">{{ _('Best submissions') }}</a></div>
|
{% endif %}
|
||||||
{% if editorial and editorial.is_public and
|
<div class="link-row">
|
||||||
not (request.user.is_authenticated and request.in_contest_mode) %}
|
<a href="{{ url('chronological_submissions', problem.code) }}">
|
||||||
<hr>
|
<i class="fa fa-rectangle-list"></i><span> {{ _('All submissions') }}</span>
|
||||||
<div><a class="a-problem" href="{{ url('problem_editorial', problem.code) }}">{{ _('Read editorial') }}</a></div>
|
</a>
|
||||||
{% endif %}
|
</div>
|
||||||
{% if can_edit_problem %}
|
<div class="link-row">
|
||||||
<hr>
|
<a href="{{ url('ranked_submissions', problem.code) }}">
|
||||||
<div>
|
<i class="fa fa-list-check"></i><span> {{ _('Best submissions') }}</span>
|
||||||
<a class="a-problem" href="{{ url('problem_ticket_list', problem.code) }}">{{ _('Manage tickets') }}
|
</a>
|
||||||
{% if num_open_tickets %}<span class="badge">{{ num_open_tickets }}</span>{% endif %}
|
</div>
|
||||||
|
{% if editorial and editorial.is_public and not (request.user.is_authenticated and request.in_contest_mode) %}
|
||||||
|
<hr>
|
||||||
|
<div class="link-row">
|
||||||
|
<a href="{{ url('problem_editorial', problem.code) }}">
|
||||||
|
<i class="fa fa-newspaper"></i><span> {{ _('Read editorial') }}</span>
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
{% if can_edit_problem %}
|
||||||
|
<hr>
|
||||||
|
<div class="link-row">
|
||||||
|
<a href="{{ url('problem_ticket_list', problem.code) }}">
|
||||||
|
<i class="fa fa-clipboard-list"></i><span> {{ _('Manage tickets') }}
|
||||||
|
{% if num_open_tickets %}<span class="badge">{{ num_open_tickets }}</span>{% endif %}
|
||||||
|
</span>
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
<div class="link-row">
|
||||||
|
<a href="{{ url('admin:judge_problem_change', problem.id) }}">
|
||||||
|
<i class="fa fa-edit"></i><span> {{ _('Edit problem') }}</span>
|
||||||
</a>
|
</a>
|
||||||
</div>
|
</div>
|
||||||
<div><a class="a-problem" href="{{ url('admin:judge_problem_change', problem.id) }}">{{ _('Edit problem') }}</a></div>
|
|
||||||
{% if not problem.is_manually_managed %}
|
{% if not problem.is_manually_managed %}
|
||||||
<div><a class="a-problem" href="{{ url('problem_data', problem.code) }}">{{ _('Edit test data') }}</a></div>
|
<div class="link-row">
|
||||||
{% endif %}
|
<a href="{{ url('problem_data', problem.code) }}">
|
||||||
{% elif request.user.is_authenticated and has_tickets %}
|
<i class="fa fa-database"></i><span> {{ _('Edit test data') }}</span>
|
||||||
<hr>
|
|
||||||
<div>
|
|
||||||
<a class="a-problem" href="{{ url('problem_ticket_list', problem.code) }}">{{ _('My tickets') }}
|
|
||||||
{% if num_open_tickets %}<span class="badge">{{ num_open_tickets }}</span>{% endif %}
|
|
||||||
</a>
|
</a>
|
||||||
</div>
|
</div>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
{% elif request.user.is_authenticated and has_tickets %}
|
||||||
{% if problem.is_subs_manageable_by(request.user) %}
|
<hr>
|
||||||
<div>
|
<div class="link-row">
|
||||||
<a class="a-problem" href="{{ url('problem_manage_submissions', problem.code) }}">{{ _('Manage submissions') }}</a>
|
<a href="{{ url('problem_ticket_list', problem.code) }}">
|
||||||
|
<i class="fa fa-inbox"></i><span> {{ _('My tickets') }}
|
||||||
|
{% if num_open_tickets %}<span class="badge">{{ num_open_tickets }}</span>{% endif %}
|
||||||
|
</span>
|
||||||
|
</a>
|
||||||
</div>
|
</div>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
{% if perms.judge.clone_problem %}
|
{% if problem.is_subs_manageable_by(request.user) %}
|
||||||
<div>
|
<div class="link-row">
|
||||||
<a class="a-problem" href="{{ url('problem_clone', problem.code) }}">{{ _('Clone problem') }}</a>
|
<a href="{{ url('problem_manage_submissions', problem.code) }}">
|
||||||
|
<i class="fas fa-table"></i><span> {{ _('Manage submissions') }}</span>
|
||||||
|
</a>
|
||||||
</div>
|
</div>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
{% if problem.language_time_limit or problem.language_memory_limit %}
|
{% if perms.judge.clone_problem %}
|
||||||
|
<div class="link-row">
|
||||||
|
<a href="{{ url('problem_clone', problem.code) }}">
|
||||||
|
<i class="fas fa-clone"></i><span> {{ _('Clone problem') }}</span>
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
{% if problem.language_time_limit or problem.language_memory_limit %}
|
||||||
<hr style="padding-top: 0.3em">
|
<hr style="padding-top: 0.3em">
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% if problem.language_time_limit %}
|
{% if problem.language_time_limit %}
|
||||||
<div class="problem-info-entry">
|
<div class="problem-info-entry">
|
||||||
<i class="fa fa-clock-o fa-fw"></i><span class="pi-name">{{ _('Time limit:') }}</span>
|
<i class="fa fa-clock"></i><span class="pi-name"> {{ _('Time limit:') }}</span>
|
||||||
</div>
|
</div>
|
||||||
<div class="problem-lang-limits">
|
<div class="problem-lang-limits">
|
||||||
{% for name, limit in problem.language_time_limit %}
|
{% for name, limit in problem.language_time_limit %}
|
||||||
|
@ -239,10 +269,10 @@
|
||||||
</div>
|
</div>
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
</div>
|
</div>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% if problem.language_memory_limit %}
|
{% if problem.language_memory_limit %}
|
||||||
<div class="problem-info-entry">
|
<div class="problem-info-entry">
|
||||||
<i class="fa fa-server fa-fw"></i><span class="pi-name">{{ _('Memory limit:') }}</span>
|
<i class="fa fa-server"></i><span class="pi-name"> {{ _('Memory limit:') }}</span>
|
||||||
</div>
|
</div>
|
||||||
<div class="problem-lang-limits">
|
<div class="problem-lang-limits">
|
||||||
{% for name, limit in problem.language_memory_limit %}
|
{% for name, limit in problem.language_memory_limit %}
|
||||||
|
@ -252,15 +282,15 @@
|
||||||
</div>
|
</div>
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
</div>
|
</div>
|
||||||
{% endif%}
|
{% endif%}
|
||||||
|
|
||||||
<hr style="padding-top: 0.7em">
|
<hr style="padding-top: 0.7em">
|
||||||
|
|
||||||
{% with authors=problem.get_authors() %}
|
{% with authors=problem.get_authors() %}
|
||||||
{% if authors %}
|
{% if authors %}
|
||||||
<div class="problem-info-entry">
|
<div class="problem-info-entry">
|
||||||
<i class="far fa-pen-to-square"></i><span
|
<i class="far fa-pen-to-square"></i><span
|
||||||
class="pi-name">{% trans trimmed count=authors|length %}
|
class="pi-name"> {% trans trimmed count=authors|length %}
|
||||||
Author:
|
Author:
|
||||||
{% pluralize count %}
|
{% pluralize count %}
|
||||||
Authors:
|
Authors:
|
||||||
|
@ -268,13 +298,13 @@
|
||||||
<div class="pi-value authors-value">{{ link_users(authors) }}</div>
|
<div class="pi-value authors-value">{{ link_users(authors) }}</div>
|
||||||
</div>
|
</div>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% endwith %}
|
{% endwith %}
|
||||||
|
|
||||||
{% if not contest_problem or not contest_problem.contest.hide_problem_tags %}
|
{% if not contest_problem or not contest_problem.contest.hide_problem_tags %}
|
||||||
<div id="problem-types">
|
<div id="problem-types">
|
||||||
{% with types=problem.types_list %}
|
{% with types=problem.types_list %}
|
||||||
<div class="toggle closed unselectable">
|
<div class="toggle closed unselectable">
|
||||||
<i class="fa fa-chevron-right fa-fw"></i>{% trans trimmed count=problem.types_list|length %}
|
<i class="fa fa-chevron-right"></i> {% trans trimmed count=problem.types_list|length %}
|
||||||
Problem type
|
Problem type
|
||||||
{% pluralize count %}
|
{% pluralize count %}
|
||||||
Problem types
|
Problem types
|
||||||
|
@ -283,11 +313,11 @@
|
||||||
<div style="display:none" class="toggled">{{ problem.types_list|join(", ") }}</div>
|
<div style="display:none" class="toggled">{{ problem.types_list|join(", ") }}</div>
|
||||||
{% endwith %}
|
{% endwith %}
|
||||||
</div>
|
</div>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% if show_languages %}
|
{% if show_languages %}
|
||||||
<div id="allowed-langs">
|
<div id="allowed-langs">
|
||||||
<div class="toggle open unselectable">
|
<div class="toggle open unselectable">
|
||||||
<i class="fa fa-chevron-right fa-fw"></i>{{ _('Allowed languages') }}
|
<i class="fa fa-chevron-right"></i> {{ _('Allowed languages') }}
|
||||||
</div>
|
</div>
|
||||||
<div class="toggled">
|
<div class="toggled">
|
||||||
{% with usable=problem.usable_common_names, langs=problem.languages_list() %}
|
{% with usable=problem.usable_common_names, langs=problem.languages_list() %}
|
||||||
|
@ -302,12 +332,12 @@
|
||||||
{% endwith %}
|
{% endwith %}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% if problem.is_editable_by(request.user) %}
|
{% if problem.is_editable_by(request.user) %}
|
||||||
<div id="available-judges">
|
<div id="available-judges">
|
||||||
<div class="toggle closed" id="judge-toggle">
|
<div class="toggle closed" id="judge-toggle">
|
||||||
<i class="fa fa-chevron-right fa-fw"></i><span
|
<i class="fa fa-chevron-right"></i><span
|
||||||
class="pi-name">{% trans trimmed count=available_judges|length %}
|
class="pi-name"> {% trans trimmed count=available_judges|length %}
|
||||||
Judge
|
Judge
|
||||||
{% pluralize count %}
|
{% pluralize count %}
|
||||||
Judges
|
Judges
|
||||||
|
@ -329,7 +359,7 @@
|
||||||
{% endif %}
|
{% endif %}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|
||||||
{% block description %}
|
{% block description %}
|
||||||
|
@ -345,7 +375,7 @@
|
||||||
{% endif %}
|
{% endif %}
|
||||||
<div class = "new-problem-info d-flex-problem">
|
<div class = "new-problem-info d-flex-problem">
|
||||||
<span class="info-block">
|
<span class="info-block">
|
||||||
<i class="fa fa-check fa-fw"></i><span class="pi-name">{{ _('Points:') }}</span>
|
<i class="fa fa-check"></i><span class="pi-name"> {{ _('Points:') }}</span>
|
||||||
<span class="new-pi-value">
|
<span class="new-pi-value">
|
||||||
{% if contest_problem %}
|
{% if contest_problem %}
|
||||||
{{ contest_problem.points }} {% if contest_problem.partial %}(p){% endif %}
|
{{ contest_problem.points }} {% if contest_problem.partial %}(p){% endif %}
|
||||||
|
@ -356,24 +386,24 @@
|
||||||
</span>
|
</span>
|
||||||
|
|
||||||
<span class="info-block">
|
<span class="info-block">
|
||||||
<i class="fa fa-clock-o fa-fw"></i><span class="pi-name">{{ _('Time limit:') }}</span>
|
<i class="fa fa-clock"></i><span class="pi-name"> {{ _('Time limit:') }}</span>
|
||||||
<span class="new-pi-value">{{ problem.time_limit }}s</span>
|
<span class="new-pi-value">{{ problem.time_limit }}s</span>
|
||||||
</span>
|
</span>
|
||||||
|
|
||||||
<span class="info-block">
|
<span class="info-block">
|
||||||
<i class="fa fa-server fa-fw"></i><span class="pi-name">{{ _('Memory limit:') }}</span>
|
<i class="fa fa-server"></i><span class="pi-name"> {{ _('Memory limit:') }}</span>
|
||||||
<span class="new-pi-value">{{ problem.memory_limit|kbsimpleformat }}</span>
|
<span class="new-pi-value">{{ problem.memory_limit|kbsimpleformat }}</span>
|
||||||
</span>
|
</span>
|
||||||
|
|
||||||
<span class="info-block">
|
<span class="info-block">
|
||||||
<i class="fa fa-file-o fa-fw"></i><span class="pi-name">{{ _('Input:') }}</span>
|
<i class="fa fa-file"></i><span class="pi-name"> {{ _('Input:') }}</span>
|
||||||
<span class="new-pi-value">
|
<span class="new-pi-value">
|
||||||
{{ fileio_input or _('stdin') }}
|
{{ fileio_input or _('stdin') }}
|
||||||
</span>
|
</span>
|
||||||
</span>
|
</span>
|
||||||
|
|
||||||
<span>
|
<span>
|
||||||
<i class="fa fa-file fa-fw"></i><span class="pi-name">{{ _('Output:') }}</span>
|
<i class="fa fa-file"></i><span class="pi-name"> {{ _('Output:') }}</span>
|
||||||
<span class="new-pi-value">{{ fileio_output or _('stdout') }}</span>
|
<span class="new-pi-value">{{ fileio_output or _('stdout') }}</span>
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -135,19 +135,23 @@
|
||||||
{% block body %}
|
{% block body %}
|
||||||
<div style="clear: both"></div>
|
<div style="clear: both"></div>
|
||||||
<br>
|
<br>
|
||||||
|
<div style="width: fit-content;">
|
||||||
{% if request.profile == submission.user or perms.judge.resubmit_other %}
|
{% if request.profile == submission.user or perms.judge.resubmit_other %}
|
||||||
<div><a href="{{ url('problem_submit', submission.problem.code, submission.id) }}">{{ _('Resubmit') }}</a></div>
|
<div class="link-row"><a href="{{ url('problem_submit', submission.problem.code, submission.id) }}">
|
||||||
|
<i class="fa fa-upload"></i>{{ _('Resubmit') }}</a></div>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% if perms.judge.rejudge_submission %}
|
{% if perms.judge.rejudge_submission %}
|
||||||
<div>
|
<div class="link-row">
|
||||||
<form action="{{ url('submission_rejudge') }}" method="post">
|
<form action="{{ url('submission_rejudge') }}" method="post">
|
||||||
{% csrf_token %}
|
{% csrf_token %}
|
||||||
<a href="#" onclick="parentNode.submit()">{{ _('Rejudge') }}</a>
|
<a href="#" onclick="parentNode.submit()">
|
||||||
|
<i class="fa fa-rotate-right"></i>{{ _('Rejudge') }}</a>
|
||||||
<input type="hidden" name="id" value="{{ submission.id }}">
|
<input type="hidden" name="id" value="{{ submission.id }}">
|
||||||
<input type="hidden" name="path" value="{{ url('submission_status', submission.id) }}">
|
<input type="hidden" name="path" value="{{ url('submission_status', submission.id) }}">
|
||||||
</form>
|
</form>
|
||||||
</div>
|
</div>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
</div>
|
||||||
|
|
||||||
<br>
|
<br>
|
||||||
<h3 id="source-header" class="toggle closed"><i class="fa fa-chevron-right fa-fw"></i>{{_('Source code')}}</h3>
|
<h3 id="source-header" class="toggle closed"><i class="fa fa-chevron-right fa-fw"></i>{{_('Source code')}}</h3>
|
||||||
|
|
|
@ -112,7 +112,7 @@
|
||||||
{% if request.user.is_authenticated and request.profile != user %}
|
{% if request.user.is_authenticated and request.profile != user %}
|
||||||
<br>
|
<br>
|
||||||
<button class="small btn-midnightblue" style="width:100%" id="message-button">
|
<button class="small btn-midnightblue" style="width:100%" id="message-button">
|
||||||
{{ _('Send message') }}
|
<i class="fa fa-envelope"></i> {{ _('Message') }}
|
||||||
</button>
|
</button>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue