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

From EjudgeWiki
 
 
Line 1: Line 1:
 
Навигация: [[Main Page|Главная страница]]/[[Система ejudge]]/[[Использование]]/[[Веб-интерфейс пользователя]]/[[interface:Элементы управления журналом посылок|Элементы управления журналом посылок]]
 
Навигация: [[Main Page|Главная страница]]/[[Система ejudge]]/[[Использование]]/[[Веб-интерфейс пользователя]]/[[interface:Элементы управления журналом посылок|Элементы управления журналом посылок]]
  
На рис. 4.9 представлены элементы интерфейса пользователя для просмотра сообщений, поступающих от участников и ответов судей участникам. Все интерфейсные элементы
 
подробно описаны далее.
 
  
Если глобальная конфигурационная переменная <tt>[[serve.cfg:global:disable_team_clars|disable_team_clars]]</tt> установлена в
+
 
''true'', участники турнира не будут иметь возможность направлять сообщения судьям. Если
+
На рис. 4.8 показаны элементы управления журналом посылок, доступные администратору турнира. Все элементы управления описываются далее.
глобальная конфигурационная переменная <tt>disable_clars</tt> установлена в ''true'', то и участники турнира не будут иметь возможность адресовать сообщения судьям, и, наоборот, судьи
 
и администратор турнира не будет иметь возможность писать сообщения участникам. В последнем случае элементы просмотра журнала сообщений и ввода текста нового сообщения
 
не отображаются на страницах администратора турнира и судей турнира.
 
  
 
1. Ссылки быстрой навигации подробно описаны выше.
 
1. Ссылки быстрой навигации подробно описаны выше.
  
2. В этой строке показывается общее количество сообщений в базе сообщений (как от
+
2. Команда “Rejudge all” вызывает перетестирование всех посылок, которые могут быть
участников судьям так и наоборот) и количество отображённых сообщений. По умолчанию отображается 15 последних сообщений, но изменить количество отображаемых
+
перетестированы. Посылка может быть перетестирована при выполнении следующих
сообщений можно с помощью элементов интерфейса 3, 4 и 5.
+
условий:
 +
* поле is_readonly посылки установлено в значение ''false'';
 +
* поле is_imported посылки установлено в значение ''false'';
 +
* посылка выполнена по задаче, для которой конфигурационная переменная
 +
<tt>[[serve.cfg:problem:disable_testing|disable_testing]]</tt> секции описания задачи конфигурационного файла турнира
 +
serve.cfg установлена в значение ''false'' (значение по умолчанию).
 +
 
 +
После нажатия на кнопку “Rejudge all” будет выдана страница подтверждения операции. Для действительного выполнения операции на странице подтверждения необходимо нажать кнопку “Yes, rejudge all”.
 +
 
 +
Команда пересуживания всех посылок доступна только привилегированным пользователям, у которых в данном турнире установлен бит полномочий <tt>EDIT_RUN</tt>.
 +
 
 +
3. Команда “Judge suspended runs” отправляет на тестирование все посылки, которые
 +
могут быть перетестированы (см. выше) и которые в базе посылок имеют статус
 +
<tt>ACCEPTED</tt>. Команда может применяться для тестирования всех посылок, которые были
 +
накоплены в период приостановленного тестирования, включённый командой “Suspend
 +
testing” администратора турнира.
 +
 
 +
После нажатия на кнопку “Judge suspended runs” будет сгенерирована страница подтверждения операции. Для действительного выполнения операции на странице подтверждения необходимо нажать кнопку “Yes, judge”.
 +
 
 +
Данная команда доступна только привилегированным пользователям, у которых в данном турнире установлен бит полномочий <tt>EDIT_RUN</tt>.
 +
 
 +
4. Команда “Squeeze runs” выполняет «чистку» базы посылок. Из неё удаляются все записи со статусом <tt>EMPTY</tt>. При этом у оставшихся посылок может измениться их номер,
 +
что требует изменения пути, по которому сохраняются исходный код программы и протоколы тестирования в соответствующих архивных каталогах. Если в базе посылок нет
 +
записей со статусом <tt>EMPTY</tt>, состояние базы посылок не изменяется.
 +
 
 +
После нажатия на кнопку “Squeeze runs” запрашивается подтверждение выполнения
 +
