Example #1
0
def classementSemestre(request):
    if request.method == 'POST':
        Instsem = InstanceSemestre.objects.all()
        form = SelectInstanceSemestre(request.POST, instanceSemestres=Instsem)
        if form.is_valid():
            intSem = form.cleaned_data['select']
            res = True
        etuSems = Appartient.objects.filter(instance_semestre=intSem)
        liste = []
        for etuSem in etuSems:
            try:
                etu = Etu.objects.get(apogee=etuSem.etudiant.apogee)
                resSem = Resultat_Semestre.objects.get(
                    etudiant=etu, instance_semestre=intSem)
                e = etudiant(etu.apogee, resSem.note)
                liste.append(e)
            except Resultat_Semestre.DoesNotExist:
                print("probleme")

        liste = sorted(liste, key=attrgetter('resultat'), reverse=True)
        book = xlwt.Workbook()
        worksheet = book.add_sheet("Classement")
        i = 0
        for li in liste:
            worksheet.write(i, 0, li.numero)
            worksheet.write(i, 1, li.resultat)
            i += 1
        book.save("Classement.xls")
    else:
        res = False
        Instsem = InstanceSemestre.objects.all()
        form = SelectInstanceSemestre(instanceSemestres=Instsem)
    return render(request, 'contenu_html/classementSemestre.html', locals())
Example #2
0
def importer_etu(request):
    if request.method == 'POST':
        if not request.session['instance']:
            instanceSemestres = InstanceSemestre.objects.all()
            form = SelectInstanceSemestre(request.POST,
                                          instanceSemestres=instanceSemestres)
            if form.is_valid():
                id_instance = form.cleaned_data['select']
                request.session['id_instance'] = id_instance
                request.session['instance'] = True
            res = True
            instanceSemestre = get_object_or_404(
                InstanceSemestre, id=request.session['id_instance'])
            form = FileForm()
        else:
            instanceSemestre = get_object_or_404(
                InstanceSemestre, id=request.session['id_instance'])
            form = FileForm(request.POST, request.FILES)
            if form.is_valid():
                fichier = form.cleaned_data['fichier']

                import csv
                csvf = StringIO(fichier.read().decode('latin-1'))
                read = csv.reader(csvf, delimiter=',')
                nb_etu = 0
                for row in read:
                    if row[0].isdigit():
                        nom = row[1]
                        prenom = row[2]
                        apogee = row[0]

                        # On créé les nouveaux étudiants
                        e, created = Etu.objects.get_or_create(
                            nom=nom,
                            prenom=prenom,
                            apogee=apogee,
                        )

                        appartient, createdBis = Appartient.objects.get_or_create(
                            etudiant=e,
                            instance_semestre=instanceSemestre,
                        )
                        if created == True:
                            nb_etu = nb_etu + 1
                        e.save()
                        appartient.save()
                    else:
                        code_eleve = row
                res2 = True
            else:
                print("ERREUR : IMPORT CSV : VIEW importer_csv : Formulaire")
    else:
        instanceSemestres = InstanceSemestre.objects.all()
        if not instanceSemestres:
            inst = False
        else:
            inst = True
        request.session['instance'] = False
        form = SelectInstanceSemestre(instanceSemestres=instanceSemestres)
    return render(request, 'contenu_html/importer_etudiant.html', locals())
Example #3
0
def afficherInstanceSemestre(request):
	if request.method == 'POST':
		instanceSemestres = InstanceSemestre.objects.all()
		form = SelectInstanceSemestre(request.POST, instanceSemestres=instanceSemestres)
		if form.is_valid() :
			id_inst = form.cleaned_data['select']
			instanceSemestre = get_object_or_404(InstanceSemestre, id=id_inst)
			listeEtu = Appartient.objects.filter(instance_semestre=instanceSemestre)
			res = True
		else:
			print("ERREUR : Afficher promotion: VIEW afficher Promotion : formulaire")	
	else:
		instanceSemestres = InstanceSemestre.objects.all()
		form = SelectInstanceSemestre(instanceSemestres=instanceSemestres)
	return render(request, 'contenu_html/afficherInstanceSemestre.html', locals())
