{% extends "layout/basic.html" %} {% block content %}

{{ _('Basic Info') }}

{{ form.form_select({ columns:3, label:'Rule', name:'rule', options:rules, value:tdoc['rule']|default(''), row:false }) }} {{ form.form_text({ columns:9, label:'Title', name:'title', placeholder:_('title'), value:tdoc.title|default(''), autofocus:true, row:false }) }}
{{ form.form_text({ columns:3, label:'Begin Date', name:'beginAtDate', placeholder:'YYYY-mm-dd', value:beginAt.format('YYYY-M-D'), date:true, row:false }) }} {{ form.form_text({ columns:3, label:'Begin Time', name:'beginAtTime', placeholder:'HH:MM', value:beginAt.format('H:mm'), time:true, row:false }) }} {{ form.form_text({ columns:2, label:'Duration (hours)', name:'duration', value:duration|default('3'), row:false }) }} {{ form.form_text({ columns:4, label:'End Time', name:'endAt', placeholder:'YYYY-mm-dd HH:MM', value:beginAt.add(duration, 'hours').format('YYYY-M-D HH:mm'), disabled:true, row:false }) }}
{% if page_name == 'contest_create' or page_name == 'contest_edit' %}

{{ _('Problem order determines contest labels and may affect scoring.') }}

{% else %} {{ form.form_text({ columns:12, label:'Problems', name:'pids', value:pids, placeholder:_("Seperated with ','"), row:true }) }} {% endif %} {{ form.form_textarea({ columns:null, label:'Description', name:'content', value:tdoc['content']|default(''), markdown:true }) }}

{{ _('Permission Control') }}

{{ form.form_text({ columns:12, label:'Contest Maintainer', name:'maintainer', help_popup:true, help_text:_('Allow to maintain this {0}').format(_('contest')), value:tdoc.maintainer|default('') }) }}
{{ form.form_select({ columns:3, label:'Permission Control', name:'permission', options:{ 'public': _('Public'), 'invite': _('Require Invitation Code'), 'assign': _('Assign User or Group') }, value: ("public" if not tdoc._code else "invite") if not tdoc.assign|length else "assign", disabled:true, row:false }) }}
{{ form.form_text({ columns:9, label:'Assign', name:'assign', placeholder:_('Group / UID'), value:tdoc.assign|default(''), disabled:true, row:false }) }}
{{ form.form_text({ columns:9, label:'Invitation Code', name:'code', placeholder:_('(leave blank if none)'), value:tdoc._code|default(''), disabled:true, row:false }) }}

{{ _('Contest Settings') }}

{{ form.form_text({ columns:12, label:'Submission language limit', name:'langs', value:tdoc.langs|default(''), placeholder:_("Seperated with ','"), row:true }) }}
{{ form.form_checkbox({ columns:2, label:'Rated', name:'rated', placeholder:_('Is rated'), value:tdoc.rated|default(true), row:false }) }} {{ form.form_checkbox({ columns:3, label:'Auto hide-and show', name:'autoHide', placeholder:_('Auto hide problems during the contest'), value:handler.user.hasPerm(perm.PERM_EDIT_PROBLEM) and (tdoc.autoHide|default(true)), disabled:not handler.user.hasPerm(perm.PERM_EDIT_PROBLEM), row:false }) }} {{ form.form_checkbox({ columns:3, label:'Allow View Code', name:'allowViewCode', placeholder:_('Allow user view others code after contest'), value:tdoc.allowViewCode|default(true), row:false }) }} {{ form.form_checkbox({ columns:4, label:'Allow Print', name:'allowPrint', placeholder:_('Allow user to print during contest'), value:tdoc.allowPrint|default(false), row:false }) }}
{{ form.form_checkbox({ columns:4, label:'文件夹提交', name:'allowFolderSubmit', placeholder:'允许学生批量提交代码', value:tdoc.allowFolderSubmit|default(false), row:false }) }} {{ form.form_checkbox({ columns:8, label:'仅允许文件夹或 ZIP 提交', name:'folderSubmitOnly', placeholder:'禁止在题目页直接提交代码', value:tdoc.allowFolderSubmit and tdoc.folderSubmitOnly, disabled:not tdoc.allowFolderSubmit, row:false }) }}

仅允许提交需先开启“文件夹提交”。适用于文本源码题;客观题、答案提交题和二进制语言不支持此模式。请在比赛管理中保存每题的提交文件规则。

{% if page_name == 'contest_edit' %} {% if handler.user.own(tdoc) or handler.user.hasPerm(perm.PERM_EDIT_CONTEST) %} {% endif %} {% else %} {% endif %}
{% if contestVideoEditable %}
{% endif %}
{% if tdoc %}

{{ _('Files') }}

{% set sidebar = true %} {% set files = tdoc.files %} {% set filetype = "public" %} {% include "partials/files.html" %}
{% endif %}
{% endblock %}