def groupes_dans_cours(): liste_cours = formation_db.trouver_cours() for groupe in GROUPES: try: ajout_groupe(groupe, liste_cours) except: print(sys.exc_info())
def print_resultat(nom_cours, nom_eleve, liste_modules=None): bilans_modules = list() resultats_tests = list() try: cours = formation_db.trouver_cours(nom=[nom_cours])[0] if liste_modules == None: liste_modules = formation_db.trouver_modules_par_cours([cours]) eleve = formation_db.trouver_eleve(nom=nom_eleve) except Exception as e: raise return _print_resultat(cours, liste_modules, eleve)
def __init__(self, parentscm, nom_cours, **kwargs): self.nom_cours = nom_cours self.parentscm = parentscm super(CoursConsultationEvaluations, self).__init__(**kwargs) nb = TabbedPanel(cols=1, spacing=5, padding=5, do_default_tab=False) self.add_widget(nb) liste_groupes = formation_db.trouver_groupes_par_cours([nom_cours]) liste_modules = formation_db.trouver_modules_par_cours( formation_db.trouver_cours([nom_cours])) self.liste_obj_recap = list() for gr in liste_groupes: ce = ConsultationEvaluationsGroupe(parentscm, liste_modules, gr.participants, text=gr.__str__()) nb.add_widget(ce) self.liste_obj_recap.append(ce) retour = TabbedPanelHeader(text='Retour') retour.bind(on_release=self.retour) nb.add_widget(retour)
def ajout_eleve(nom, prenom, naissance, tel, courriel, statut, entree, photo, nom_cfi='', groupes=[], cours=[]): try: pp = Eleve.create(nom=nom, prenom=prenom, date_naissance=naissance, telephone=tel, courriel=courriel, statut=statut, date_entree=entree, photo_path=photo, nom_cfi=nom_cfi) pp.save() print("Ajout élève", prenom, nom, ": OK") except Exception as e: print("Ajout élève", prenom, nom, " impossib:", e) return None if not groupes: print("Pas groupe précisé pour machin", pp) return pp if not cours: cours = formation_db.trouver_cours() print('tous les cours sont dans la nature') for groupe in groupes: print('I rajoute the groupe', groupe, 'in', cours) gr = ajout_groupe(groupe, cours) try: gr.participants.add(pp) except Exception as e: pass
worksheet.hide_gridlines(1) worksheet.fit_to_pages(1, 1) worksheet.print_area(0, 0, 56, 7) worksheet.set_margins(.43, .24, .75, .32) # set paper: A4 worksheet.set_paper(9) def populate_file(filename, **bilan_eleve): workbook = xlsxwriter.Workbook(filename) worksheet = workbook.add_worksheet() pt = pse1_tech(workbook, worksheet, **bilan_eleve) pt.populate_workbook() if __name__ == '__main__': import formation_db cours = formation_db.trouver_cours(['PSE1 Technicités']) modules = formation_db.trouver_modules_par_cours(cours) if not modules: exit bilan = list() groupes = formation_db.trouver_groupe(['1A']) if not groupes: exit eleves = sorted(set([gr.participants for gr in groupes])) bilans = formation_db.trouver_bilans_par_eleve(eleves, modules) bilans_par_eleve = dict() for bilan in bilans: populate_file('Example_pse1.xlsx', bilan.eleve.__str__())
def terminaison(self, instance): if self.deja_enregistre: print('putain, le mec a déjà validé une fois...') nom_formateur = self.panfin.nom_formateur() formateurs = formation_db.trouver_formateurs(noms=[nom_formateur]) if not formateurs: pops.pop_warn(None, 'Renseigner le nom du formateur') return formateur = formateurs[0] nom_lieu = self.panfin.nom_lieu() mise_en_situation = self.panfin.nom_mise_en_situation() lieux = formation_db.trouver_lieux(noms=[nom_lieu]) if not lieux: pops.pop_warn( None, 'Renseigner le lieu de la formation d\'aujourd\'hui') return lieu = lieux[0] if not mise_en_situation: pops.pop_warn(None, 'Renseigner le détail de la mise en situation') return cours = formation_db.trouver_cours([self.titre]) if not cours: pops.pop_warn( 'Erreur interne: le cours', self.titre, 'a disparu de la base de données... Mieux vaut quitter') return cour = cours[0] jf = poplib.ajout_jf(lieu=lieu, cours=cour, formateur=formateur, notes=mise_en_situation) for pangr in self.dict_panneau_groupe.values(): current_scm = pangr.scm for eleve in pangr.liste_eleves: s = current_scm.get_screen(eleve.__str__()) for module, bilan, commentaires, origine in s.bilan_eleve(): #bilan = BilanModule(module=module, statut=resultat, # Si le bilan est NT, on ne crée pas de Bilan if bilan == origine.statut and commentaires == origine.commentaires: continue bilandb = poplib.ajout_bilan(module=module, statut=bilan, commentaires=commentaires, eleve=eleve, date=jf) for test, statut, resultat, origine in s.resultats_eleve(): # Si le statut est NT, on ne crée pas de Resultat if statut == Resultat.NONFAIT or statut == '': continue if statut == origine: continue res = poplib.ajout_res(test=test, eleve=eleve, date=jf, resultat=resultat, statut=statut) self.deja_enregistre = True # On vide le panneau de recap self.panfin.raz() self.retour(None)
def __init__(self, nom_cours, **kwargs): cours = formation_db.trouver_cours([nom_cours])[0] self.liste_modules = cours.modules super(EcranEleve, self).__init__(**kwargs)