#25 delete subject
This commit is contained in:
parent
056947e1db
commit
da4c51b726
4 changed files with 20 additions and 5 deletions
|
@ -159,6 +159,7 @@ fun StudeezNavGraph(
|
|||
composable(StudeezDestinations.TASKS_SCREEN) {
|
||||
TaskRoute(
|
||||
goBack = goBack,
|
||||
open = open,
|
||||
viewModel = hiltViewModel(),
|
||||
)
|
||||
}
|
||||
|
|
|
@ -25,7 +25,7 @@ class FireBaseSubjectDAO @Inject constructor(
|
|||
}
|
||||
|
||||
override fun deleteSubject(oldSubject: Subject) {
|
||||
TODO("Not yet implemented")
|
||||
currentUserSubjectsCollection().document(oldSubject.id).delete()
|
||||
}
|
||||
|
||||
private fun currentUserSubjectsCollection(): CollectionReference =
|
||||
|
|
|
@ -34,23 +34,24 @@ data class TaskActions(
|
|||
val deleteSubject: () -> Unit,
|
||||
)
|
||||
|
||||
fun getTaskActions(viewModel: TaskViewModel): TaskActions {
|
||||
fun getTaskActions(viewModel: TaskViewModel, open: (String) -> Unit): TaskActions {
|
||||
return TaskActions(
|
||||
addTask = viewModel::addTask,
|
||||
getTasks = viewModel::getTasks,
|
||||
getSubject = { Subject(name = "Test Subject") },
|
||||
deleteSubject = {},
|
||||
getSubject = viewModel::getSelectedSubject,
|
||||
deleteSubject = { viewModel.deleteSubject(open) },
|
||||
)
|
||||
}
|
||||
|
||||
@Composable
|
||||
fun TaskRoute(
|
||||
goBack: () -> Unit,
|
||||
open: (String) -> Unit,
|
||||
viewModel: TaskViewModel,
|
||||
) {
|
||||
TaskScreen(
|
||||
goBack = goBack,
|
||||
taskActions = getTaskActions(viewModel = viewModel),
|
||||
taskActions = getTaskActions(viewModel = viewModel, open = open),
|
||||
)
|
||||
}
|
||||
|
||||
|
|
|
@ -1,9 +1,12 @@
|
|||
package be.ugent.sel.studeez.screens.tasks
|
||||
|
||||
import be.ugent.sel.studeez.data.SelectedSubject
|
||||
import be.ugent.sel.studeez.data.local.models.task.Subject
|
||||
import be.ugent.sel.studeez.data.local.models.task.Task
|
||||
import be.ugent.sel.studeez.domain.LogService
|
||||
import be.ugent.sel.studeez.domain.SubjectDAO
|
||||
import be.ugent.sel.studeez.domain.TaskDAO
|
||||
import be.ugent.sel.studeez.navigation.StudeezDestinations
|
||||
import be.ugent.sel.studeez.screens.StudeezViewModel
|
||||
import dagger.hilt.android.lifecycle.HiltViewModel
|
||||
import kotlinx.coroutines.flow.Flow
|
||||
|
@ -12,6 +15,7 @@ import javax.inject.Inject
|
|||
@HiltViewModel
|
||||
class TaskViewModel @Inject constructor(
|
||||
private val taskDAO: TaskDAO,
|
||||
private val subjectDAO: SubjectDAO,
|
||||
private val selectedSubject: SelectedSubject,
|
||||
logService: LogService,
|
||||
) : StudeezViewModel(logService) {
|
||||
|
@ -22,4 +26,13 @@ class TaskViewModel @Inject constructor(
|
|||
fun getTasks(): Flow<List<Task>> {
|
||||
return taskDAO.getTasks(selectedSubject())
|
||||
}
|
||||
|
||||
fun deleteSubject(open: (String) -> Unit) {
|
||||
subjectDAO.deleteSubject(selectedSubject())
|
||||
open(StudeezDestinations.SUBJECT_SCREEN)
|
||||
}
|
||||
|
||||
fun getSelectedSubject(): Subject {
|
||||
return selectedSubject()
|
||||
}
|
||||
}
|
Reference in a new issue