From 5dfe7328b6d0d9e1c5984cbe88173574276d3511 Mon Sep 17 00:00:00 2001 From: madeliri Date: Mon, 13 Apr 2026 17:19:40 +0300 Subject: [PATCH] =?UTF-8?q?fix:=20=D0=BA=D0=BE=D1=81=D0=BD=D0=BE=D1=8F?= =?UTF-8?q?=D0=B7=D1=8B=D1=87=D0=B5=D1=81=D1=82=D0=B2=D0=BE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- modules/db.R | 2 +- modules/global_options.R | 6 +++++- modules/scheme_generator.R | 36 ++++++++++++++---------------------- modules/utils.R | 2 +- 4 files changed, 21 insertions(+), 25 deletions(-) diff --git a/modules/db.R b/modules/db.R index fd3c22f..192b133 100644 --- a/modules/db.R +++ b/modules/db.R @@ -39,7 +39,7 @@ check_if_table_is_exist_and_init_if_not = function( if (table_name %in% DBI::dbListTables(con)) { - cli::cli_inform(c("*" = "таблица есть такая: '{table_name}'")) + cli::cli_inform(c("*" = "проверка таблицы в базе данных: '{table_name}'")) # если таблица существует, производим проверку структуры таблицы compare_existing_table_with_schema( diff --git a/modules/global_options.R b/modules/global_options.R index 3424850..0bed070 100644 --- a/modules/global_options.R +++ b/modules/global_options.R @@ -29,6 +29,10 @@ check_and_init_scheme = function() { cli::cli_inform(c("*" = "проверка схемы...")) + files_to_watch <- c( + "modules/scheme_generator.R" + ) + scheme_names <- enabled_schemas scheme_file <- paste0("configs/schemas/", scheme_names, ".xlsx") scheme_file <- stats::setNames(scheme_file, scheme_names) @@ -40,7 +44,7 @@ check_and_init_scheme = function() { hash_file <- "temp/schema_hash.rds" # - exist_hash <- tools::md5sum(scheme_file) + exist_hash <- tools::md5sum(c(scheme_file, files_to_watch)) # если первый запуск (нет файла с кешем) инициализация схемы if (!file.exists(hash_file) | !file.exists("scheme.rds") | !all(file.exists(db_files))) { diff --git a/modules/scheme_generator.R b/modules/scheme_generator.R index 8fd4e9a..299eba7 100644 --- a/modules/scheme_generator.R +++ b/modules/scheme_generator.R @@ -36,7 +36,7 @@ scheme_R6 <- R6::R6Class( private$main_key_id <- self$get_key_id("main") box::use(modules/utils) - private$testest <- bslib::navset_card_underline( + private$bslib_rendered_ui <- bslib::navset_card_underline( id = "main", !!!utils$make_list_of_pages(private$schemes_list[["main"]], private$main_key_id), header = NULL, @@ -47,7 +47,7 @@ scheme_R6 <- R6::R6Class( get_all_ids = function(table_name) { private$schemes_list[[table_name]] |> - dplyr::filter(!form_type %in% private$exluded_types) |> + dplyr::filter(!form_type %in% private$excluded_types) |> dplyr::distinct(form_id) |> dplyr::pull(form_id) @@ -65,32 +65,24 @@ scheme_R6 <- R6::R6Class( }, - extract_forms_id_and_types_from_scheme2 = function(scheme) { - - form_id_and_types_list <- scheme |> - dplyr::filter(!form_type %in% private$exluded_types) |> - dplyr::distinct(form_id, form_type) |> - tibble::deframe() - - list( - key = form_id_and_types_list[1], - form = form_id_and_types_list[-1] - ) - }, - - # get_key_id = function(table_name) { - # self$extract_forms_id_and_types_from_scheme2(private$schemes_list[[table_name]]) - # }, + # возврат схемы ------------------------------------ + ## полностью ------- get_schema = function(table_name) { private$schemes_list[[table_name]] }, + ## с полями имеющие значение ------- + get_schema_with_values_forms = function(table_name) { + private$schemes_list[[table_name]] |> + dplyr::filter(!form_type %in% private$excluded_types) + }, + get_id_type_list = function(table_name) { # wo main key this_key_id <- self$get_key_id(table_name) private$schemes_list[[table_name]] |> - dplyr::filter(!form_type %in% private$exluded_types) |> + dplyr::filter(!form_type %in% private$excluded_types) |> dplyr::filter(form_id != {{this_key_id}}) |> dplyr::distinct(form_id, form_type) |> tibble::deframe() @@ -107,7 +99,7 @@ scheme_R6 <- R6::R6Class( private$nested_forms_names }, get_main_form_ui = function() { - private$testest + private$bslib_rendered_ui } ), private = list( @@ -115,8 +107,8 @@ scheme_R6 <- R6::R6Class( schemes_list = NULL, main_key_id = NA, nested_forms_names = NA, - testest = NA, - exluded_types = c("inline_table", "nested_forms","description", "description_header"), + bslib_rendered_ui = NA, + excluded_types = c("nested_forms", "description", "description_header"), load_scheme_from_xlsx = function(sheet_name) { diff --git a/modules/utils.R b/modules/utils.R index 8e1dd76..e89cc12 100644 --- a/modules/utils.R +++ b/modules/utils.R @@ -1,6 +1,6 @@ #' @export make_list_of_pages = function(main_schema, main_key_id) { - cli::cli_alert_success("AAAA") + purrr::map( .x = unique(main_schema$part), .f = \(page_name) {