Example #1
0
def carrega_voluntarios() -> pd.DataFrame:
    """Carrega as informações dos voluntários do CPM, tanto Teachers quanto EAS;.
    
    Returns:
        pandas.DataFrame: Relação de Voluntários.
    """

    teachers = f.load_df_from_sheet(v.ALOCACAO, v.ABA_TEACHERS)

    eas = f.load_df_from_sheet(v.ALOCACAO, v.ABA_EAS)

    return teachers.append(eas)
Example #2
0
def carrega_alocacao() -> dict:
    """Carrega as planilhas de alocação de voluntários e retorna como um DataFrame
    
    Returns:
        dict: pandas.DataFrame -- Alocacação Consolidada das Turmas
    """
    aloc = {}

    for turma, planilha in zip(v.TURMAS, v.FEEDBACKS):

        print(f"Carregando Alocação: {turma}")

        aloc[turma] = f.load_df_from_sheet(planilha, v.ABA_ALOC)

    print("Carregando Alocação: EA")

    aloc["EA"] = f.load_df_from_sheet(v.ALOCACAO, v.ABA_ALOC_EAS)

    alocacao = pd.DataFrame(columns=v.COLS_ALOCACAO)

    for k, df in aloc.items():

        # print("Processing: ", k)

        dict_aloc = {}

        for _, line in df.iterrows():

            dict_aloc["Aula"] = line.Aula
            dict_aloc["Data"] = line.Data
            dict_aloc["Turma"] = k

            for nome in line[3:]:

                if nome:

                    dict_aloc["Nome"] = nome

                    alocacao = alocacao.append(dict_aloc, ignore_index=True)

    alocacao["Data"] = alocacao["Data"].dropna().apply(transform_date)

    alocacao.sort_values(by=["Data", "Turma"], inplace=True)

    alocacao = alocacao.drop(axis=1, columns=["Turma"])

    return alocacao
Example #3
0
# Every time we change a module they are reload before executing
# %reload_ext autoreload
# %autoreload 2

AULA = '7'
# -

# ### Carrega a alocação
# Itera todas as planilhas de feedback, carrega a aba de alocação e formata de maneira tabular

alocacao = agenda.carrega_alocacao().dropna(subset=["Nome", "Aula"])
alocacao.head()

# Este método `.dropna(subset=["Nome", "Aula"])` ignora as linhas com a aula ou nome vazios

# ### Lê a agenda para verificar em qual linha termina

agenda_joao = functions.load_df_from_sheet(ALOCACAO,
                                           "Agenda").dropna(subset=["Nome"])
agenda_joao.tail()

agenda_joao.shape

linha_vazia = agenda_joao.shape[0] + 2

# ### Filtra a alocação somente para a aula atual

alocacao = alocacao[alocacao["Aula"] == AULA]

functions.salva_aba_no_drive(alocacao, ALOCACAO, "Agenda", row=linha_vazia)
Example #4
0
# Every time we change a module they are reload before executing 
# %reload_ext autoreload
# %autoreload 2
# -

path

listas = f.carrega_listas()

turmas = f.load_turmas()

notas = f.carrega_notas()

notas

alunos = f.load_df_from_sheet("J23_Alunos_Consolidado", "Alunos_2019_1S")

listas[["Total_Homework"]]

notas = ["Desistência", "Evasão"]

for col in notas:
    df = listas[[col]]
    col_index = alunos.columns.get_loc(col) + 4
    f.atualizar_coluna_df(df, "J23_Alunos_Consolidado", "Alunos_2019_1S", row=2, col=col_index)

def atualizar_coluna_df(df: pd.DataFrame, sheet: Union[str, gspread.Spreadsheet], aba: str, row: int, col: int):
    salva_aba_no_drive(df, plan, , aba, row, col)


Example #5
0
sheets = f.load_workbooks_from_drive()
sheets

# +
exp = "'\"&turma&\"'"
value = fr'=query(IMPORTRANGE(link_alunos, range_alunos), "select Col2,Col3,Col4,Col6,Col9,Col10,Col11,Col12,Col13,Col14, Col15 where Col1 = {exp}")'

for name, sh in turmas.items():
    print(name)
    wb = f.load_wb_from_sheet(sh.title, "Info_Students")
    wb.update_cell(1, 1, value)
# -

alocação = f.load_df_from_sheet(ALOCACAO,
                                "Agenda",
                                col_names=COLS_AGENDA + ["Presente"])

alocação.head()

listas = f.carrega_listas()
listas.head()

listas = listas[listas.Evasão == "Não"]
listas = listas[listas.Desistência == ""]
listas = listas[listas.Obs == ""]

listas.head()

# ## Define Aula a ser verificada e Filtra Lista de Presença