Всем привет!
Количество контестов на Codeforces неуклонно растёт, а теперь ещё появились и тренировки. Найти среди блогов разбор задач или анонс для конкретного соревнования становится практически невыполнимой задачей, особенно, если соревнование проходило достаточно давно.
В связи с этим нами введена новая возможность прикрепления блогов Codeforces и любых других внешних ресурсов к соревнованиям. Для прикрепления блога достаточно нажать на скрепку под его заголовком и заполнить всплывающую форму. На странице же контеста в боковом фрейме можно прикрепить в качестве ресурса произвольный URL. Там же можно увидеть уже прикреплённые к соревнованию ресурсы. На видимость ресурсов влияет текущая локаль пользователя и состояние соревнования, например, вы не сможете увидеть в этом списке условия задач до начала контеста, а разборы — до его завершения.
Правом на изменение (добавление и удаление) ресурсов соревнования обладают администраторы, менеджеры соревнования, а также все "красные". Ресурсы тренировок, взятые из XML-дескрипторов, редактировать запрещено. Они будут удалены / добавлены после внесения соответствующих изменений в дескриптор.
Было бы круто добавлять из контеста разбор, так чтобы он не публиковался, а после соревнования появился, причём на КФ.
Лучше не выкладывать разбор до начала соревнования (ни в каком виде) :-)
в следующий раз я буду набирать его в блокноте!!
а по сути, хорошо бы иметь возможность, описанную riadwaw. Например, чтобы в полигоне можно было добавлять разбор задачи или что-то в таком духе
UPD хоть убей не понимаю, за что riadwaw набрал свои минусы, а я при этом плюсы О_о
В разделе General в каждой задаче есть раздел Problem tutorial.
он там ничем вроде бы не отличается от блокнота. Я говорил именно про КФ чтобы сверстать можно было под местную разметку
А, ну понятно.
Я имел ввиду, что удобно привязывать разбор к задаче, хранить его в одном месте, и при этом не палить никому.
хм, точно, спасибо)
если б его еще можно было предпросматривать в html...
ну изврат же, изврат))
но на заметку приму)
У нас бы вариант google-doc + предпросмотр.
да это же самое удобное, что только можно придумать!)
Меня сходу смущают следующие пункты.
UPD: Как интересно рейтинг этого комментария менялся за сутки от 0 до +13, а затем до -3.
这个好
I'm glad to see it's finally done. Thanks a lot.
[BUGREPORT]
Только у меня 403 Forbidden на POST реквесте к /data/blogAndContest?action=attachBlogToContest?
Недопилили немного. Поле "Соревнование" пустое.
[BUGREPORT END]
О!...Впервые вижу, чтобы комментарии удаляли по причине нарушений правил CFа...
Мне кажется у вас нет прав, потому что у вас нет прав, а не из-за ошибки. Прочитайте внимательнее кто имеет права связывать посты. Другой вопрос, что тогда бы стоило не показывать скрепку. Ну так бы и написали..
Да, я на это намекнул. Слабо, наверное.
Дело в том, что перерендеривать блоги при каждом посещении страницы — довольно трудоёмкое занятие. Поэтому скрепка показывается всем пользователям. В списке же контестов для пользователя отображаются лишь те, на которые у него есть права. Если нет прав ни на один контест, то список, соответственно, пустой.
Опишите подробнее последовательность действий, которая приводит к 403 Forbidden. Мне не удалось воспроизвести. При попытке отослать форму с невыбранным соревнованием под полем ввода должно появиться соответствующее сообщение об ошибке.
Что мешает добавить js который будет прятать скрепку, если ты не стафф или не красный? Тогда видимо проблема с кешированием будет исчерпана.
Поправьте если я чего-то не так понял.
У некрасных с правами менеджера на контест есть возможность добавить пост к скрепке.
Видимо, спрячем javascript-ом скрепки для всех, кто не является админом, красным и менеджером какого-либо контеста.
$.post("/data/blogAndContest?action=attachBlogToContest? ", {...} );
В консоли). Я бы просто выдавал сообщение какое-то. Но точно не 403. А так все работает. Но эстетика, эстетика. Почему не выводите сообщение что "у вас нет прав ни на один контест" и не ставите
disabled
всей форме?Вы сказали: "перерендеривать блоги при каждом посещении страницы — довольно трудоёмкое занятие"
Присутствие JKeeJ1e30 на сайте гораздо более трудоемкое занятие)). Зачем Перерендиривать? Просто один малый скрипт на фронтенде и немного json. Но скрепка у пользователя которому она не нужна -- однозначно НЕДОПУСТИМО.
Если вы вручную делаете POST-запрос и вам отвечают 403 FORBIDDEN, то, может, не надо такие запросы делать?
Про JS уже писали, читайте выше.
Да понятно, что не надо. Но зачем форбид?
А что еще предлагаете отвечать? Подразумевается, что POST-запрос делает программа, и 403 выглядит самым логичным ответом. Возвращать что-то с кодом 200 вообще идеологически неверно. Можно, конечно, сделать красивую страничку вместо стандартной, но зачем, если запрос не должен производиться человеком напрямую?
прикрепил материалы к div-1 69-го раунда (почему-то были ссылки только в div-2) и обратил внимание, что название топиков никак не фигурирует в "материалах соревнования"
выглядит всё так:
очень часто в названиях статей указано, разбор какой именно задачи/задач описан; сейчас же такая информация теряется
понятно, что это совсем некритичный момент, но может стоит разделить материалы соревнования на четыре подгруппы, а ссылки уже давать названиями тем?
Там же появляются подсказки, если навести мышкой. В них более подробная информация.
ага, забавно
об этом когда-то было сказано? совсем неочевидно, что если навести на них мышкой, то что-то всплывёт
Ну это как Киндер-сюрприз. Сам по себе он прикольный, а внутри супер крутой))))
у меня было тяжёлое бескиндерсюрпризное детство
в любом случае, хорошо бы сделать эту фичу легконаходимой самостоятельно
Буквально два дня назад слышал "важного поведения на hover не должно быть". Т.к. на улице эпоха тачскринов и планшетов.
Часто разборы и анонсы называют так, что: ничего не поймешь, их названия не несут смысловой нагрузки, они длинные и будут коряво смотреться в интерфейсе, могут быть одинаковыми, они не единообразны. Короче, если "Разбор задач №1" заменить на полное название поста, то получится полный треш.
Кроме того, обычно разборов 0-2 штуки (чаще 1), так что это редкий use case.
хм, а если писать "разбор задач №1: <название темы>"?
Между тем, налицо такой use case.
Я не знаю, кто привязывал, но http://mirror.codeforces.com/blog/entry/2216 привязали к div2, хотя в заголовке очевидно написано, что это разбор E div1.
fixed
Немного странно, что незалогиненным пользователям не показывается блок "Материалы соревнования", хотя (в отличие от функциональности "Отослать?", которая им и не будет доступна) при желании докопаться до соответствующего поста в блоге они могут.
Fixed.