From 358a238f4e527ccc3de12a74e48e2246bf66a175 Mon Sep 17 00:00:00 2001 From: madeliri Date: Mon, 8 Jun 2026 21:53:15 +0300 Subject: [PATCH] =?UTF-8?q?0.18.1=20=20(fix=20-=20=D0=BA=D0=BE=D1=80=D1=80?= =?UTF-8?q?=D0=B5=D0=BA=D1=82=D0=BD=D1=8B=D0=B9=20=D1=8D=D0=BA=D1=81=D0=BF?= =?UTF-8?q?=D0=BE=D1=80=D1=82=20=D0=B8=20=D0=B8=D0=BC=D0=BF=D0=BE=D1=80?= =?UTF-8?q?=D1=82=20=D1=82=D0=B5=D0=BA=D1=81=D1=82=D0=BE=D0=B2=D1=8B=D1=85?= =?UTF-8?q?=20=D0=B4=D0=B0=D0=BD=D0=BD=D1=8B=D1=85)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CHANGELOG.md | 4 ++++ README.md | 1 + app.R | 10 ++++++---- descr.yml | 2 +- modules/db.R | 5 +++-- 5 files changed, 15 insertions(+), 7 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 9e5f9a6..5a3a7b7 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,7 @@ +### 0.18.1 (2026-06-08) +##### fix +- правильный экспорт текстовых данных + ### 0.18.0 (2026-06-06) ##### features - возможность отрганичить доступ к базам данных для отдельных пользователей diff --git a/README.md b/README.md index ac317ba..6e402b3 100644 --- a/README.md +++ b/README.md @@ -23,6 +23,7 @@ git clone https://gitea.madelirihs.ru/madeliri/shiny_form.git Восстановление окружения ```r +renv::activate() renv::init() ``` diff --git a/app.R b/app.R index f0b8b3b..d326593 100644 --- a/app.R +++ b/app.R @@ -1020,7 +1020,8 @@ server <- function(input, output, session) { date_columns <- subset(scheme, form_type == "date", form_id, drop = TRUE) number_columns <- subset(scheme, form_type == "number", form_id, drop = TRUE) - other_cols <- which(colnames(df) %in% c(date_columns, number_columns)) + # other_cols <- which(colnames(df) %in% c(date_columns, number_columns)) + other_cols <- colnames(df)[!(colnames(df) %in% c(date_columns, number_columns))] df <- df |> dplyr::mutate( @@ -1028,7 +1029,7 @@ server <- function(input, output, session) { dplyr::across(tidyselect::all_of({{date_columns}}), as.Date), # числа - к единому формату десятичных значений dplyr::across(tidyselect::all_of({{number_columns}}), ~ gsub("\\.", "," , .x)), - dplyr::across(tidyselect::all_of({{other_cols}}), as.character) + dplyr::across(tidyselect::all_of({{other_cols}}), \(x) dplyr::if_else(x == "", as.character(NA), as.character(x))) ) |> # очистка от пустых ключей dplyr::filter(!is.na(mhcs()$get_main_key_id)) @@ -1238,7 +1239,8 @@ server <- function(input, output, session) { date_columns <- subset(scheme, form_type == "date", form_id, drop = TRUE) number_columns <- subset(scheme, form_type == "number", form_id, drop = TRUE) - other_cols <- which(colnames(df) %in% c(date_columns, number_columns)) + # other_cols <- which(colnames(df) %in% c(date_columns, number_columns)) + other_cols <- colnames(df)[!(colnames(df) %in% c(date_columns, number_columns))] # функция для преобразование числовых значений и сохранения "NA" num_converter <- function(old_col) { @@ -1258,7 +1260,7 @@ server <- function(input, output, session) { # даты - к единому формату dplyr::across(tidyselect::all_of({{date_columns}}), \(x) purrr::map_chr(x, db$excel_to_db_dates_converter)), dplyr::across(tidyselect::all_of({{number_columns}}), num_converter), - dplyr::across(tidyselect::all_of({{other_cols}}), as.character) + dplyr::across(tidyselect::all_of({{other_cols}}), \(x) dplyr::if_else(x == "", as.character(NA), as.character(x))) ) |> select(all_of(unique(c(main_key_id, scheme$form_id)))) diff --git a/descr.yml b/descr.yml index 60bb454..a95c37f 100644 --- a/descr.yml +++ b/descr.yml @@ -1,4 +1,4 @@ default: - form_app_version: 0.18.0 + form_app_version: 0.18.1 form_id: formy form_name: FORMY \ No newline at end of file diff --git a/modules/db.R b/modules/db.R index bc83242..1d8f0c5 100644 --- a/modules/db.R +++ b/modules/db.R @@ -200,7 +200,8 @@ write_df_to_db = function( date_columns <- subset(scheme, form_type == "date", form_id, drop = TRUE) number_columns <- subset(scheme, form_type == "number", form_id, drop = TRUE) - other_cols <- which(colnames(df) %in% c(date_columns, number_columns)) + # other_cols <- which(colnames(df) %in% c(date_columns, number_columns)) + other_cols <- colnames(df)[!(colnames(df) %in% c(date_columns, number_columns))] df <- df |> dplyr::mutate( @@ -208,7 +209,7 @@ write_df_to_db = function( dplyr::across(tidyselect::all_of({{date_columns}}), \(x) purrr::map_chr(x, excel_to_db_dates_converter)), # числа - к единому формату десятичных значений dplyr::across(tidyselect::all_of({{number_columns}}), ~ gsub("\\.", "," , .x)), - dplyr::across(tidyselect::all_of({{other_cols}}), as.character), + dplyr::across(tidyselect::all_of({{other_cols}}), \(x) dplyr::if_else(x == "", as.character(NA), as.character(x))) ) if (table_name == "main") {