Interface:Интерфейс редактирования посылок

From EjudgeWiki

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

На рис. 4.12 показан вид (верхняя часть) экрана редактирования информации о посылке.

К редактированию посылки можно перейти, нажав на ссылку “View” некоторой посылки на главном экране программы master. Далее рассматриваются элементы интерфейса страницы редактирования посылок.

1. Ссылки быстрой навигации позволяют переключиться на другой экран программы master. Доступны следующие ссылки быстрой навигации:

  • “Main page” вызывает переход на главную страницу программы master.
  • “Standings” вызывает переход на страницу просмотра текущих результатов турнира.
  • “View teams” вызывает переход на страницу просмотра информации об участниках турнира.
  • “Refresh” вызывает обновление данной страницы.
  • “View report” вызывает переход к странице просмотра протокола тестирования для текущей посылки.
  • “View team report” вызывает переход к странице просмотра протокола тестирования для текущей посылки, предназначенного для участника турнира. Данная ссылка отображается, только если глобальная конфигурационная переменная team_enable_rep_view конфигурационного файла serve.cfg установлена в true.
  • “Log out” приводит к выходу пользователя из программы master и завершению сессии работы.

2. В поле “Run ID” отображается идентификатор посылки. Первая (самая ранняя) посылка имеет идентификатор 0. Текущая версия системы ejudge имеет ограничение на максимальное количество посылок, равное 100000. См. также описание поля submission журнала посылок run.log.

3. Поле “Submission time” показывает астрономическое время, когда была выполнена данная посылка, точнее, когда она была получена сервером турнира serve. Время отображается в формате YYYY/MM/DD hh:mm:ss, где YYYY — год, MM — номер месяца в году (от 1 до 12), DD — день месяца (от 1 до 31), hh — часы (от 0 до 23), mm — минуты, и ss — секунды. См. также описание поля timestamp журнала посылок run.log.

4. Поле “Contest time” показывает время от начала турнира до момента получения сервером турнира данной посылки. Время отображается в формате h:mm:ss, где h — количество часов, mm — минут, и ss — секунд.

5. Поле “Originator IP” показывает IP-адрес клиента, с которого была выполнена посылка. IP-адрес показывается в стандартной точечной нотации. IP-адрес генерируется как ссылка, нажав на которую происходит возврат на основной экран программы master с одновременной установкой фильтра посылок таким образом, чтобы отображались только посылки, выполненные с данного IP-адреса. См. также описание поля ip журнала посылок run.log.

6. Поле “Size” показывает размер исходного текста посылки в байтах. Размер показывается как ссылка, при нажатии на которую происходит возврат на главный экран программы master с одновременной установкой фильтра посылок таким образом, чтобы отображались только посылки, у которых размер исходного текста совпадает с размером исходного текста данной посылки. См. также описание поля size журнала посылок run.log.

7. Поле “Hash value” показывает контрольную сумму исходного текста программы данной посылки. Контрольная сумма вычисляется по алгоритму SHA1 и представляется как 20-байтное число в шестнадцатеричном виде. Контрольная сумма показывается как гиперссылка, при нажатии на которую происходит возврат на главный экран программы master с одновременной установкой фильтра посылок таким образом, чтобы отображались только посылки, у которых контрольная сумма исходного текста совпадает с контрольной суммой исходного текста данной посылки. См. также описание поля sha1 журнала посылок run.log.

8. В поле “User ID” отображается числовой идентификатор участника турнира, выполнившего данную посылку. Числовые идентификаторы участников находятся в диапазоне от 1 до 100000. Идентификатор участника генерируется как гиперссылка, при нажатии на которую происходит возврат на главный экран программы master с одновременной установкой фильтра посылок таким образом, чтобы отображались только посылки данного пользователя. См. также описание поля team журнала посылок run.log.

9. С помощью данного элемента ввода можно изменить идентификатор пользователя, приписываемый данной посылке. Для этого нужно ввести новый числовой идентификатор и нажать на кнопку “Change”. Пользователь с данным идентификатором должен существовать и быть зарегистрированным на данный турнир (то есть иметь статус регистрации “OK”). Пользователь может иметь статус “Locked”, “Banned” или “Invisible” в данном турнире.

10. В поле “User login” отображается регистрационное имя участника турнира. Регистрационное имя используется участником при входе в программы системы ejudge. Как и идентификатор пользователя, регистрационное имя уникально для всех зарегистрированных пользователей. См. также описание поля team журнала посылок run.log.

11. С помощью данного элемента ввода можно задать регистрационное имя пользователя, которому будет приписана данная посылка. Изменение регистрационного имени пользователя приведёт к изменению идентификатора пользователя (и наоборот). Для этого нужно ввести новое регистрационное имя пользователя и нажать на кнопку “Change”. Пользователь с данным идентификатором должен существовать и быть зарегистрированным на данный турнир (то есть иметь статус регистрации “OK”). Пользователь может иметь статус “Locked”, “Banned” или “Invisible” в данном турнире.