данной операции. Чтобы операция была выполнена на странице подтверждения необходимо нажать на кнопку “Yes, squeeze runs”.
 +
 
 +
Данная команда доступна только привилегированным пользователям, у которых в данном турнире установлен бит полномочий <tt>CONTROL_CONTEST</tt>.
 +
 
 +
5. Команда “Rejudge problem” позволяет пересудить посылки по выбранной задаче. Пересуживаются только пересуживаемые посылки (см. выше) по пересуживаемым задачам.
 +
 
 +
Необходимо в меню выбрать требуемую задачу, затем нажать на кнопку “Rejudge”.
 +
Обратите внимание, что подтверждение операции не запрашивается.
 +
 
 +
Данная команда доступна только привилегированным пользователям, у которых в данном турнире установлен бит полномочий <tt>EDIT_RUN</tt>.
 +
 
 +
6. Команда “Import and Merge XML runlog” позволяет проимпортировать в идущий
 +
турнир базу посылок во внутреннем XML-формате. Для включения возможности импортирования базы посылок глобальная конфигурационная переменная
 +
<tt>[[serve.cfg:global:enable_runlog_merge|enable_runlog_merge]]</tt> конфигурационного файла турнира <tt>[[serve.cfg]]</tt> должна
 +
быть установлена в значение ''true''.
  
3. В данном поле ввода указывается номер первого сообщения для просмотра.
+
Данная команда доступна только привилегированным пользователям, у которых в данном турнире установлен бит полномочий <tt>IMPORT_XML_RUNS</tt>.
  
4. В данном поле указывается номер последнего сообщения для просмотра.
+
База посылок во внутреннем XML-формате генерируется с помощью команды “Write
 +
XML runs (internal format)” администратора турнира. База посылок во внутреннем формате не содержит информации об участниках, языках программирования и задачах, а
 +
только их идентификаторы в записях о посылках, поэтому задачи, языки программирования и участники должны быть согласованы во всех точках проведения турнира,
 +
обменивающихся информацией о посылках. Если при импорте будет обнаружено рассогласование, импорт не будет выполнен.
  
5. При нажатии на кнопку “View” отображаются сообщения в соответствии со значениями, введёнными в элементах 3 и 4. Пусть в настоящий момент в базе сообщений
+
При импорте база посылок будет автоматически упорядочена в порядке возрастания
находятся ''N'' сообщений. Сообщения нумеруются от 0 (самое раннее сообщение) до
+
астрономического времени приёма посылки и (для одинакового времени) в порядке
''N'' −1. Пусть в поле “First clar” (3) введено значение ''F'', а в поле “Last clar” (4) введено
+
возрастания идентификатора участника турнира. При импорте учитывается значение
значение ''L''. Сообщения будут отображены в соответствии со следующими правилами.
+
поля <tt>is_imported</tt> и флага <tt>authoritative</tt> импортируемой записи. Если в импортируемой базе посылок и локальной базе посылок обнаруживается запись, у которой
* Если значение ''F'' < 0, то это число задаёт номер сообщения, считая от последнего, то есть ''F′ = N +F'', а в противном случае ''F′ = F''.
+
совпадают время приёма посылки <tt>timestamp</tt>, идентификатор участника <tt>team</tt>, идентификатор языка программирования <tt>language</tt> и идентификатор задачи <tt>problem</tt>,
* Если теперь ''F′''< 0, то ''F′′'' = 0, а если ''F′ &ge; N'', то ''F′′ = N'' −1, а в противном случае ''F′′ = F′'' (проверяется выход за границы допустимых изменений номера сообщения).
+
конфликт разрешается следующим образом:
* Аналогичные вычисления проводятся для ''L''. Если ''L''<, то ''L′ =N+L'', а иначе ''L′ =L''.
+
* Если флаг <tt>is_imported</tt> не установлен, и флаг <tt>authoritative</tt> импортируемой посылки также не установлен, локальная посылка имеет приоритет (сохраняет в результирующем журнале посылок), импортируемая посылка игнорируется.
* Если ''L′'' < 0, то ''L′′'' = 0, а если ''L′ &ge; N'', то ''L′′ = N'' −1, а иначе ''L′′ = L′''.
+
* Если флаг <tt>is_imported</tt> установлен, и флаг <tt>authoritative</tt> не установлен, локальная посылка имеет приоритет, а в случае несовпадения какого-либо из оставшихся полей локальной и импортируемой посылок выдаётся диагностическое сообщение.
* Если ''F′′'' &le; ''L′′'', то будет отображён список сообщений от сообщения с номером ''F′′'' до сообщения с номером ''L′′'' в порядке их поступления, то есть в порядке увеличения календарного времени их получения сервером турнира. Если ''F′′'' > ''L′′'', то отображается список сообщений от сообщения с номером ''L′′'' до сообщения с номером ''F′′'' в обратном порядке, то есть от сообщений, поступивших позже, к сообщениями, поступившим раньше.
+
* Если флаг <tt>is_imported</tt> не установлен, и флаг <tt>authoritative</tt> импортируемой посылки установлен, локальная посылка имеет приоритет. Такая ситуация возможна, когда импортируется собственный журнал посылок данного сервера
 +