Example #4
0
def resultatJury(request):
    if request.method == 'POST':
        instances = InstanceSemestre.objects.all()
        form = SelectInstanceSemestre(request.POST,
                                      instanceSemestres=instances)

        if form.is_valid():
            id_instance = form.cleaned_data['select']
            request.session['id_instance'] = id_instance
            request.session['instance'] = True
            res = True
            instance = InstanceSemestre.objects.get(id=id_instance)
            resultatsJury = Resultat_Semestre.objects.filter(
                instance_semestre=request.session['id_instance'])
        else:
            print("ERREUR : resultatJury : VIEW resultatJury : formulaire")
    else:
        Etudiants = Etu.objects.all()
        request.session['etu'] = False
        instances = InstanceSemestre.objects.all()
        form = SelectInstanceSemestre(instanceSemestres=instances)
    return render(request, 'contenu_html/resultatJury.html', locals())
Example #5
0
def renseignerResultat(request):
    if request.method == 'POST':
        u = InstanceSemestre.objects.all()
        form = SelectInstanceSemestre(request.POST, instanceSemestres=u)
        if form.is_valid():
            Isemes = form.cleaned_data['select']
            instancesemestre = InstanceSemestre.objects.get(id=Isemes)
        etus = Etu.objects.all()
        ues = UE.objects.filter(semestre=instancesemestre.semestre)

        for etu in etus:
            moy = 0
            coeff = 0
            try:
                res = Resultat_Semestre.objects.get(
                    etudiant=etu, instance_semestre=instancesemestre)

                if res is not None:
                    notes = Note.objects.all().filter(etudiant=etu)

                    for ue in ues:
                        matieres = Matiere.objects.filter(ue=ue)
                        for matiere in matieres:
                            for note in notes:
                                if note.matiere.intitule == matiere.intitule:
                                    note = Note.objects.get(etudiant=etu,
                                                            matiere=matiere)
                                    print("note", note)
                                    print("mat", matiere.coefficient)
                                    moy += (note.valeur * matiere.coefficient)
                                    coeff += matiere.coefficient
                if coeff == 0:
                    coeff = 1
                moyGcal = moy / coeff
                res = Resultat_Semestre.objects.get(
                    etudiant=etu, instance_semestre=instancesemestre)
                moyG = res.note
                print('MOYG=', moyG)
                resultatSem = Resultat_Semestre.objects.get(
                    etudiant=etu, instance_semestre=instancesemestre)
                barre = False
                print(instancesemestre.semestre)
                if instancesemestre.semestre.intitule == "Semestre 1":
                    for ue in ues:
                        res = Resultat_UE.objects.get(etudiant=etu, ue=ue)
                        if res.note < 8:
                            barre = True
                    if moyG >= 10 and not barre:
                        jury = "VAL"
                    elif moyG >= 8 and not barre:
                        jury = "NATT"
                    else:
                        jury = "NATB"

                else:
                    if instancesemestre.semestre.intitule == "Semestre 2":
                        semesPrec = InstanceSemestre.objects.get(
                            semestre__intitule="Semestre 1")
                    elif instancesemestre.semestre.intitule == "Semestre 3":
                        semesPrec = InstanceSemestre.objects.get(
                            semestre__intitule="Semestre 2")
                    elif instancesemestre.semestre.intitule == "Semestre 4":
                        semesPrec = InstanceSemestre.objects.get(
                            semestre__intitule="Semestre 3")
                    resSemPrec = Resultat_Semestre.objects.get(
                        etudiant=etu, instance_semestre=semesPrec)
                    moyGPrec = resSemPrec.note

                    for ue in ues:
                        res = Resultat_UE.objects.get(etudiant=etu, ue=ue)
                        if res.note < 8:
                            barre = True

                    if moyG >= 10 and not barre and resSemPrec.resultat == "VAL":
                        jury = "VAL"
                    elif moyG >= 10 and not barre and resSemPrec.resultat == "NATT" and (
                            moyG + moyGPrec) >= 20:
                        jury = "ADAC"
                    elif moyG >= 10 and not barre and resSemPrec.resultat == "NATB":
                        jury = "AJPC"
                    elif moyG >= 8 and not barre and resSemPrec.resultat == "VAL" and (
                            moyG + moyGPrec) >= 10:
                        jury = "VALC"
                    elif not barre:
                        jury = "NATT"
                    else:
                        jury = "NATB"

                resultatSem.note_calc = moyGcal
                resultatSem.resultat = jury
                res = False
                resultatSem.save()
            except Resultat_Semestre.DoesNotExist:
                print("probleme")
    else:
        res = True
        u = InstanceSemestre.objects.all()
        form = SelectInstanceSemestre(instanceSemestres=u)
    return render(request, 'contenu_html/listerResultat.html', locals())
