Automation Tracker · Repetitive & Reports backlog

All Repetitive Reports
@php $pct = $overview['percent']; $ryg = $pct >= 60 ? '#16a34a' : ($pct >= 40 ? '#d97706' : '#dc2626'); // Deterministic colour per module for the pre-requisite chips. $prqPalette = [['#dbeafe','#1e40af'],['#dcfce7','#166534'],['#fef3c7','#92400e'],['#fee2e2','#991b1b'],['#f3e8ff','#6b21a8'],['#cffafe','#155e75'],['#ffe4e6','#9f1239'],['#ecfccb','#3f6212'],['#fae8ff','#86198f'],['#e0e7ff','#3730a3'],['#fef9c3','#854d0e'],['#e5e7eb','#374151']]; $prqColor = fn ($m) => $prqPalette[abs(crc32((string) $m)) % count($prqPalette)]; @endphp
{{ rtrim(rtrim(number_format($pct,1),'0'),'.') }}%
Overall progress
{{ $overview['done'] }}
Done
{{ $overview['in_progress'] }}
In progress
{{ $overview['not_started'] }}
Not started
{{ $overview['total'] }}
Total items
@if (! count($rows))
No tracker items yet. @if ($canManage)Upload your ERP QA Tracker sheet(s) below.@endif
@endif @php // Group the flat, pre-ordered rows into area → submodule so we can render the // epic/story accordion cards. Keys keep first-seen order; a category is part of // the area key so a same-named area under Repetitive vs Reports stays separate. $areas = []; foreach ($rows as $r) { $ak = $r['category'].'||'.$r['area']; $areas[$ak] ??= ['area' => $r['area'], 'category' => $r['category'], 'count' => 0, 'subs' => []]; $sk = ($r['submodule'] ?? '') !== '' ? $r['submodule'] : '__none__'; $areas[$ak]['subs'][$sk] ??= ['name' => $r['submodule'] ?: null, 'rows' => []]; $areas[$ak]['subs'][$sk]['rows'][] = $r; $areas[$ak]['count']++; } @endphp
@forelse ($areas as $area)
@foreach ($area['subs'] as $sub) @if ($sub['name'])
@include('livewire.partials.trk-table', ['rows' => $sub['rows'], 'canManage' => $canManage, 'authorOptions' => $authorOptions, 'prqColor' => $prqColor])
@else
@include('livewire.partials.trk-table', ['rows' => $sub['rows'], 'canManage' => $canManage, 'authorOptions' => $authorOptions, 'prqColor' => $prqColor])
@endif @endforeach
@empty @endforelse
{{-- Pre-requisite modal --}} @php $prereqItem = $prereqFor ? collect($rows)->firstWhere('id', $prereqFor) : null; @endphp @if ($canManage && $prereqItem)
Pre-requisites · {{ $prereqItem['name'] }}
@foreach ($moduleOptions as $opt) @php [$ob, $of] = $prqColor($opt); @endphp @endforeach
@endif {{-- Automated-tests (link) modal --}} @php $mapItem = $mappingFor ? collect($rows)->firstWhere('id', $mappingFor) : null; @endphp @if ($canManage && $mapItem)
Automated tests · {{ $mapItem['name'] }}
@if (count($mapItem['cases']))
@foreach ($mapItem['cases'] as $c) @php $d = $c['status']==='PASS'?'p':($c['status']==='FAIL'?'f':($c['status']==='SKIP'?'s':'')); @endphp {{ $c['name'] }} @endforeach
@else

No test cases linked yet.

@endif
@forelse ($picker as $c) @empty No matching unlinked test cases. @endforelse
@if ($pickerTotal > count($picker))

Showing {{ count($picker) }} of {{ $pickerTotal }} — refine your search.

@endif
@endif