---
# System prepended metadata

title: 'Revize roverského programu: Závěrečná zpráva'

---

---
title: "Revize roverského programu: Závěrečná zpráva"
author: 'Petr "Klíč" Šilhavý, Martin "Orel" Modrák, Filip "Fíďa" Děchtěrenko'
date: 'Verze: `r format(Sys.time(), "%Y-%m-%d")`'
---

```{r setup, message=FALSE,warning=FALSE, results="hide", echo = FALSE}
source(here::here("setup_knitr.R"))
source(here::here("zaverecna_zprava_pomocne","kratka_zprava_manual.R"), encoding = "UTF-8")
knitr::opts_chunk$set(echo = FALSE)
rmarkdown::find_pandoc() # Try to use version at least 2.8 to allow unlisted header elements
```


```{r results='asis'}
if(gitbook_output) {
  cat("# (PART\\*) Závěry a doporučení {-}\n")
} 
```

# Hlavní závěry {#hlavni}

Začínáme našimi hlavními závěry, další kapitoly pak poskytují širší kontext, více detailů a zdůvodnění těchto závěrů. Celkově spíše nečekáme, že zprávu budete číst celou, ale že se podívate na hlavní závěry, případně na konkrétní další části, které probudí vaši zvědavost. V textu užíváme zkratku “RS” ve smyslu “všichni členové i členky Junáka v roverském věku”.


```{r}
preprocess_kz_element <- function(element) {
  element$name <- gsub("<U\\+([0-9A-Fa-f]*)>", "&#x\\1;", element$name)
  element$name <- gsub("&nbsp;$", "", element$name)
  element
}

preprocess_kz_group <- function(group) {
  group$contents <-  purrr::map(group$contents, preprocess_kz_element)
  group
}

kratka_zprava <- purrr::map(kratka_zprava, preprocess_kz_group)
```


```{r render_kratka_zprava_short, results = "asis"}
heading_to_id <- function(heading) {
  without_accents <- stringi::stri_trans_general(str = heading,
                                   id = "Latin-ASCII")
  removed_special_chars <- gsub("[.\"|?!:,/] ?", "", without_accents)
  removed_entities <- gsub("&[^;]*;", "", removed_special_chars)

  handled_whitespace <- gsub(" ", "-", tolower(trimws(removed_entities)))
  handled_whitespace
}
```


```{r render_kratka_zprava_full, results = "asis"}
print_kz_element_full <- function(element) {
  cat("#### ", element$name, " {.unnumbered .unlisted .kz_heading #", heading_to_id(element$name), "}\n\n", trimws(element$text), "\n\n", sep = "")
}

print_kz_group_full <- function(group) {
  cat("## ", group$group_name, " {.kz_group #", heading_to_id(group$group_name), "}\n\n", sep = "")
  if(!is.null(group$group_subheading)) {
    if(gitbook_output) {
      cat("<div class='kz_subtitle'>", group$group_subheading, "</div>\n\n")
    } else {
      cat("**| ", group$group_subheading, "**\n\n")
    }
  }
  cat("<span class='rozbalit_vse hidden' id='rozbalit_vse_", heading_to_id(group$group_name) ,"'></span>\n\n", sep = "")
  if(!is.null(group$group_comment)) {
    cat(group$group_comment, "\n\n")
  }
  purrr::walk(group$contents, print_kz_element_full)
  
}
purrr::walk(kratka_zprava, print_kz_group_full)
```

## Kam dál v této zprávě?

V kapitole \@ref(koncepce) - ["Děravá koncepce roveringu"](#koncepce) představujeme
obecnější závěry ke koncepci roveringu a roverského programu, které se opírají primárně o úvahy a osobní zkušenosti
nás či dalších lidí, se kterými jsme v průběhu projektu o roveringu diskutovali. 
V kapitolách \@ref(uvod-data) - \@ref(sondy2015) se pak věnujeme analýze dat, 
zejména průzkumu, který jsme pro projekt provedli ale i dalším, které pak byly podkladem pro
naše hlavní závěry i koncepční úvahy. 

<script>
var elementMap = {};

function setRozbalitVse(rozbalitVseElement, sbaleno) {
  if(sbaleno) {
    rozbalitVseElement.classList.add("collapsed");
    rozbalitVseElement.innerHTML = 'Rozbalit vše';
  } else {
    rozbalitVseElement.classList.remove("collapsed");
    rozbalitVseElement.innerHTML = 'Sbalit vše';
  }

}

function isToggleableElement(elem) {
  return !elem.classList.contains("rozbalit_vse") && !elem.classList.contains("kz_subtitle") &&
  elem.tagName.toUpperCase() != "H4";
}

function toggleKratkaZpravaContents(parentElement, rozbalitVseElement) {
  parentElement.classList.toggle("collapsed");
  for(i = 0; i < parentElement.children.length; i++) {
    var c = parentElement.children[i];
    if(isToggleableElement(c)) {
      if(c.style.display == "none") {
        c.style.display = "block";
      } else {
        c.style.display = "none";
      }
    }
  }
  var vseRozbaleno = true;
  var elementIds = elementMap[rozbalitVseElement.id];
  for(eid =0; eid < elementIds.length; eid++) {
    var elem = document.getElementById(elementIds[eid]);
	if(elem.classList.contains("collapsed")) {
		vseRozbaleno = false;
	}
  }
  setRozbalitVse(rozbalitVseElement, !vseRozbaleno);
}


function initKratkaZpravaElement(elementId, rozbalitVseId) {
  var elem = document.getElementById(elementId);
  var rozbalitVseElem = document.getElementById(rozbalitVseId);
  var heading = elem.children[0];
  heading.onclick = function() { toggleKratkaZpravaContents(elem, rozbalitVseElem); };
  for(i = 0; i < elem.children.length; i++) {
    var c = elem.children[i];
    if(isToggleableElement(c)) {
      c.style.display = "none";
    }
  }
  elem.classList.add("collapsed");
  rozbalitVseElem.classList.remove("hiden");
  rozbalitVseElem.classList.add("collapsed");
}

function initKratkaZpravaGroup(rozbalitVseId, elementIds) {
  elementMap[rozbalitVseId] = elementIds;
  var elem = document.getElementById(rozbalitVseId);
  elem.onclick = function() {
      var sbalit = !elem.classList.contains("collapsed");
      for(eid =0; eid < elementIds.length; eid++) {
        parentElement = document.getElementById(elementIds[eid])
        if(sbalit) {
          parentElement.classList.add("collapsed");
        } else {
          parentElement.classList.remove("collapsed");
        }
        for(i = 1; i < parentElement.children.length; i++) {
          var c = parentElement.children[i];
          if(sbalit) {
            c.style.display = "none";
          } else {
            c.style.display = "block";
          }
        }
      }
      setRozbalitVse(elem, sbalit);
  }
  elem.classList.remove("hidden");
  setRozbalitVse(elem, true);
  for(eid =0; eid < elementIds.length; eid++) {
    initKratkaZpravaElement(elementIds[eid], rozbalitVseId);
  }

}

function initKratkaZprava() {
```{r rozbalovaciscript, results="asis"}

print_kz_group_script <- function(group) {
  elementIds <- as.character(purrr::map(group$contents, ~ heading_to_id(.x$name)))
  elementString <- paste0("['", paste0(elementIds, collapse = "', \n    '"),  "']")
  cat("  initKratkaZpravaGroup('rozbalit_vse_", heading_to_id(group$group_name) ,"', ", elementString, ");\n", sep = "")
}
purrr::walk(kratka_zprava, print_kz_group_script)

```
}


window.addEventListener("load", initKratkaZprava, false);
</script>