турнира. При несовпадении какого либо из оставшихся полей локальной и импортируемой посылки выдаётся диагностическое сообщение.
 +
* Если флаг <tt>is_imported</tt> установлен, и флаг <tt>authoritative</tt> импортируемой посылки также установлен, импортируемая посылка имеет приоритет.
  
Таким образом, чтобы отобразить весь список сообщений, начиная с последнего и до
+
7. Элементы управления 7—10 предназначены для посылки программ на проверку в привилегированном режиме. Чтобы иметь возможность посылать программы на проверку в
самого первого, в поле “First clar” достаточно ввести значение −1, а в поле “Last clar”
+
привилегированном режиме у пользователя должен быть установлен бит <tt>SUBMIT_RUN</tt>
— значение 0.
+
полномочий в файле конфигурации турнира <tt>[[contest.xml]]</tt>.
  
6. Элементы интерфейса 6—14 соответствуют столбцам таблицы сообщений. В столбце
+
У привилегированных посылок автоматически устанавливается флаг <tt>is_hidden</tt>, то
“Clar ID” отображается порядковый номер сообщения, который изменяется, как сказано
+
есть они не участвуют в подсчёте результата и не отображаются в таблице результатов.
выше, от 0 до ''N'' −1, где ''N'' — общее число сообщений в базе.
 
  
7. В столбце “Flags” отображаются флаг состояния сообщения. Флаг состояния может
+
С другой стороны, привилегированные посылки могут выполняться до начала турнира
иметь следующие значения:
+
и после его завершения. Изменить флаг <tt>is_hidden</tt> посылки можно при редактировании данных посылки с помощью интерфейса администратора CGI-программы <tt>master</tt>
* <tt>'''N'''</tt>. «Новое» сообщение, то есть сообщение, которое ещё не было просмотрено судьёй турнира. Судьёй в данном контексте считается пользователь, использующий для просмотра сообщений CGI-программу <tt>judge</tt>. Флаг сбрасывается, когда текст сообщения открывается с помощью нажатия на ссылку “View” (14) в CGI-программе <tt>judge</tt>. Просмотры сообщения в CGI-программе <tt>master</tt> не не сбрасывают этот флаг.
+
(см. ниже).
* <tt>''' A'''</tt>. «Отвеченное» сообщение, то есть сообщение, которое было просмотрено судьёй или администратором турнира с помощью нажатия на ссылку “View” (14), и на которое был написан и отослан автору сообщения или всем участникам турнира ответ. Флаг <tt>A</tt> устанавливается при использовании как CGI-программы <tt>judge</tt>, так и CGI-программы <tt>master</tt>.
 
  
Если в столбце статуса не отображается ни один из описанных выше статусов сообщения, значит данное сообщение не является ни новым, ни отвеченным, то есть оно уже
+
С помощью элемента “Problem” необходимо выбрать задачу для сдачи. Если задача
было просмотрено, но ответ на него ещё не был разослан.
+
вариантная (то есть значение конфигурационной переменной <tt>[[serve.cfg:problem:variant_num|variant_num]]</tt> конфигурационного файла <tt>[[serve.cfg]]</tt> больше нуля), привилегированный пользователь может
 +
выбрать любой вариант задачи. Крайний срок сдачи задачи (см. конфигурационную переменную задачи <tt>[[serve.cfg:problem:deadline|deadline]]</tt>) игнорируется, то есть для сдачи доступны даже задачи,
 +
крайний срок сдачи которых истёк.
  
