Fix excuse button showing up despite no lessons available to excuse (#1607)

This was happening when there was an unexcused lesson that you excused until the teacher sent a response (accepted or denied it)
This commit is contained in:
Michael 2021-10-27 10:07:04 +02:00 committed by GitHub
parent de11644e9b
commit 1d910f8d66
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 4 additions and 5 deletions

View File

@ -46,7 +46,7 @@ class AttendanceAdapter @Inject constructor() :
onExcuseCheckboxSelect(item, checked)
}
when (if (item.excuseStatus != null) SentExcuseStatus.valueOf(item.excuseStatus) else null) {
when (item.excuseStatus?.let { SentExcuseStatus.valueOf(it)}) {
SentExcuseStatus.WAITING -> {
attendanceItemExcuseInfo.setImageResource(R.drawable.ic_excuse_waiting)
attendanceItemExcuseInfo.visibility = View.VISIBLE

View File

@ -259,9 +259,8 @@ class AttendancePresenter @Inject constructor(
showEmpty(filteredAttendance.isEmpty())
showErrorView(false)
showContent(filteredAttendance.isNotEmpty())
showExcuseButton(filteredAttendance.any { item ->
(!isParent && isVulcanExcusedFunctionEnabled) || (isParent && item.isExcusableOrNotExcused)
})
val anyExcusables = filteredAttendance.any { it.isExcusableOrNotExcused }
showExcuseButton(anyExcusables && (isParent || isVulcanExcusedFunctionEnabled))
}
analytics.logEvent(
"load_data",

View File

@ -17,7 +17,7 @@ private inline val AttendanceSummary.allAbsences: Double
get() = absence.toDouble() + absenceExcused
inline val Attendance.isExcusableOrNotExcused: Boolean
get() = excusable || ((absence || lateness) && !excused)
get() = (excusable || ((absence || lateness) && !excused)) && excuseStatus == null
fun AttendanceSummary.calculatePercentage() = calculatePercentage(allPresences, allAbsences)