You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Balloon and print tasks are never created, so the staff screen is structurally empty #87
App\Models\Task tem exatamente o formato da tasktable do BOCA: task_number, description, filename, file_path, color_name, color_hex, staff_id, completed_time. O StaffController está documentado como "Staff task screen (BOCA's staff/task.php) — printing/balloon-delivery style tasks that a staff member claims and marks done", lista as tarefas do concurso e deixa o staff concluir uma.
O que não existe
Nada cria uma Task. Não há um único Task::create(), Task::firstOrCreate() ou new Task em app/:
Então a tela do staff está estruturalmente vazia em qualquer competição real. As factories criam Tasks para os testes, o que faz a tela parecer coberta.
De onde as tarefas viriam
No BOCA, duas fontes:
Impressão — src/team/task.php é a tela onde o competidor envia um arquivo para imprimir, e o staff recebe na fila. É por isso que Task tem filename/file_path. microHelium não tem rota nenhuma de time para isso (php artisan route:list não mostra nada de print/task para competidor).
Balões — src/staff/task.php e src/admin/task.php renderizam balloonurl($task[$i]["color"]), a cor vindo do problema. É por isso que Task tem color_name/color_hex, e Problem também tem os dois. Nada liga uma coisa na outra.
O CD-MOJ tem a mesma peça, server/api/v1/lib/print.sh, descrita como "fila/balões/escopo de sede" — com escopo por sede, que é relevante aqui porque Task já tem site_id.
Escopo sugerido
Criar a task de balão automaticamente no primeiro AC de uma equipe num problema, copiando color_name/color_hex do Problem. O gancho natural é onde Score::updateScore() já é chamado, no fim do julgamento.
Fila de impressão: rota de competidor que envia arquivo, virando Task com filename/file_path. Decidir se entra nesta fase.
Escopo por sede: o staff de uma sede não deveria ver a fila de outra. Task.site_id já existe; o StaffController hoje filtra só por concurso.
Por que importa
Balão é a única coisa que o público de uma maratona enxerga acontecendo. Uma tela de staff que nunca recebe nada é pior do que não ter a tela: ela passa a impressão de que a função existe.
Activity
feat(staff): print queue -- a team sends a file, staff pick it up (#94)…
O event feed da Contest API (issue #219) (#232)
SRS consolidado substitui o rascunho, e corrige dois erros dos manuais (
Fecha as tres janelas do pipeline de julgamento, e os testes que as f…