Interface:Элементы управления журналом посылок

From EjudgeWiki

Навигация: Главная страница/Система ejudge/Использование/Веб-интерфейс пользователя/Элементы управления журналом посылок


На рис. 4.8 показаны элементы управления журналом посылок, доступные администратору турнира. Все элементы управления описываются далее.

1. Ссылки быстрой навигации подробно описаны выше.

2. Команда “Rejudge all” вызывает перетестирование всех посылок, которые могут быть перетестированы. Посылка может быть перетестирована при выполнении следующих условий:

  • поле is_readonly посылки установлено в значение false;
  • поле is_imported посылки установлено в значение false;
  • посылка выполнена по задаче, для которой конфигурационная переменная

disable_testing секции описания задачи конфигурационного файла турнира serve.cfg установлена в значение false (значение по умолчанию).

После нажатия на кнопку “Rejudge all” будет выдана страница подтверждения операции. Для действительного выполнения операции на странице подтверждения необходимо нажать кнопку “Yes, rejudge all”.

Команда пересуживания всех посылок доступна только привилегированным пользователям, у которых в данном турнире установлен бит полномочий EDIT_RUN.

3. Команда “Judge suspended runs” отправляет на тестирование все посылки, которые могут быть перетестированы (см. выше) и которые в базе посылок имеют статус ACCEPTED. Команда может применяться для тестирования всех посылок, которые были накоплены в период приостановленного тестирования, включённый командой “Suspend testing” администратора турнира.

После нажатия на кнопку “Judge suspended runs” будет сгенерирована страница подтверждения операции. Для действительного выполнения операции на странице подтверждения необходимо нажать кнопку “Yes, judge”.

Данная команда доступна только привилегированным пользователям, у которых в данном турнире установлен бит полномочий EDIT_RUN.

4. Команда “Squeeze runs” выполняет «чистку» базы посылок. Из неё удаляются все записи со статусом EMPTY. При этом у оставшихся посылок может измениться их номер, что требует изменения пути, по которому сохраняются исходный код программы и протоколы тестирования в соответствующих архивных каталогах. Если в базе посылок нет записей со статусом EMPTY, состояние базы посылок не изменяется.

После нажатия на кнопку “Squeeze runs” запрашивается подтверждение выполнения данной операции. Чтобы операция была выполнена на странице подтверждения необходимо нажать на кнопку “Yes, squeeze runs”.

Данная команда доступна только привилегированным пользователям, у которых в данном турнире установлен бит полномочий CONTROL_CONTEST.

5. Команда “Rejudge problem” позволяет пересудить посылки по выбранной задаче. Пересуживаются только пересуживаемые посылки (см. выше) по пересуживаемым задачам.

Необходимо в меню выбрать требуемую задачу, затем нажать на кнопку “Rejudge”. Обратите внимание, что подтверждение операции не запрашивается.

Данная команда доступна только привилегированным пользователям, у которых в данном турнире установлен бит полномочий EDIT_RUN.

6. Команда “Import and Merge XML runlog” позволяет проимпортировать в идущий турнир базу посылок во внутреннем XML-формате. Для включения возможности импортирования базы посылок глобальная конфигурационная переменная enable_runlog_merge конфигурационного файла турнира serve.cfg должна быть установлена в значение true.

Данная команда доступна только привилегированным пользователям, у которых в данном турнире установлен бит полномочий IMPORT_XML_RUNS.

База посылок во внутреннем XML-формате генерируется с помощью команды “Write XML runs (internal format)” администратора турнира. База посылок во внутреннем формате не содержит информации об участниках, языках программирования и задачах, а только их идентификаторы в записях о посылках, поэтому задачи, языки программирования и участники должны быть согласованы во всех точках проведения турнира, обменивающихся информацией о посылках. Если при импорте будет обнаружено рассогласование, импорт не будет выполнен.

