#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) { composable(StudeezDestinations.TASKS_SCREEN) {
TaskRoute( TaskRoute(
goBack = goBack, goBack = goBack,
open = open,
viewModel = hiltViewModel(), viewModel = hiltViewModel(),
) )
} }

View file

@ -25,7 +25,7 @@ class FireBaseSubjectDAO @Inject constructor(
} }
override fun deleteSubject(oldSubject: Subject) { override fun deleteSubject(oldSubject: Subject) {
TODO("Not yet implemented") currentUserSubjectsCollection().document(oldSubject.id).delete()
} }
private fun currentUserSubjectsCollection(): CollectionReference = private fun currentUserSubjectsCollection(): CollectionReference =

View file

@ -34,23 +34,24 @@ data class TaskActions(
val deleteSubject: () -> Unit, val deleteSubject: () -> Unit,
) )
fun getTaskActions(viewModel: TaskViewModel): TaskActions { fun getTaskActions(viewModel: TaskViewModel, open: (String) -> Unit): TaskActions {
return TaskActions( return TaskActions(
addTask = viewModel::addTask, addTask = viewModel::addTask,
getTasks = viewModel::getTasks, getTasks = viewModel::getTasks,
getSubject = { Subject(name = "Test Subject") }, getSubject = viewModel::getSelectedSubject,
deleteSubject = {}, deleteSubject = { viewModel.deleteSubject(open) },
) )
} }
@Composable @Composable
fun TaskRoute( fun TaskRoute(
goBack: () -> Unit, goBack: () -> Unit,
open: (String) -> Unit,
viewModel: TaskViewModel, viewModel: TaskViewModel,
) { ) {
TaskScreen( TaskScreen(
goBack = goBack, 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 package be.ugent.sel.studeez.screens.tasks
import be.ugent.sel.studeez.data.SelectedSubject 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.data.local.models.task.Task
import be.ugent.sel.studeez.domain.LogService 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.domain.TaskDAO
import be.ugent.sel.studeez.navigation.StudeezDestinations
import be.ugent.sel.studeez.screens.StudeezViewModel import be.ugent.sel.studeez.screens.StudeezViewModel
import dagger.hilt.android.lifecycle.HiltViewModel import dagger.hilt.android.lifecycle.HiltViewModel
import kotlinx.coroutines.flow.Flow import kotlinx.coroutines.flow.Flow
@ -12,6 +15,7 @@ import javax.inject.Inject
@HiltViewModel @HiltViewModel
class TaskViewModel @Inject constructor( class TaskViewModel @Inject constructor(
private val taskDAO: TaskDAO, private val taskDAO: TaskDAO,
private val subjectDAO: SubjectDAO,
private val selectedSubject: SelectedSubject, private val selectedSubject: SelectedSubject,
logService: LogService, logService: LogService,
) : StudeezViewModel(logService) { ) : StudeezViewModel(logService) {
@ -22,4 +26,13 @@ class TaskViewModel @Inject constructor(
fun getTasks(): Flow<List<Task>> { fun getTasks(): Flow<List<Task>> {
return taskDAO.getTasks(selectedSubject()) return taskDAO.getTasks(selectedSubject())
} }
fun deleteSubject(open: (String) -> Unit) {
subjectDAO.deleteSubject(selectedSubject())
open(StudeezDestinations.SUBJECT_SCREEN)
}
fun getSelectedSubject(): Subject {
return selectedSubject()
}
} }