Closed alex-karpov closed 8 months ago
В общем предлагаю ResultChecker.calculate_penalty() оставить только в одном месте - внутри ResultChecker.checking().
И мою проверку кругов убрать еще, в ней всех снимает.
В общем, стоит удалить ru комменты из кода и функции сделать тож независимыми от языка или сделать в названии соответствующую пометку: например plural_ru
Мои наработки для маркировки со штрафными кругами (на пункте оценки печатается штраф, спортсмен проезжает требуемое количество штрафных кругов, отмечаясь на станции, может быть дисквалифицирован если проехал меньше, чем надо). Работу над проверкой маркировки параллельно вёл @sergeikobelev и его изменения попали в master. Соответственно, часть моих изменений перестали быть актуальными.
Настройки хронометража
->Штраф
. Переключение настроек в активное / не активное состояние в зависимости от выбранных настроекНастройки хронометража
->Штраф
. Добавлены всплывающие подсказки (ToolTip) к некоторым настройкамResultStatus.MISS_PENALTY_LAP
(пп4.6.12.7 # не прошел назначенное число штрафных кругов)check_penalty_laps()
— проверка количества штрафных кругов. Сравнивает штраф на маркировке и количество отметок в штрафной станцииdetach_penalty_laps()
,detach_penalty_laps2()
— разделение сплита на два массива: отметки на дистанции и отметки на станции на штрафном кругеchecking()
->calculate_penalty()
->checking()
} в нескольких местах: после первой проверки в сплит участника записываются отметки правильно / неправильно, по которым начисляется штраф; во второй проверке проверяется количество пройденных штрафных круговwin32print
2_marked_route_penalty_A5.html
— шаблон для печати штрафа на пункте оценки (номер / штраф) для термоленты 80мм3_marked_route_penalty_80mm.html
— шаблон для печати штрафа на пункте оценки (номер / штраф) на бумаге A5 (лазерный принтер)1_split_printout.html
добавлена печать штрафного времени и штрафных кругов.test_penalty_checking.py
— тесты для начисления штрафаpenalty_calculation()
иpenalty_calculation_free_order()
) не менял.Тестами охвачена проверка штрафа на дистанции. Постарался рассмотреть как можно больше разных случаев. Сомнительные (с моей точки зрения) моменты выделил в test_non_obvious_behavior(). До тестов на проверку количества штрафных кругов не добрался. Для удобства отладки, к тестам добавил информационные сообщения на случай провала: вывод сплитов и курсов, сколько штрафа ожидается и сколько начислено.
Изменения Сергея Кобелева
Разработка велась в ветке
work
, параллельно с другими изменениями. Изменения влиты вmaster
13 июля. Пробую перечислить отдельные коммиты.Modification of courses for marked route (Russian event type with deсision points)
7 марта
Добавлено диалоговое окно Подготовка к старту -> Изменение дистанций для маркировки — для создания курсов маркировки:
31
->31(31,131)
Check penalty legs visiting
7 марта, branch marked_route_lap_control
Добавлена функция
marked_route_check_penalty_laps()
. Считает количество отметок на станции на штрафном круге и сравнивает с начисленным штрафом. Отсутствует проверка, чтобы штрафные круги обязательно были в конце дистанции.По всей видимости, предполагается, что за лишние отметки штраф начисляться не будет.
Смущает часть:
if mr_if_counting_lap: count_laps = -1
. Возможно, частный случай, когда отметка на штрафном круге совмещена с последним КП. Я обычно прошу, чтобы станцию отметки ставили в дальней части штрафного круга, тогда -1 не нужен.Спортсмен снимается со статусом
ResultStatus.MISSING_PUNCH
(как и при обычной неправильной отметки на заданке) и с комментариемп.п.4.6.12.7
(не прошел назначенное число штрафных кругов).Marked route reports
10 марта, branch marked_route_reports
Добавлены шаблоны:
1_маркировка_с_изображением.html
и1_сплиты_маркировка_только_штраф.html
— сплиты для маркировки2_маркировка_WO.html
и2_маркировка_номер_и_штраф.html
— распечатки для пункта оценки: номер участника и штраф.9_официальный_протокол_штраф_круги_word.docx
и9_официальный_протокол_штраф_минуты_word.docx
— шаблоны результатов для WordCheck result before penalty calculation. Prevent negative penalty (23:59:00 for -1)
23 марта, branch penalty_bug
Проверка штрафа перенесена после проверки правильности прохождения. Штраф не может быть отрицательным.
Disqualify people at file open / event change
23 марта, branch marked_route_dsq_on_file_open
Проверка штрафа и снятие спортсменов за не прохождение штрафных кругов происходит при старте спорторга.
Penalty calculation optimization on file open / import / event change
23 марта, branch penalty_calculation_optimization
Отменён предыдущий коммит, проверка штрафа происходит в другом месте.
New mode for time penalty - add penalty for extra controls
29 марта, branch penalty_for_extra_cp
!!! ветка не влита в
master
!!!Добавлен режим начисления штрафа за лишние КП. Не знаю, как работает, не разбирался.
Изменено диалоговое окно
Настройки хронометража
->Расчёт штрафа из сплитов
. При разных комбинациях настроек другие настройки пропадают. С первого взгляда выглядит неудобно. Логичнее, чтобы оставались видны, но деактивировались, в своей версии сделал таким способом.Version 1.6 release. Sum places - was inaccurate copy-pasted from sum scores. Word templates - new ranking places, macro for ranking replaced with direct realisation (Jinja2 works quite instable).
24 мая, branch penalty_laps_printout
Исправлена неточность при печати штрафа в распечатке через
win32print
.penalty_laps_printout and some templates
24 мая
Не содержится изменений, связанных с маркировкой.
Печать штрафа и штрафных кругов в сплитах через win32print. Ветка интегрирована в master.
Эти ветки влиты в master, можно удалять:
marked_route_dsq_on_file_open
,penalty_calculation_optimization
,penalty_bug
,marked_route_reports
,marked_route_lap_control
. Эта ветка ещё не влита в master:penalty_for_extra_cp