feat: корректное обновление счетчика задач на кнопке + список просроченных задач

This commit is contained in:
2026-04-24 12:15:38 +03:00
parent c8da651e72
commit 4b05fbafc2
2 changed files with 51 additions and 43 deletions

View File

@@ -329,6 +329,19 @@ server <- function(id, values, scheme, mhcs) {
display_tasks_dt_review()
})
### просроченные ------------
observeEvent(input$show_dt_overdue, {
con <- db$make_db_connection(scheme(),"display_task_modal")
on.exit(db$close_db_connection(con, "display_task_modal"), add = TRUE)
values$tasks_data <- DBI::dbGetQuery(con, glue::glue("SELECT * FROM tasks WHERE task_status = 'active' AND task_due_date < {as.integer(Sys.Date())}")) |>
dplyr::mutate(dplyr::across(c("task_datetime_created", "task_datetime_last_updated", "task_datetime_completed"), as.POSIXct)) |>
dplyr::mutate(dplyr::across(c("task_due_date"), as.Date))
display_tasks_dt_review()
})
### modal -----
display_tasks_dt_review <- function() {
@@ -408,14 +421,25 @@ update_task_button_count <- function(con, values, ns) {
inputID <- "display_task_modal"
if (!missing(ns)) inputID <- ns(inputID)
if (is.null(values$main_key)) {
updateActionButton(inputId = inputID, label = "Задачи: нет активных")
return()
}
if ("tasks" %in% DBI::dbListTables(con)) {
tasks_num <- DBI::dbGetQuery(con, glue::glue("SELECT COUNT ('task_id') FROM tasks WHERE task_main_key = '{values$main_key}' AND task_status = 'active'")) |>
dplyr::pull()
if (tasks_num > 0) {
updateActionButton(inputId = inputID, label = paste("активных задач:", tasks_num))
} else {
updateActionButton(inputId = inputID, label = "Задачи: нет активных")
}
}