Added filter to hide removed students.
This commit is contained in:
parent
0a0bbe22c9
commit
1d4d98665d
|
@ -30,6 +30,7 @@ enum TableView {
|
|||
const students: Ref<EntriesResponseStudent[]> = ref([])
|
||||
const sortingChoice: Ref<string> = ref('name')
|
||||
const selectedView: Ref<TableView> = ref(TableView.FULL)
|
||||
const hideRemovedStudents: Ref<boolean> = ref(false)
|
||||
|
||||
const lastSaveState: Ref<string | null> = ref(null)
|
||||
const lastSaveStateTimestamp: Ref<number> = ref(0)
|
||||
|
@ -216,6 +217,13 @@ function getVisibleDates(): string[] {
|
|||
return []
|
||||
}
|
||||
|
||||
function getVisibleStudents(): EntriesResponseStudent[] {
|
||||
if (hideRemovedStudents.value === true) {
|
||||
return students.value.filter(s => !s.removed && s.classId === props.classId)
|
||||
}
|
||||
return students.value
|
||||
}
|
||||
|
||||
function getVisibleStudentEntries(student: EntriesResponseStudent): Record<string, Entry | null> {
|
||||
if (selectedView.value === TableView.FULL) return student.entries
|
||||
if (selectedView.value === TableView.TODAY) {
|
||||
|
@ -267,6 +275,12 @@ defineExpose({
|
|||
<option :value="TableView.WHITEBOARD">Whiteboard View</option>
|
||||
<option :value="TableView.TODAY">Today View</option>
|
||||
</select>
|
||||
|
||||
<span>
|
||||
<input type="checkbox" id="show-removed-students-checkbox" v-model="hideRemovedStudents" />
|
||||
<label for="show-removed-students-checkbox" style="display: inline; font-size: small;">Hide Removed
|
||||
Students</label>
|
||||
</span>
|
||||
</div>
|
||||
|
||||
<p v-if="selectedView === TableView.GRADING">
|
||||
|
@ -285,16 +299,13 @@ defineExpose({
|
|||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr v-for="(student, idx) in students" :key="student.id" style="height: 2em;">
|
||||
<tr v-for="(student, idx) in getVisibleStudents()" :key="student.id" style="height: 2em;">
|
||||
<td v-if="selectedView !== TableView.WHITEBOARD" style="text-align: right; padding-right: 0.5em;">{{ idx + 1
|
||||
}}.</td>
|
||||
<StudentNameCell :student="student" :class-id="classId" />
|
||||
<!-- Desk Number: -->
|
||||
<td v-if="assignedDesks" v-text="student.deskNumber"></td>
|
||||
<!-- A cell for each entry in the table's date range: -->
|
||||
<EntryTableCell v-for="(entry, date) in getVisibleStudentEntries(student)" :key="date"
|
||||
v-model="student.entries[date]" :date-str="date" :last-save-state-timestamp="lastSaveStateTimestamp" />
|
||||
<!-- Score cell: -->
|
||||
<StudentScoreCell :score="student.score" v-if="selectedView !== TableView.WHITEBOARD" />
|
||||
</tr>
|
||||
</tbody>
|
||||
|
|
Loading…
Reference in New Issue