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