You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
137 lines
6.9 KiB
HTML
137 lines
6.9 KiB
HTML
{% import "components/user.html" as user with context %}
|
|
{% import "components/problem.html" as problem with context %}
|
|
<div class="section side section--problem-sidebar">
|
|
{% if page_name != 'problem_detail' and page_name != 'contest_detail_problem' %}
|
|
<div class="section__header">
|
|
<h1 class="section__title">{{ pdoc['title'] }}</h1>
|
|
</div>
|
|
{% endif %}
|
|
<div>
|
|
<ol class="menu">
|
|
{% if page_name == 'discussion_node' or page_name == 'discussion_detail' %}
|
|
{% if handler.user.hasPerm(perm.PERM_CREATE_DISCUSSION) %}
|
|
<li class="menu__item"><a class="menu__link highlight" href="{{ url('discussion_create', type='problem', name=pdoc.docId) }}">
|
|
<span class="icon icon-add"></span> {{ _('Create a Discussion') }}
|
|
</a></li>
|
|
{% else %}
|
|
{% if not handler.user.hasPriv(PRIV.PRIV_USER_PROFILE) %}
|
|
<li class="menu__item"><a class="menu__link" href="javascript:showSignInDialog();">
|
|
<span class="icon icon-add"></span> {{ _('Login to Create a Discussion') }}</a></li>
|
|
{% else %}
|
|
<li class="menu__item"><a class="menu__link disabled" href="javascript:;">
|
|
<span class="icon icon-add"></span> {{ _('No Permission to Create a Discussion') }}</a></li>
|
|
{% endif %}
|
|
{% endif %}
|
|
<li class="menu__seperator"></li>
|
|
{% endif %}
|
|
{% if page_name == 'problem_detail' %}
|
|
{% if handler.user.hasPerm(perm.PERM_SUBMIT_PROBLEM) %}
|
|
<li class="menu__item scratchpad--hide"><a class="menu__link highlight" name="problem-sidebar__open-scratchpad" href="javascript:;" data-global-hotkey="alt+e">
|
|
<span class="icon icon-enlarge"></span> {{ _('Open Scratchpad') }} (Alt+E)
|
|
</a></li>
|
|
<li class="menu__item non-scratchpad--hide"><a class="menu__link" name="problem-sidebar__quit-scratchpad" href="javascript:;" data-global-hotkey="alt+q">
|
|
<span class="icon icon-enlarge"></span> {{ _('Quit Scratchpad') }} (Alt+Q)
|
|
</a></li>
|
|
{% endif %}
|
|
{% else %}
|
|
<li class="menu__item"><a class="menu__link" href="{{ url('problem_detail', pid=pdoc.pid|default(pdoc.docId)) }}">
|
|
<span class="icon icon-flag"></span> {{ _('View Problem') }}
|
|
</a></li>
|
|
{% endif %}
|
|
{% if handler.user.hasPerm(perm.PERM_SUBMIT_PROBLEM) %}
|
|
<li class="menu__item scratchpad--hide"><a class="menu__link{% if page_name == 'problem_submit' %} active{% endif %}" href="{{ url('problem_submit', pid=pdoc.pid|default(pdoc.docId)) }}">
|
|
<span class="icon icon-send"></span> {{ _('Submit') }}
|
|
</a></li>
|
|
{% elif not handler.user.hasPriv(PRIV.PRIV_USER_PROFILE) %}
|
|
<li class="menu__item scratchpad--hide"><a class="menu__link{% if page_name == 'problem_submit' %} active{% endif %}" href="javascript:showSignInDialog();">
|
|
<span class="icon icon-send"></span> {{ _('Login to Submit') }}
|
|
</a></li>
|
|
{% else %}
|
|
<li class="menu__item scratchpad--hide"><a class="menu__link disabled{% if page_name == 'problem_submit' %} active{% endif %}" href="javascript:;">
|
|
<span class="icon icon-send"></span> {{ _('No Permission to Submit') }}
|
|
</a></li>
|
|
{% endif %}
|
|
{% if handler.user.hasPerm(perm.PERM_REJUDGE_PROBLEM) %}
|
|
<li class="menu__item">
|
|
<form method="post" action="{{ url('problem_detail', pid=pdoc.docId) }}">
|
|
<input type="hidden" name="operation" value="rejudge">
|
|
<input type="hidden" name="csrfToken" value="{{ handler.csrfToken }}">
|
|
<button type="submit" class="menu__link">
|
|
<span class="icon icon-refresh"></span> {{ _('Rejudge all submissions') }}
|
|
</button>
|
|
</form>
|
|
</li>
|
|
{% endif %}
|
|
{% if handler.user.hasPerm(perm.PERM_VIEW_DISCUSSION) or handler.user.hasPerm(perm.PERM_VIEW_PROBLEM_SOLUTION) %}
|
|
<li class="menu__seperator"></li>
|
|
{% endif %}
|
|
{% if handler.user.hasPerm(perm.PERM_VIEW_DISCUSSION) %}
|
|
<li class="menu__item"><a class="menu__link{% if page_name == 'discussion_node' or page_name == 'discussion_detail' %} active{% endif %}" href="{{ url('discussion_node', type='problem', name=pdoc.docId) }}">
|
|
<span class="icon icon-comment--text"></span> {{ _('Discussions') }}
|
|
</a></li>
|
|
{% endif %}
|
|
{% if handler.user.hasPerm(perm.PERM_VIEW_PROBLEM_SOLUTION) %}
|
|
<li class="menu__item"><a class="menu__link{% if page_name == 'problem_solution' %} active{% endif %}" href="{{ url('problem_solution', pid=pdoc.pid|default(pdoc.docId)) }}">
|
|
<span class="icon icon-comment--text"></span> {{ _('Solutions') }}
|
|
</a></li>
|
|
{% endif %}
|
|
<li class="menu__item"><a class="menu__link{% if page_name == 'problem_files' %} active{% endif %}" href="{{ url('problem_files', pid=pdoc.pid|default(pdoc.docId)) }}">
|
|
<span class="icon icon-file"></span> {{ _('Files') }}
|
|
</a></li>
|
|
{% if handler.user.own(pdoc, perm.PERM_EDIT_PROBLEM_SELF) or handler.user.hasPerm(perm.PERM_EDIT_PROBLEM) %}
|
|
<li class="menu__seperator"></li>
|
|
<li class="menu__item"><a class="menu__link{% if page_name == 'problem_edit' %} active{% endif %}" href="{{ url('problem_edit', pid=pdoc.pid|default(pdoc.docId)) }}">
|
|
<span class="icon icon-edit"></span> {{ _('Edit') }}
|
|
</a></li>
|
|
{% endif %}
|
|
{% if page_name == 'problem_detail' and (handler.user.own(pdoc) or handler.user.hasPriv(PRIV.PRIV_READ_PROBLEM_DATA) or handler.user.hasPerm(perm.PERM_READ_PROBLEM_DATA)) %}
|
|
<div style="display: none" class="dialog__body--send-to">
|
|
<div>
|
|
<div class="row"><div class="columns">
|
|
<h1>{{ _('Send Problem') }}</h1>
|
|
</div></div>
|
|
<div class="row"><div class="medium-12 columns">
|
|
<label>
|
|
{{ _('Target') }}
|
|
<input name="target" type="text" class="textbox" data-autofocus>
|
|
</label>
|
|
</div></div>
|
|
</div>
|
|
</div>
|
|
<li class="menu__item nojs--hide"><a class="menu__link" name="problem-sidebar__send-to" href="javascript:;">
|
|
<span class="icon icon-copy"></span> {{ _('Send Problem') }}
|
|
</a></li>
|
|
{% endif %}
|
|
</ol>
|
|
</div>
|
|
</div>
|
|
{% if pagename != 'problem_detail' %}
|
|
<div class="section side">
|
|
<div class="section__header">
|
|
<h1 class="section__title">{{ _('Information') }}</h1>
|
|
</div>
|
|
{% include "partials/problem-sidebar-information.html" %}
|
|
</div>
|
|
{% endif %}
|
|
{% if page_name == 'problem_detail' and (tdocs or ctdocs) %}
|
|
<div class="section side">
|
|
<div class="section__header">
|
|
<h1 class="section__title">{{ _('Related') }}</h1>
|
|
</div>
|
|
<div class="section__body typo">
|
|
{% if tdocs %}
|
|
<p>{{ _('In following training plans') }}: </p>
|
|
{%- for tdoc in tdocs -%}
|
|
<p><a href="{{ url('training_detail', tid=tdoc.docId) }}">{{ tdoc.title }}</a></p>
|
|
{%- endfor -%}
|
|
{% endif %}
|
|
{% if ctdocs %}
|
|
<p>{{ _('In following contests') }}: </p>
|
|
{%- for tdoc in ctdocs -%}
|
|
<p><a href="{{ url('contest_detail', tid=tdoc.docId) }}">{{ tdoc.title }}</a></p>
|
|
{%- endfor -%}
|
|
{% endif %}
|
|
</div>
|
|
</div>
|
|
{% endif %}
|