8. В столбце “Time” отображается время, прошедшее от начала турнира до момента получения сервером турнира serve этого сообщения. Если в файле конфигурации турнира <tt>[[serve.cfg]]</tt> установлена глобальная конфигурационная переменная
+
Элементы меню выбора имеют вид ''“S — L”'', где ''S'' — это короткое имя задачи, определяемое конфигурационной переменной short_name раздела описания задачи, а ''L'' —
<tt>[[serve.cfg:global:show_astr_time|show_astr_time]]<tt>, в столбце “Time” отображается астрономическое время получения сообщения.
+
это длинное имя, определяемое конфигурационной переменной <tt>[[serve.cfg:problem:long_name|long_name]]</tt>. Для вариантных задач элементы меню выбора имеют вид ''“S-V — L”'', где ''V'' — номер варианта
 +
(целое число от 1 до значения конфигурационной переменной <tt>[[serve.cfg:problem:variant_num|variant_num]]</tt>.
  
9. В столбце “IP” отображается IP-адрес отправителя сообщения, то есть IP-адрес компьютера, на котором работает браузер, в котором отображаются страницы, генерируемые
+
8. С помощью элемента ввода “Language” необходимо выбрать язык программирования.
CGI-программой <tt>master, judge</tt> или <tt>team</tt>.
 
  
10. В столбце “Size” отображается размер текста сообщения в байтах.
+
Привилегированному пользователю доступны все языки программирования, включая
 +
языки, у которых установлена конфигурационная переменная <tt>[[serve.cfg:language:disabled|disabled]]</tt> секции описания языка программирования конфигурационного файла задачи <tt>[[serve.cfg]]</tt>.
  
11. В столбце “From” указывается отправитель сообщения. Отправитель может быть участником турнира, использующим интерфейс турнира, поддерживаемый CGI-программой
+
Элементы меню выбора имеют вид ''“S — L”'', где ''S'' — это короткое языка программирования, определяемое конфигурационной переменной <tt>[[serve.cfg:language:short_name|short_name]]</tt> раздела описания
<tt>team</tt>, и в этом случае здесь отображается имя участника турнира. Если отправителем
+
языка программирования, а ''L'' — это длинное имя, определяемое конфигурационной
является привилегированный пользователь, использующий CGI-программы <tt>judge</tt> или <tt>master</tt>, в столбце “From” отображается строка <tt>Judges</tt> вне зависимости от конкретного
+
переменной <tt>[[serve.cfg:language:long_name|long_name]]</tt>.
привилегированного пользователя, отославшего данное сообщение.
 
  
12. В столбце “To” указывается адресат сообщения. Если сообщение послано судьёй или
+
9. С помощью элемента “File” необходимо выбрать файл с исходным текстом программы.
администратором турнира и адресовано участнику турнира, то в данном поле отображается имя участника турнира. Если сообщение послано судьёй или администратором
+
Для этого нужно нажать на кнопку “Browse”, и с помощью стандартного диалога
турнира и адресовано всем участникам турнира, в данном поле отображается строка
+
выбора файла выбрать файл с исходным текстом программы.
<tt>All</tt>. Если сообщение послано участником турнира судьям, то в данном поле отображается строка Judges. Обычный участник турнира не может послать сообщение всем
 
участникам турнира или какому-либо конкретному участнику.
 
  
13. В столбце “Subject” указывается тема сообщения. В таблице сообщений длина строки темы сообщения ограничена 16 символами. Полностью тему сообщения можно
+
10. При нажатии на кнопку “Send” программа будет передана серверу турнира, который
посмотреть при просмотре всего сообщения с помощью ссылки “View” (14).
+
занесёт её в базу посылок и начнёт её обработку.
  
14. С помощью ссылки “View” можно просмотреть полную тему и текст сообщения и
+
11. Кнопка “Rejudge displayed runs” отправляет на перетестирование все посылки, которые
написать на него ответ.
+
отображаются в данном окне в соответствии с выражением фильтра. Все остальные
 +
команды пересуживания посылок являются, по сути, частными случаями данной команды.

Latest revision as of 11:41, 24 February 2012

Навигация: Главная страница/Система 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” отправляет на перетестирование все посылки, которые отображаются в данном окне в соответствии с выражением фильтра. Все остальные команды пересуживания посылок являются, по сути, частными случаями данной команды.