R/fun_schools_approaches.R

Defines functions fun_schools_approaches

#### approaches (schools)  ####

fun_schools_approaches <- function(comm_name, long = F){
  
  factors <- meta_approaches(comm_name)

  if(long == F){
    
    output <- clean_allocations_schools(comm_name = comm_name, 
                                      school_org_prog_part = "School", 
                                      type_of_resource = "Approach", 
                                      table_of_resource = "approaches", 
                                      factors = factors) 
    
    if(is.null(dim(output)) == F){
      output <- output %>% 
        mutate(count_approaches = rowSums(!is.na(across(any_of(factors$label[!factors$level %in% c("other","none")]))), na.rm = T),
               count_other = rowSums(!is.na(across(any_of(factors$label[factors$level == "other"]))), na.rm = T),
               count_none = rowSums(!is.na(across(any_of(factors$label[factors$level == "none"]))), na.rm = T))
    }
    
  } else if(long == T){
    
    fact_years <- fun_years(comm_name)
    fact_disc <- fun_disc()
    
    temp.alloc <- get_allocations(comm_name, "School", "Approach", "approaches")
    
    if(sum(str_detect(names(temp.alloc), "secondary_resourceable_type")) == 0){
      
      output <- fun_schools_list(comm_name) %>%
        filter(is_archived == "approved") %>% 
        select(-is_archived) %>% 
        inner_join(temp.alloc %>% 
                    mutate(name = factor(name, levels = factors$level, labels = factors$label, ordered = TRUE)), 
                  by = c("school_year_id", 
                         school_id = "allocateable_id")) %>% 
        mutate(school_year = factor(school_year_id, levels = fact_years$level, labels = fact_years$label, ordered = TRUE)) %>% 
        select(where(~!all(is.na(.x)))) %>% 
        select(any_of(c("school_year",
                        "school_name",
                        "category",
                        "district",
                        "name")),
               everything(),
               -c("allocateable_type",
                  "resourceable_type")) %>% 
        relocate(ends_with("_id"), .after = last_col()) %>% 
        arrange(desc(school_year_id), 
                school_id)  
      
    } else if(sum(str_detect(names(temp.alloc), "secondary_resourceable_type")) == 1){
      
      output <- fun_schools_list(comm_name) %>%
        filter(is_archived == "approved") %>% 
        select(-is_archived) %>% 
        inner_join(temp.alloc %>% 
                    mutate(name = factor(name, levels = factors$level, labels = factors$label, ordered = TRUE),
                           disc = factor(secondary_resourceable_id, levels = fact_disc$id, labels = fact_disc$label, ordered = T)), 
                  by = c("school_year_id", 
                         school_id = "allocateable_id")) %>% 
        mutate(school_year = factor(school_year_id, levels = fact_years$level, labels = fact_years$label, ordered = TRUE)) %>% 
        select(where(~!all(is.na(.x)))) %>% 
        select(any_of(c("school_year",
                        "school_name",
                        "category",
                        "district",
                        "name",
                        "disc")),
               everything(),
               -c("allocateable_type",
                  "resourceable_type",
                  "secondary_resourceable_type")) %>% 
        relocate(ends_with("_id"), .after = last_col()) %>% 
        arrange(desc(school_year_id), 
                school_id)  
      
    }
    
  }
  
  output
  
}
Ingenuity-Inc/artlookR documentation built on May 18, 2022, 12:33 a.m.