Example #6
0
def genererDocuments(request):
    if request.method == 'POST':
        u = InstanceSemestre.objects.all()
        form = SelectInstanceSemestre(request.POST, instanceSemestres=u)
        if form.is_valid():
            instSemestreId = form.cleaned_data['select']
        instSemestre = InstanceSemestre.objects.get(id=instSemestreId)
        if instSemestre.semestre.intitule == "Semestre 1":
            pasSemestre = True
            res = True
        else:
            if instSemestre.semestre.intitule == "Semestre 2":
                instSemestrePrec = InstanceSemestre.objects.get(
                    semestre__intitule="Semestre 1")
            elif instSemestre.semestre.intitule == "Semestre 3":
                instSemestrePrec = InstanceSemestre.objects.get(
                    semestre__intitule="Semestre 2")
            elif instSemestre.semestre.intitule == "Semestre 4":
                instSemestrePrec = InstanceSemestre.objects.get(
                    semestre__intitule="Semestre 3")

            style = xlwt.easyxf(
                ' alignment: horizontal center, vertical center; borders: left thin, right thin, top thin, bottom thin;'
            )
            book = open_workbook('docJury/S2.xls', formatting_info=True)
            book.sheet_by_index(0)
            newFeuille = copy(book)
            etus = Etu.objects.all()
            ligne = 7
            cp = 0
            semestrePrec = instSemestrePrec.semestre.id
            liste = ordreListe(semestrePrec, instSemestreId)
            for etu in liste:
                etudi = Etu.objects.get(apogee=etu.numero)
                sem1 = 0
                sem2 = 0
                colonne = 0
                newFeuille.get_sheet(0).write(ligne, colonne, cp, style)
                colonne += 1
                newFeuille.get_sheet(0).write(ligne, colonne, etudi.apogee,
                                              style)
                colonne += 1
                newFeuille.get_sheet(0).write(ligne, colonne, etudi.nom, style)
                colonne += 1
                newFeuille.get_sheet(0).write(ligne, colonne, etudi.prenom,
                                              style)
                colonne += 2
                ues = UE.objects.all().filter(
                    semestre=instSemestrePrec.semestre)
                for ue in ues:
                    try:
                        noteUE = Resultat_UE.objects.get(etudiant=etudi, ue=ue)
                        newFeuille.get_sheet(0).write(ligne, colonne,
                                                      noteUE.note, style)
                        colonne += 1
                    except Resultat_UE.DoesNotExist:
                        print("probleme")
                try:
                    resS = Resultat_Semestre.objects.get(
                        etudiant=etudi, instance_semestre=instSemestrePrec)
                    colonne = 8
                    newFeuille.get_sheet(0).write(ligne, colonne, resS.note,
                                                  style)
                    sem1 = resS.note
                    colonne += 1
                    newFeuille.get_sheet(0).write(ligne, colonne,
                                                  resS.resultat, style)
                except Resultat_Semestre.DoesNotExist:
                    print("probleme")
                ues = UE.objects.all().filter(semestre=instSemestre.semestre)
                colonne = 13
                for ue in ues:
                    try:
                        noteUE = Resultat_UE.objects.get(etudiant=etudi, ue=ue)
                        newFeuille.get_sheet(0).write(ligne, colonne,
                                                      noteUE.note, style)
                        colonne += 1
                    except Resultat_UE.DoesNotExist:
                        print("probleme")
                try:
                    resS2 = Resultat_Semestre.objects.get(
                        etudiant=etudi, instance_semestre=instSemestre)
                    colonne = 16
                    newFeuille.get_sheet(0).write(ligne, colonne, resS2.note,
                                                  style)
                    sem2 = resS2.note
                    colonne += 1
                    newFeuille.get_sheet(0).write(ligne, colonne,
                                                  resS2.resultat, style)
                except Resultat_Semestre.DoesNotExist:
                    print("probleme")
                colonne = 21
                if sem1 > 0 and sem2 > 0:
                    moyAn = (sem1 + sem2) / 2
                    newFeuille.get_sheet(0).write(ligne, colonne, moyAn, style)
                    colonne += 1
                    if moyAn < 8:
                        jury = "Barre"
                    elif moyAn < 10 and moyAn >= 8:
                        jury = "NVAL"
                    else:
                        jury = "VAL"
                    newFeuille.get_sheet(0).write(ligne, colonne, jury, style)
                ligne += 1
                cp += 1
                res = True
            nom_fichier = instSemestre.semestre.code_ppn
            newFeuille.save('static/documents/res_semestre.xls')
    else:
        res = False
        semestre = InstanceSemestre.objects.all()
        request.session['doc'] = False
        form = SelectInstanceSemestre(instanceSemestres=semestre)
    return render(request, 'contenu_html/genererDocuments.html', locals())
