#' Updates PROJECT_ROADMAP with changes provided by PROJECT_ROADMAP_ objects
#' @importFrom somersaulteR create_new_pk
#' @importFrom somersaulteR mutate_new_cols_if_not_exist_by_robj_name
#' @importFrom dplyr mutate
#' @importFrom somersaulteR call_mr_clean
#' @importFrom dplyr bind_rows
#' @importFrom somersaulteR filter_for_vector
#' @importFrom somersaulteR nrow_diff
#' @export
#'
update_project_roadmap <-
function() {
PROJECT_ROADMAP_ID <- get("PROJECT_ROADMAP_ID", envir = globalenv())
if (PROJECT_ROADMAP_ID == "") {
PROJECT_ROADMAP_ID <- somersaulteR::create_new_pk(PROJECT_ROADMAP$HISTORY, PROJECT_ROADMAP_ID)
}
df_skeleton <- create_roadmap_dataframe()
df_skeleton <- somersaulteR::mutate_new_cols_if_not_exist_by_robj_name(df_skeleton,"^PROJECT_ROADMAP_")
robj_names <- colnames(df_skeleton)
if (!(PROJECT_ROADMAP_ID %in% PROJECT_ROADMAP$CURRENT$PROJECT_ROADMAP_ID)) {
for (i in 1:length(robj_names)) {
robj_name <- robj_names[i]
if (exists(robj_name, envir = globalenv())) {
column_name <- robj_name
df_skeleton[1, column_name] <- get(robj_name)
}
}
new_roadmap_df <- df_skeleton %>%
dplyr::mutate(PROJECT_ROADMAP_TIMESTAMP = mirroR::get_timestamp()) %>%
somersaulteR::call_mr_clean()
PROJECT_ROADMAP$HISTORY <<- dplyr::bind_rows(PROJECT_ROADMAP$HISTORY %>% somersaulteR::call_mr_clean(), new_roadmap_df)
suppressWarnings(rm(list = robj_names, envir = globalenv()))
refresh_project_roadmap()
} else {
current_df <- somersaulteR::filter_for_vector(PROJECT_ROADMAP$CURRENT, PROJECT_ROADMAP_ID, inclusion_vector = PROJECT_ROADMAP_ID)
current_df <- somersaulteR::mutate_new_cols_if_not_exist_by_robj_name(current_df,"^PROJECT_ROADMAP_")
new_df <- current_df %>%
as.data.frame()
for (i in 1:length(robj_names)) {
robj_name <- robj_names[i]
if (exists(robj_name, envir = globalenv())) {
column_name <- robj_name
robj_data <- get(robj_name)
if (robj_data != "") {
new_df[1, column_name] <- robj_data
}
}
}
if (somersaulteR::nrow_diff(current_df %>% select(-PROJECT_ROADMAP_TIMESTAMP),
new_df %>% select(-PROJECT_ROADMAP_TIMESTAMP)) > 0) {
new_roadmap_df <-
new_df %>%
dplyr::mutate(PROJECT_ROADMAP_TIMESTAMP = mirroR::get_timestamp()) %>%
somersaulteR::call_mr_clean()
PROJECT_ROADMAP$HISTORY <<- dplyr::bind_rows(PROJECT_ROADMAP$HISTORY %>% somersaulteR::call_mr_clean(), new_roadmap_df)
suppressWarnings(rm(list = robj_names, envir = globalenv()))
refresh_project_roadmap()
}
}
}
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.