Skip to content
Snippets Groups Projects
aktualisiere_karten.R 2.61 KiB
#' aktualisiere_karten.R


# Diese Funktion schaltet zwischen den beiden Aggregier-Funktionen um:
# der mit Briefwahl und der ohne Briefwahl. 
# Wenn alle Stimmbezirke ausgezählt sind, wird die Briefwähler-Stimmenzahl
# dazu gerechnet. 
switcher_aggregiere <- function(stimmbezirke_df) {
  if (sum(stimmbezirke_df$meldungen_anz) == sum(stimmbezirke_df$meldungen_max)) {
    aggregiere_stadtteile_mit_briefwahl(stimmbezirke_df)
  } else {
    aggregiere_stadtteile(stimmbezirke_df)
  }
}

aktualisiere_karten <- function(wl_url = stimmbezirke_url) {
  # Lies Ortsteil-Daten ein und vergleiche
  neue_orts_df <- lies_gebiet(wl_url) %>% 
    # aggregiere_stadtteile() %>% 
    switcher_aggregiere() %>% 
    mutate(quorum = ifelse(wahlberechtigt == 0,
                           0,
                           ja / wahlberechtigt * 100)) %>% 
    mutate(status = ifelse(meldungen_anz == 0,
                           "KEINE DATEN",
                           paste0(ifelse(meldungen_anz < meldungen_max,
                                          "TREND ",""),
                                   ifelse(ja < nein,
                                          "NEIN",
                                          ifelse(quorum < 30,
                                                 "JA",
                                                 "JA QUORUM")))
    ))
  # alte_orts_df <- hole_letztes_df("daten/ortsteile")
  # # Datenstand identisch? Dann brich ab. 
  # if(vergleiche_stand(alte_orts_df,neue_orts_df)) {
  #   return(FALSE) 
  # } else {
    # Zeitstempel holen
    archiviere(neue_orts_df,"daten/ortsteile")
    ts <- neue_orts_df %>% pull(zeitstempel) %>% last()
    # Datentabelle übertragen
    dw_data_to_chart(neue_orts_df,choropleth_id)
    dw_data_to_chart(neue_orts_df,symbol_id)
    dw_data_to_chart(neue_orts_df,tabelle_id)
    # Anmerkungen aktualisieren
    wahlberechtigt <- neue_orts_df %>% pull(wahlberechtigt) %>% sum()
    # Prozentsatz ausgezählte Stimmen: abgerundet auf ganze Prozent
    ausgezählt <- floor(wahlberechtigt / ffm_waehler *100)
    annotate_str <- generiere_auszählungsbalken(ausgezählt,
                                                anz = neue_orts_df %>% pull(meldungen_anz) %>% sum(),
                                                max = neue_orts_df %>% pull(meldungen_max) %>% sum(),
                                                ts = ts)
    dw_edit_chart(symbol_id,annotate=annotate_str)
    dw_edit_chart(choropleth_id,annotate=annotate_str)
    dw_edit_chart(tabelle_id,annotate=annotate_str)
    dw_publish_chart(symbol_id)
    dw_publish_chart(choropleth_id)
    dw_publish_chart(tabelle_id)
    return(TRUE)
  #}
}