core&judge&ui: hack submission

This commit is contained in:
undefined committed 2022-09-06 13:02:46 +08:00
1 parent 07ab4f1bbd
commit 4e0c9bb00a
17 files changed
+256 -128

No files matched your search

@@ -0,0 +1,33 @@
{% extends "layout/basic.html" %}
{% block content %}
{{ set(UiContext, 'pdoc', pdoc) }}
<div class="row">
<div class="medium-9 columns">
<div class="section">
<div class="section__header">
<h1 class="section__title">{{ _('Hack a submission') }}</h1>
</div>
<div class="section__body">
<form method="post" enctype="multipart/form-data">
{{ form.form_textarea({label:'Input', columns:12, name:'input', extra_class:'monospace', autofocus:true}) }}
<div class="row">
<div class="medium-12 columns">
<p>{{ _('Or upload a file:') }} <input type="file" name="file"></p>
<br />
</div>
</div>
<div class="row"><div class="columns">
<input type="hidden" name="csrfToken" value="{{ handler.csrfToken }}">
<input type="submit" class="rounded primary button" value="{{ _('Submit') }}">
</div></div>
</form>
</div>
</div>
</div>
<div class="medium-3 columns">
{% set owner_udoc = udoc %}
{% include "partials/problem_sidebar.html" %}
</div>
</div>
{% endblock %}
@@ -5,7 +5,7 @@
<div class="row">
<div class="medium-9 columns">
{% include 'record_detail_status.html' %}
{% if rdoc['code'] %}
{% if rdoc['code'] or rdoc.files.code %}
<div class="section">
<div class="section__header">
<h1 class="section__title">{{ _('Code') }}</h1>
@@ -13,11 +13,9 @@
<a class="primary rounded button" href="?download=true"><span class="icon icon-download"></span> {{ _('Download') }}</a>
</div>
</div>
{% if not rdoc.code.startsWith('@@hydro_submission_file@@') %}
<div class="section__body">
<pre><code class="line-numbers language-{{ model.setting.langs[rdoc.lang].highlight }}">{{ rdoc['code'] }}</code></pre>
</div>
{% endif %}
<div class="section__body">
<pre><code class="line-numbers language-{{ model.setting.langs[rdoc.lang].highlight }}">{{ rdoc['code'] }}</code></pre>
</div>
</div>
{% endif %}
</div>
@@ -49,6 +47,17 @@
</li>
</ol>
</div>
{% endif %}
{% if handler.user.hasPerm(perm.PERM_SUBMIT_PROBLEM) and pdoc.config.hackable and rdoc.status === STATUS.STATUS_ACCEPTED %}
<div class="section__body no-padding">
<ol class="menu">
<li class="menu__item">
<a class="menu__link" href="{{ url('problem_hack', pid=pdoc.pid|default(pdoc.docId), rid=rdoc._id) }}">
<span class="icon icon-close"></span> {{ _('Hack') }}
</a>
</li>
</ol>
</div>
{% endif %}
<div class="section__body typo no-media">
<dl class="large horizontal">