# -*- mode: python -*- # -*- coding: utf-8 -*- ############################################################################## # # Gestion scolarite IUT # # Copyright (c) 1999 - 2024 Emmanuel Viennet. All rights reserved. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # Emmanuel Viennet emmanuel.viennet@viennet.net # ############################################################################## ############################################################################## # Module "Avis de poursuite d'étude" # conçu et développé par Cléo Baras (IUT de Grenoble) ############################################################################## """ Created on Thu Sep 8 09:36:33 2016 @author: barasc """ import datetime import numpy as np from app.scodoc import sco_utils as scu import pandas as pd TAGS_RESERVES = ["but"] class TableTag(object): def __init__(self): """Classe centralisant différentes méthodes communes aux SemestreTag, TrajectoireTag, AggregatInterclassTag """ pass # ----------------------------------------------------------------------------------------------------------- def get_all_tags(self): """Liste des tags de la table, triée par ordre alphabétique Returns: Liste de tags triés par ordre alphabétique """ return sorted(self.moyennes_tags.keys()) def df_moyennes_et_classements(self): """Renvoie un dataframe listant toutes les moyennes, et les classements des étudiants pour tous les tags """ etudiants = self.etudiants df = pd.DataFrame.from_dict(etudiants, orient="index", columns=["nom"]) for tag in self.get_all_tags(): df = df.join(self.moyennes_tags[tag]["notes"].rename(f"Moy {tag}")) df = df.join(self.moyennes_tags[tag]["classements"].rename(f"Class {tag}")) return df def df_notes(self): """Renvoie un dataframe (etudid x tag) listant toutes les moyennes par tags Returns: Un dataframe etudids x tag (avec tag par ordre alphabétique) """ tags = self.get_all_tags() if tags: dict_series = {tag: self.moyennes_tags[tag]["notes"] for tag in tags} df = pd.DataFrame(dict_series) return df else: return None def str_tagtable(self): """Renvoie une chaine de caractère listant toutes les moyennes, les rangs des étudiants pour tous les tags.""" etudiants = self.etudiants df = pd.DataFrame.from_dict(etudiants, orient="index", columns=["nom"]) for tag in self.get_all_tags(): df = df.join(self.moyennes_tags[tag]["notes"].rename(f"moy {tag}")) df = df.join(self.moyennes_tags[tag]["classements"].rename(f"class {tag}")) return df.to_csv(sep=";")