12. В поле “User name” отображается имя пользователя. Имя пользователя выбирается пользователем при регистрации на турнир с помощью программы register, а также может быть установлено администратором турнира с помощью программы edit-userlist. Несколько пользователей могут установить себе одно и то же имя пользователя, однако каждый пользователь может иметь только одно имя. См. также описание поля team журнала посылок run.log.

13. В поле “Problem” отображается короткое имя задачи (см. конфигурационную переменную short_name секции описания задачи конфигурационного файла турнира serve.cfg), по которой была выполнена данная посылка. Короткое имя задачи генерируется как гиперссылка, при нажатии на которую происходит возврат на главный экран программы master с одновременной установкой фильтра посылок таким образом, чтобы отображались только посылки по данной задаче. См. также описание поля problem журнала посылок run.log.

14. С помощью данного диалогового элемента можно изменить задачу данной посылки. Для этого в выпадающем меню нужно выбрать новую задачу и нажать на кнопку “Change”. В выпадающем меню выбора задачи отображается как короткое имя, так и полное имя задачи.

15. В поле “Language” отображается короткое имя языка программирования (см. конфигурационную переменную short_name секции описания языка программирования конфигурационного файла турнира serve.cfg), который был использован в данной посылке. Короткое имя языка программирования генерируется как гиперссылка, при нажатии на которую происходит возврат на главный экран программы master с одновременной установкой фильтра посылок таким образом, чтобы отображались только посылки с таким же языком программирования. См. также описание поля language журнала посылок run.log.

16. С помощью данного диалогового элемента можно изменить язык программирования данной посылки. Для этого в выпадающем меню нужно выбрать новый язык программирования и нажать на кнопку “Change”. В выпадающем меню выбора языка программирования отображается как короткое имя, так и полное имя языка программирования.

17. В поле “Imported?” отображается текущее значение флага импортированной посылки. Флаг может принимать два значения: “No” (false) и “Yes” (true). См. также описание поля is_imported журнала посылок run.log.

18. С помощью данного диалогового элемента можно изменить значение флага импортированной посылки. Для этого в выпадающем меню нужно выбрать новое значение и нажать на кнопку “Change”.

19. В поле “Hidden?” отображается текущее значение флага скрытой посылки. Флаг может принимать два значения: “No” (false) и “Yes” (true). См. также описание поля is_hidden журнала посылок run.log.

20. С помощью данного диалогового элемента можно изменить значение флага скрытой посылки. Для этого в выпадающем меню нужно выбрать новое значение и нажать на кнопку “Change”.

21. В поле “Read-only?” отображается текущее значение флага неизменяемой посылки. Флаг может принимать два значения: “No” (false) и “Yes” (true). См. также описание поля is_readonly журнала посылок run.log.

22. С помощью данного диалогового элемента можно изменить значение флага неизменяемой посылки. Для этого в выпадающем меню нужно выбрать новое значение и нажать на кнопку “Change”.

23. В поле “Locale ID” отображается идентификатор языкового окружения, установленный участником турнира в момент отправки им данной посылки. В настоящее время система ejudge поддерживает два языковых окружения: английское (идентификатор 0) и русское (идентификатор 1). См. также описание поля locale_id журнала посылок run.log.

24. В поле “Status” отображается статус данной посылки. Все возможные статусы посылок приведены в таблице Допустимые статусы посылок. См. также описание поля status журнала посылок run.log.

25. С помощью данного диалогового элемента можно модифицировать статус текущей посылки. Для этого в выпадающем меню нужно выбрать новое значение статуса и нажать на кнопку “Change”.

26. В поле “Tests passed” отображается количество тестов, успешно пройденных решением (в режимах турнира KIROV и OLYMPIAD). Если статус текущей посылки таков, что запуск на тестирование программы не выполнялся, в данном поле отображается N/A.

В режиме турнира ACM данное поле называется “Failed test” и показывает минимальный номер теста, на котором программа дала неверный результат. Если решение прошло все тесты или статус текущей посылки таков, что запуск на тестирование программы не выполнялся, в данном поле отображается N/A.

См. также описание поля tests журнала посылок run.log.

27. С помощью данного диалогового элемента можно изменить количество пройденных тестов или номер первого теста для данной посылки. Для этого нужно ввести новое значение и нажать на кнопку “Change”. Чтобы установить данное поле в значение «не определено» (N/A), в поле ввода нужно ввести число -1.

