Fix alert table and finish first translation iteration

This commit is contained in:
Nik Verweel 2026-02-23 16:06:02 +01:00
parent 54c4b3f93b
commit c0092d90a9
2 changed files with 16 additions and 17 deletions

View file

@ -2,13 +2,13 @@
params: params:
ref: "word-styles-reference-var1.docx" ref: "word-styles-reference-var1.docx"
output_file: "CI_report.docx" output_file: "CI_report.docx"
report_date: "2026-02-04" #!r Sys.Date() report_date: "2026-02-18" #!r Sys.Date()
data_dir: "tpc" data_dir: "tpc"
mail_day: "Wednesday" mail_day: "Wednesday"
borders: FALSE borders: FALSE
ci_plot_type: "both" ci_plot_type: "both"
colorblind_friendly: TRUE colorblind_friendly: TRUE
lang: "en" language: "en"
facet_by_season: FALSE facet_by_season: FALSE
x_axis_unit: "days" x_axis_unit: "days"
output: output:
@ -28,7 +28,7 @@ ci_plot_type <- params$ci_plot_type
colorblind_friendly <- params$colorblind_friendly colorblind_friendly <- params$colorblind_friendly
facet_by_season <- params$facet_by_season facet_by_season <- params$facet_by_season
x_axis_unit <- params$x_axis_unit x_axis_unit <- params$x_axis_unit
lang <- params$lang language <- params$language
``` ```
```{r load_libraries, message=FALSE, warning=FALSE, include=FALSE} ```{r load_libraries, message=FALSE, warning=FALSE, include=FALSE}
@ -484,10 +484,10 @@ tryCatch({
# Try to select the translations for this report, otherwise fall back to English # Try to select the translations for this report, otherwise fall back to English
tryCatch({ tryCatch({
if (lang %in% names(translations)) { if (language %in% names(translations)) {
lang_col <- lang lang_col <- language
safe_log(paste0("Loaded localisation for '", lang,"'")) safe_log(paste0("Loaded localisation for '", language,"'"))
}else { } else {
lang_col <- "en" lang_col <- "en"
safe_log(paste("Specified language not supported, defaulting to 'en'"), "WARNING") safe_log(paste("Specified language not supported, defaulting to 'en'"), "WARNING")
} }
@ -730,7 +730,7 @@ generate_field_alerts <- function(field_details_table) {
} }
# Check for required columns # Check for required columns
required_cols <- c("Field", "Field Size (acres)", "Growth Uniformity", "Yield Forecast (t/ha)", required_cols <- c("Field", "Growth Uniformity", "Yield Forecast (t/ha)",
"Gap Score", "Decline Risk", "Patchiness Risk", "Mean CI", "CV Value", "Moran's I") "Gap Score", "Decline Risk", "Patchiness Risk", "Mean CI", "CV Value", "Moran's I")
missing_cols <- setdiff(required_cols, colnames(field_details_table)) missing_cols <- setdiff(required_cols, colnames(field_details_table))
@ -750,7 +750,6 @@ generate_field_alerts <- function(field_details_table) {
# Aggregate data for the field # Aggregate data for the field
field_summary <- field_data %>% field_summary <- field_data %>%
summarise( summarise(
field_size = sum(`Field Size (acres)`, na.rm = TRUE),
uniformity_levels = paste(unique(`Growth Uniformity`), collapse = "/"), uniformity_levels = paste(unique(`Growth Uniformity`), collapse = "/"),
avg_yield_forecast = mean(`Yield Forecast (t/ha)`, na.rm = TRUE), avg_yield_forecast = mean(`Yield Forecast (t/ha)`, na.rm = TRUE),
max_gap_score = max(`Gap Score`, na.rm = TRUE), max_gap_score = max(`Gap Score`, na.rm = TRUE),
@ -785,21 +784,21 @@ generate_field_alerts <- function(field_details_table) {
# Generate alerts based on priority level # Generate alerts based on priority level
if (priority_level == 1) { if (priority_level == 1) {
field_alerts <- c(field_alerts, "Priority field - recommend inspection") field_alerts <- c(field_alerts, t("priority"))
} else if (priority_level == 2) { } else if (priority_level == 2) {
field_alerts <- c(field_alerts, "Monitor - check when convenient") field_alerts <- c(field_alerts, t("monitor"))
} }
# Priority 3: No alert (no stress) # Priority 3: No alert (no stress)
# Keep other alerts for decline risk, patchiness risk, gap score # Keep other alerts for decline risk, patchiness risk, gap score
if (field_summary$highest_decline_risk %in% c("High", "Very-high")) { if (field_summary$highest_decline_risk %in% c("High", "Very-high")) {
field_alerts <- c(field_alerts, "Growth decline observed") field_alerts <- c(field_alerts, t("growth_decline"))
} }
if (field_summary$highest_patchiness_risk == "High") { if (field_summary$highest_patchiness_risk == "High") {
field_alerts <- c(field_alerts, "High patchiness detected - recommend scouting") field_alerts <- c(field_alerts, t("high_patchiness"))
} }
if (field_summary$max_gap_score > 20) { if (field_summary$max_gap_score > 20) {
field_alerts <- c(field_alerts, "Gaps present - recommend review") field_alerts <- c(field_alerts, t("gaps_present"))
} }
# Only add alerts if there are any (skip fields with no alerts) # Only add alerts if there are any (skip fields with no alerts)
@ -845,8 +844,8 @@ if (exists("field_details_table") && !is.null(field_details_table) && nrow(field
if ("Gap_Score" %in% names(field_details_for_alerts)) { if ("Gap_Score" %in% names(field_details_for_alerts)) {
field_details_for_alerts <- field_details_for_alerts %>% dplyr::rename(`Gap Score` = Gap_Score) field_details_for_alerts <- field_details_for_alerts %>% dplyr::rename(`Gap Score` = Gap_Score)
} }
if ("Growth_Uniformity" %in% names(field_details_for_alerts)) { if ("Uniformity_Category" %in% names(field_details_for_alerts)) {
field_details_for_alerts <- field_details_for_alerts %>% dplyr::rename(`Growth Uniformity` = Growth_Uniformity) field_details_for_alerts <- field_details_for_alerts %>% dplyr::rename(`Growth Uniformity` = Uniformity_Category)
} }
if ("Decline_Risk" %in% names(field_details_for_alerts)) { if ("Decline_Risk" %in% names(field_details_for_alerts)) {
field_details_for_alerts <- field_details_for_alerts %>% dplyr::rename(`Decline Risk` = Decline_Risk) field_details_for_alerts <- field_details_for_alerts %>% dplyr::rename(`Decline Risk` = Decline_Risk)
@ -1663,7 +1662,7 @@ if (!exists("field_details_table") || is.null(field_details_table) || nrow(field
```{r include=FALSE} ```{r include=FALSE}
# Tries to get the CI graph in different language, otherwise falls back on English # Tries to get the CI graph in different language, otherwise falls back on English
target_img <- paste0("CI_graph_example_", lang, ".png") target_img <- paste0("CI_graph_example_", language, ".png")
img_path <- ifelse(file.exists(target_img), target_img, "CI_graph_example.png") img_path <- ifelse(file.exists(target_img), target_img, "CI_graph_example.png")
``` ```

Binary file not shown.