#25 delete subject

This commit is contained in:
brreynie 2023-05-02 23:07:04 +02:00
parent 056947e1db
commit da4c51b726
4 changed files with 20 additions and 5 deletions

View file

@ -159,6 +159,7 @@ fun StudeezNavGraph(
composable(StudeezDestinations.TASKS_SCREEN) {
TaskRoute(
goBack = goBack,
open = open,
viewModel = hiltViewModel(),
)
}

View file

@ -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 =

View file

@ -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),
)
}

View file

@ -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()
}
}