Skip to content
Snippets Groups Projects
Commit 799aeb56 authored by Thabo Bals's avatar Thabo Bals
Browse files

orders the attendance by date

parent 8a889e30
No related branches found
No related tags found
1 merge request!101Ordered attendance
...@@ -685,21 +685,34 @@ export function generateAttendanceHtml( ...@@ -685,21 +685,34 @@ export function generateAttendanceHtml(
function generateAttendanceRowHtml(name: string, data: Attendance): string { function generateAttendanceRowHtml(name: string, data: Attendance): string {
const sum = data.sum() / 100; const sum = data.sum() / 100;
const bar = `
<div class="percentage-bar">
<div style="width: ${data.present / sum}%;background-color: darkgreen"></div>
<div style="width: ${data.noshow_excused / sum}%;background-color: yellow"></div>
<div style="width: ${data.noshow / sum}%;background-color: red"></div>
</div>`;
return ` return `
<tr> <tr>
<td> ${name} </td> <td> ${name} </td>
<td> ${bar} </td> <td> ${generatePercentageBar(data)} </td>
<td> ${data.present} </td> <td> ${data.present} </td>
<td> ${data.noshow_excused} </td> <td> ${data.noshow_excused} </td>
<td> ${data.noshow}</td> <td> ${data.noshow}</td>
<td> ${(data.present / sum).toFixed(1)}% </td> <td> ${(data.present / sum).toFixed(1)}% </td>
</tr>`; </tr>`;
} }
function generatePercentageBar(data: Attendance): string {
const width = 100 / data.sum();
const tagged: { value: number; color: string }[] = [
...data.presents.map((value) => ({ value, color: "darkgreen" })),
...data.noshows.map((value) => ({ value, color: "red" })),
...data.noshow_excuseds.map((value) => ({ value, color: "yellow" })),
];
// Sort by number
tagged.sort((a, b) => a.value - b.value);
var barHtml = '<div class="percentage-bar">';
// Iterate in order
for (const { color } of tagged) {
barHtml += `<div style="width: ${width}%;background-color: ${color}"></div>`;
}
barHtml += "</div>";
return barHtml;
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment