fix: backfill binaryDecision, fix boolean criterion lookup, add assign buttons
All checks were successful
Build and Push Docker Image / build (push) Successful in 10m9s

- Backfilled 166 evaluations' binaryDecision from criterionScoresJson on production DB
- Fixed roundEvaluationScores and ai-ranking to look in EvaluationForm.criteriaJson
  instead of round.configJson for the boolean "Move to the Next Stage?" criterion
- Added advanceMode (count/threshold) toggle to round config Advancement Targets
- Added "Assign to Jurors" button on Unassigned Projects section and Projects tab bulk bar

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-03-02 12:48:08 +01:00
parent 19b58e4434
commit 2df9c54de2
6 changed files with 142 additions and 70 deletions

View File

@@ -59,6 +59,7 @@ import {
Search,
ExternalLink,
Sparkles,
Users,
} from 'lucide-react'
import Link from 'next/link'
import type { Route } from 'next'
@@ -78,9 +79,10 @@ const stateConfig: Record<ProjectState, { label: string; color: string; icon: Re
type ProjectStatesTableProps = {
competitionId: string
roundId: string
onAssignProjects?: (projectIds: string[]) => void
}
export function ProjectStatesTable({ competitionId, roundId }: ProjectStatesTableProps) {
export function ProjectStatesTable({ competitionId, roundId, onAssignProjects }: ProjectStatesTableProps) {
const [selectedIds, setSelectedIds] = useState<Set<string>>(new Set())
const [stateFilter, setStateFilter] = useState<string>('ALL')
const [searchQuery, setSearchQuery] = useState('')
@@ -321,6 +323,16 @@ export function ProjectStatesTable({ competitionId, roundId }: ProjectStatesTabl
<ArrowRight className="h-3.5 w-3.5 mr-1.5" />
Change State
</Button>
{onAssignProjects && (
<Button
variant="outline"
size="sm"
onClick={() => onAssignProjects(Array.from(selectedIds))}
>
<Users className="h-3.5 w-3.5 mr-1.5" />
Assign to Jurors
</Button>
)}
<Button
variant="outline"
size="sm"