28. При нажатии на кнопку “Clear this entry” текущая запись будет очищена, включая все поля таблицы посылок и файлы с исходным текстом и протоколами тестирования. При нажатии на данную кнопку запрашивается подтверждение операции очистки.

29. В поле “Score gained” отображается количество баллов, полученное за данную посылку. Данное поле доступно только в режимах турнира KIROV или OLYMPIAD. Количество баллов отображается без учёта возможных штрафов за повторные попытки. Если статус текущей посылки таков, что запуск на тестирование программы не выполнялся, в данном поле отображается N/A. См. также описание поля score журнала посылок run.log.

30. С помощью данного диалогового элемента можно изменить количество баллов за решение. Данный диалоговый элемент доступен только в режимах турнира KIROV или OLYMPIAD. Для изменения значения поля нужно ввести новое значение и нажать на кнопку “Change”. Чтобы установить данное поле в значение «не определено» (N/A), в поле ввода нужно ввести число -1.

31. В поле “Pages” отображается количество страниц, использованных при распечатке пользователем текста программы данной посылки. Если пользователь не печатал текст, значение данного поля равно 0. Печать исходного текста посылки на принтере непривилегированным пользователем (из-под программы team) возможна только, если глобальная конфигурационная переменная enable_printing файла конфигурации турнира serve.cfg установлена в значение true. См. также описание поля pages журнала посылок run.log.

32. С помощью данного диалогового элемента можно изменить количество страниц распечатки для данной посылки. Для этого в поле ввода нужно задать новое значение и нажать на кнопку “Change”.

33. С помощью кнопки “Print” можно отправить исходный текст текущей посылки на принтер. Эта операция является привилегированной операцией, для которой требуется бит привилегий PRINT_RUN. В данном случае не действуют квоты печати, можно несколько раз напечатать одну и ту же программу. В результате привилегированной печати не изменяется поле pages, но есть непривилегированный пользователь, который выполнил данную посылку, всё равно сохраняет возможность её печати на принтер.

Для печати посылок на принтер требуется задать корректные значения для конфигурационных переменных a2ps_path, a2ps_args, lpr_path, lpr_args.

34. В поле “Variant” отображается вариант задачи. Данное поле отображается только для вариантных задач, то есть для задач, у которых конфигурационная переменная variant_num файла конфигурации турнира serve.cfg установлена в значение, большее 0. Значение варианта изменяется от 1 и до значения, устанавливаемого этой конфигурационной переменной. Если в базе посылок номер варианта для данной посылки явно не установлен, то номер варианта определяется по таблице вариантов (см. конфигурационную переменную variant_map_file файла конфигурации турнира serve.cfg). В этом случае номер варианта отображается с пометкой “Implicit”.

См. также описание поля variant журнала посылок run.log.

35. С помощью поля редактирования номера варианта можно изменить номер варианта данной посылки. Для этого в поле ввода нужно задать новый номер варианта и нажать на кнопку “Change”. Чтобы сбросить явное задание номера варианта в базе посылок (то есть чтобы использовался файл задания вариантов для пользователей), в поле ввода нужно ввести номер варианта 0.

36. Ссылка “Download run” позволяет загрузить исходный текст посылки. Несмотря на то, что страница просмотра исходного текста уже содержит сам исходный текст, возможность загрузки исходного текста необходима по следующим причинам:

  • Исходный текст можно сразу сохранить в файл, а не копировать его через буфер обмена, избегая таким образом искажения данных, возможных при копировании через буфер обмена.
  • Для посылок по задачам, для которых конфигурационная переменная binary конфигурационного файла описания турнира serve.cfg установлена в true, исходный текст посылки не отображается, так как может содержать управляющие коды, и во многих случаях (например, в случае посылки архива исходных текстов) его отображение вообще бессмысленно. В этом случае ссылка “Download run” — единственный способ ознакомиться с исходным текстом посылки.

37. Данный элемент управления позволяет сравнить исходные тексты двух посылок. Текущая посылка сравнивается с посылкой, номер которой указывается в поле ввода.Для сравнения нужно ввести номер другой посылки и нажать на кнопку “Compare”. Сравнение ведётся с помощью программы diff командой diff -u, при этом указанная посылка будет первым аргументом программы (то есть «старым» файлом), а текущая посылка — вторым аргументом программы (то есть «новым» файлом). Путь к команде diff можно задать с помощью глобальной конфигурационной переменной diff_path.

При отображении страницы просмотра исходного текста в поле ввода номера сравниваемой посылки записывается номер ближайшей (в сторону уменьшения) посылки, для которой значения идентификатора команды, идентификатора языка программирования и идентификатора задачи совпадают со значениями соответствующих полей текущей посылки. Другими словами, по умолчанию в поле ввода номера посылки вписывается предыдущая посылка того же участника по той же задаче.