Про техчасть электронных маршрутников. Я уже очень экспрессивно где-то поругался, когда понял, как примерно работает текущая система (и почему у всех с ней будут проблемы, которые таки и были и будут всегда, если оставить текущий принцип). Не надо делать так, как сделано сейчас. Вот вообще не надо. Должна быть возможность явно сохранять и перезаписывать ответы в каждый КП, сохранённые ответы должны явно выводиться как рядом с каждым КП (и кто и когда сохранил, например, тоже), так и при сдаче этапа. Это фоновое сохранение, когда ты никак не знаешь, сохранилось оно или нет (и как показала практика - часто нет) - оно ни к чему. Оно всегда будет ломаться, всегда будут претензии из разряда "я писал одно, а почему не зачли", потому что логически такую систему невозможно сделать непротиворечивой. Я только на гугл доках видел работающий вариант такой технологии, но они там активно используют local storage и чертову кучу сложных штук, а сервера гугл не в пример надежнее.
Я бы посоветовал сохранять введённые ответы только в local storage (чтоб открытие/закрытие страницы не сбрасывало текстовые поля), а на сервер - только явным нажатием кнопки сохранить, отдельно для каждого КП. Но тем или иным способом тащить в фоне с сервера вновь сохранённые результаты и отображать их рядом с полем с пометкой кто и когда сохранил. При попытке сохранения проверять, что не перезаписываем, и если что - выводить предупреждение, мол вы хотите перезаписать такой-то ответ такого-то однокомандника сохранённый тогда-то своим таким-то ответом. При сдаче этапа выводить сводную таблицу всех сохранённых на сервер ответов для проверки. Это будет намного нагляднее, и, что наиболее важно, никогда не сломается чисто by design. Ни при перегрузках сервера, ни при временном пропадании интернета, ни при каких других ситуациях. То, что пытаетесь сделать вы, в большинстве проблемных случаев, работать не будет, как бы вы ни извращались. Пример: у обоих участников команды пропадает периодически интернет. Оба немного, но по-разному, изменили один из ответов. Как мерджить изменения? Там могут быть совершенно разные ситуации, которые сломают любой ваш алгоритм. Как показать одному, что его ответ не сохранился? У вас, в общем, сейчас катастрофически ненаглядная система, которая делает какую-то магию под капотом, но на эту магию невозможно положиться. Просто не делайте так. Не меняйте в открытой странице edit'ы и всё. Всё через оправку формы на сервер, с предварительной проверкой через JS. Бонусом (немаловажным!) будет то, что оно будет работать вообще без JS (по крайней мере это элементарно делается, немного хуже будет правда юзабилити у тех, у кого не работает JS). Но основной посыл в том, что всё будет наглядно, и эту систему невозможно будет сломать одновременным редактированием, случайным перескоком в не то поле (Tab, тач скрин, тач пад), любыми проблемами с сервером и любыми проблемами с клиентом (самая понятная - нестабильный коннект).
Могу накидать даже описание того, как и что должно работать, где должны быть какие блокировки, чтоб случайно не перезаписать или не потерять сохранённое, ну и т.д. Там буквально на страничку. Но гарантированно ничто никогда не потеряется и не запортится.