Example #7
0
def faireEvoluerInstanceSemestre(request):  
	if request.method == 'POST':
		if not request.session['inst']:
			instances = InstanceSemestre.objects.all()
			form = SelectInstanceSemestre(request.POST, instanceSemestres=instances)
			if form.is_valid() :
				id_instance = form.cleaned_data['select']
				request.session['id_instance'] = id_instance
				request.session['inst']=True
			instance = get_object_or_404(InstanceSemestre, id=request.session['id_instance'])
			lignes= Appartient.objects.filter(instance_semestre=instance).count() + 1
			listeEvolution=[[""]* 4 for _ in range(lignes)]
			listeEvolution[0][0]= "Nom"
			listeEvolution[0][1]= "Prénom"
			listeEvolution[0][2]= "Résultat du Semestre"

			listeAppartient=Appartient.objects.filter(instance_semestre=instance)
			print(listeAppartient)
			i=1
			for ligne in listeAppartient:
				print(ligne)
				try:
					resSemestre= Resultat_Semestre.objects.get(etudiant=ligne.etudiant,instance_semestre=instance)
					listeEvolution[i][0]=ligne.etudiant.nom
					listeEvolution[i][1]=ligne.etudiant.prenom
					listeEvolution[i][2]=resSemestre.resultat
					listeEvolution[i][3]=ligne.etudiant.apogee
					i+=1
				except Resultat_Semestre.DoesNotExist:
					listeEvolution[i][0]=ligne.etudiant.nom
					listeEvolution[i][1]=ligne.etudiant.prenom
					listeEvolution[i][2]='Résultat inexistant'
					listeEvolution[i][3]=ligne.etudiant.apogee	
					i+=1
					print('Erreur, cet etudiant n\'a pas de Resultat_Semestre')	
			res = True
			request.session['listeEvolution'] = listeEvolution
			instances = InstanceSemestre.objects.all()
			form = EvolutionSemestreForm(listeAppartient=listeAppartient,instanceSemestres=instances)
			i=1
			for ligne in listeAppartient:
				listeEvolution[i][3] = str(form[str(ligne.etudiant.apogee)])
				i +=1	
		else:
			instances = InstanceSemestre.objects.all()
			instance = get_object_or_404(InstanceSemestre, id=request.session['id_instance'])
			listeAppartient=Appartient.objects.filter(instance_semestre=instance)
			form = EvolutionSemestreForm(request.POST, listeAppartient=listeAppartient,instanceSemestres=instances)
			
			if form.is_valid() :
				if form.cleaned_data['select']:
						new_instance = form.cleaned_data['select']
						instance = get_object_or_404(InstanceSemestre, id=new_instance)
				for ligne in listeAppartient:
					if form.cleaned_data[str(ligne.etudiant.apogee)]:
						appartient = Appartient(
							instance_semestre = instance,
							etudiant = ligne.etudiant,
						)
						appartient.save()
				res2=True
			else:
				print("ERREUR : Afficher faire evoluer instance: VIEW faire evoluer instance : formulaire")	
	else:
		instances = InstanceSemestre.objects.all()
		request.session['inst']=False
		form = SelectInstanceSemestre(instanceSemestres=instances)
	return render(request, 'contenu_html/faireEvoluerInstance.html',locals())