При импорте база посылок будет автоматически упорядочена в порядке возрастания астрономического времени приёма посылки и (для одинакового времени) в порядке возрастания идентификатора участника турнира. При импорте учитывается значение поля is_imported и флага authoritative импортируемой записи. Если в импортируемой базе посылок и локальной базе посылок обнаруживается запись, у которой совпадают время приёма посылки timestamp, идентификатор участника team, идентификатор языка программирования language и идентификатор задачи problem, конфликт разрешается следующим образом:

  • Если флаг is_imported не установлен, и флаг authoritative импортируемой посылки также не установлен, локальная посылка имеет приоритет (сохраняет в результирующем журнале посылок), импортируемая посылка игнорируется.
  • Если флаг is_imported установлен, и флаг authoritative не установлен, локальная посылка имеет приоритет, а в случае несовпадения какого-либо из оставшихся полей локальной и импортируемой посылок выдаётся диагностическое сообщение.
  • Если флаг is_imported не установлен, и флаг authoritative импортируемой посылки установлен, локальная посылка имеет приоритет. Такая ситуация возможна, когда импортируется собственный журнал посылок данного сервера

турнира. При несовпадении какого либо из оставшихся полей локальной и импортируемой посылки выдаётся диагностическое сообщение.

  • Если флаг is_imported установлен, и флаг authoritative импортируемой посылки также установлен, импортируемая посылка имеет приоритет.

7. Элементы управления 7—10 предназначены для посылки программ на проверку в привилегированном режиме. Чтобы иметь возможность посылать программы на проверку в привилегированном режиме у пользователя должен быть установлен бит SUBMIT_RUN полномочий в файле конфигурации турнира contest.xml.

У привилегированных посылок автоматически устанавливается флаг is_hidden, то есть они не участвуют в подсчёте результата и не отображаются в таблице результатов.

С другой стороны, привилегированные посылки могут выполняться до начала турнира и после его завершения. Изменить флаг is_hidden посылки можно при редактировании данных посылки с помощью интерфейса администратора CGI-программы master (см. ниже).

С помощью элемента “Problem” необходимо выбрать задачу для сдачи. Если задача вариантная (то есть значение конфигурационной переменной variant_num конфигурационного файла serve.cfg больше нуля), привилегированный пользователь может выбрать любой вариант задачи. Крайний срок сдачи задачи (см. конфигурационную переменную задачи deadline) игнорируется, то есть для сдачи доступны даже задачи, крайний срок сдачи которых истёк.

Элементы меню выбора имеют вид “S — L”, где S — это короткое имя задачи, определяемое конфигурационной переменной short_name раздела описания задачи, а L — это длинное имя, определяемое конфигурационной переменной long_name. Для вариантных задач элементы меню выбора имеют вид “S-V — L”, где V — номер варианта (целое число от 1 до значения конфигурационной переменной variant_num.

8. С помощью элемента ввода “Language” необходимо выбрать язык программирования.

Привилегированному пользователю доступны все языки программирования, включая языки, у которых установлена конфигурационная переменная disabled секции описания языка программирования конфигурационного файла задачи serve.cfg.

Элементы меню выбора имеют вид “S — L”, где S — это короткое языка программирования, определяемое конфигурационной переменной short_name раздела описания языка программирования, а L — это длинное имя, определяемое конфигурационной переменной long_name.

9. С помощью элемента “File” необходимо выбрать файл с исходным текстом программы. Для этого нужно нажать на кнопку “Browse”, и с помощью стандартного диалога выбора файла выбрать файл с исходным текстом программы.

10. При нажатии на кнопку “Send” программа будет передана серверу турнира, который занесёт её в базу посылок и начнёт её обработку.

11. Кнопка “Rejudge displayed runs” отправляет на перетестирование все посылки, которые отображаются в данном окне в соответствии с выражением фильтра. Все остальные команды пересуживания посылок являются, по сути, частными случаями данной команды.