from django.shortcuts import redirect, render
from django.contrib.auth.views import LoginView
from django.contrib.auth import authenticate, login
from django.contrib import messages
from BasicData.model_link import *
from django.contrib.auth.models import Group
from .custom_fonctions import get_etudian_moyenne
import datetime
from session_tracking.utils import *


from BasicData.models import Enseignant,Etudiant, Annee,ParcoursSemestre
from Scolarite.models import AgentScolarite


# Create your views here.
FIC = "/home/mosco/Téléchargements/mailUE.csv"



class UserLoginView(LoginView):
    template_name = "EspaceEnseignant/login.html"
    next_page = "EspaceEnseignant:Home"
    redirect_authenticated_user = True
    redirect_field_name = next_page

    # def get_

def loginView(request):

    # GESTION DE LA VALIDITE DES EMPLOIS DU TEMPS
    validites = Validite.objects.filter(done=False)
    infos = FlashInfo.objects.filter(published=True)
    diffs = Sondage.objects.filter(published=True)
    dtnow = datetime.datetime.today().date()

    # VALIDITE EMPLOIS DU TEMPS
    for validite in validites:
        if validite and dtnow > validite.dateFin:
            validite.done=True
            validite.save()
        else:
            pass

    # FLASH INFOS
    for info in infos:
        if info and info.limite and dtnow > info.limite:
            info.published=False
            info.save()
        else:
            pass

    # SONDAGE
    for dif in diffs:
        if dif and dif.limite and dtnow > dif.limite:
            dif.publier=False
            dif.save()
        else:
            pass

    if request.method == "POST":
        username = request.POST['username']
        password = request.POST['password']
        user = authenticate(request, username=username, password=password)
        if user is not None:
            login(request, user)
            track_login(user.email)
            # Redirect to a success page.
            try:
                Etudiant.objects.get(email=user.email,actif =True)
                return redirect("EspaceEtudiant:liste_etudiant_ue")
            except Etudiant.DoesNotExist:
                try:
                    # simple Enseignant
                    Enseignant.objects.get(email=user.email,is_staff=False,profile=True,is_ufr_dg=False,is_respo=False,is_pr=False,is_vp=False)
                    return redirect("EspaceEnseignant:enseignant_profile")
                except Enseignant.DoesNotExist:
                    try:
                        # DR UFR
                        Enseignant.objects.get(email=user.email, is_staff=False, is_ufr_dg=True,is_pr=False,is_vp=False,is_respo=False)
                        return redirect("EspaceEnseignant:ufr_home")
                    except Enseignant.DoesNotExist:
                        try:
                            # RESPONSABLE PEDAGOGIQUE
                            Enseignant.objects.get(email=user.email, is_staff=False,is_ufr_dg=False, is_respo=True,is_pr=False,is_vp=False)
                            return redirect("EspaceEnseignant:respo_pedag_home")
                        except Enseignant.DoesNotExist:
                            try:
                                # PRESIDENT DE L'USP
                                Enseignant.objects.get(email=user.email, is_staff=False, is_ufr_dg=False, is_respo=False,
                                                       is_pr=True, is_vp=False)
                                return redirect("EspaceEnseignant:president_usp")
                            except Enseignant.DoesNotExist:
                                try:
                                    # VICE PRESIDENT DE L'USP
                                    Enseignant.objects.get(email=user.email, is_staff=False, is_ufr_dg=False,
                                                           is_respo=False, is_pr=False, is_vp=True)
                                    return redirect("EspaceEnseignant:vice_president_usp")
                                except Enseignant.DoesNotExist:
                                    try:
                                        # AGENT DE LA SCOLARITE
                                        AgentScolarite.objects.get(email=user.email)
                                        return redirect("Scolarite:ags_home")
                                    except AgentScolarite.DoesNotExist:
                                        try:
                                            # ANCIEN PROFIL ENSEIGNANT
                                            User.objects.get(email=user.email, is_superuser=True)
                                            return redirect("BasicData:usp_admin")
                                        except Enseignant.DoesNotExist:
                                            messages.error(request,'Accès interdit')
                                            return redirect("BasicData:login")

        else:
            messages.error(request, "Veillez verifier que vous entrez les bonnes informations de connexion !")
            return redirect("BasicData:login")
    else:
        return render(request, "BasicData/login.html")



ANNEE = "/home/jdmi5414/pedagogie.univ-sp.net/usp_pedagogie/BasicData/csv/annee.csv"
DOAMINE = "/home/jdmi5414/pedagogie.univ-sp.net/usp_pedagogie/BasicData/csv/domaine.csv"
MENTION = "/home/jdmi5414/pedagogie.univ-sp.net/usp_pedagogie/BasicData/csv/mention.csv"
PARCOURS = "/home/jdmi5414/pedagogie.univ-sp.net/usp_pedagogie/BasicData/csv/parcours.csv"
SESSION = "/home/jdmi5414/pedagogie.univ-sp.net/usp_pedagogie/BasicData/csv/session.csv"
UFR = "/home/jdmi5414/pedagogie.univ-sp.net/usp_pedagogie/BasicData/csv/ufr.csv"
SEMESTRE = "/home/jdmi5414/pedagogie.univ-sp.net/usp_pedagogie/BasicData/csv/semestre.csv"
UE = "/home/jdmi5414/pedagogie.univ-sp.net/usp_pedagogie/BasicData/csv/ue.csv"
ECUE = "/home/jdmi5414/pedagogie.univ-sp.net/usp_pedagogie/BasicData/csv/ecue.csv"
ARHAI = "/home/jdmi5414/pedagogie.univ-sp.net/usp_pedagogie/BasicData/csv/mailARHAI.csv"
MPSI = "/home/jdmi5414/pedagogie.univ-sp.net/usp_pedagogie/BasicData/csv/mailMPSI.csv"
SDM = "/home/jdmi5414/pedagogie.univ-sp.net/usp_pedagogie/BasicData/csv/mailSDM.csv"
TES = "/home/jdmi5414/pedagogie.univ-sp.net/usp_pedagogie/BasicData/csv/mailTES.csv"
ENSEIGNANT = "/home/jdmi5414/pedagogie.univ-sp.net/usp_pedagogie/BasicData/csv/mailUE.csv"

Fichiers =[ARHAI,MPSI,SDM,TES]

Fichier_Genre ="/Users/moryouattara/Desktop/Pycharm-projects/usp_pedagogie_v1.0.6/BasicData/fichiers/ARHAI.csv"
Fichier_Genre_TES ="/Users/moryouattara/Desktop/Pycharm-projects/usp_pedagogie_v1.0.6/BasicData/fichiers/TES.csv"
Fichier_Genre_SDM ="/Users/moryouattara/Desktop/Pycharm-projects/usp_pedagogie_v1.0.7/BasicData/fichiers/SDM_Genre.csv"
Fichier_Genre_MPSI ="/Users/moryouattara/Desktop/Pycharm-projects/usp_pedagogie_v1.0.7/BasicData/fichiers/MPSI_2022_Genre.csv"

FueMPSI = '/Users/moryouattara/Desktop/Pycharm-projects/usp_pedagogie_v1.0.6/BasicData/fichiers/UeMPSI-2022-05-21.csv'
FEtudiantMPSI = '/Users/moryouattara/Desktop/Pycharm-projects/usp_pedagogie_v1.0.6/BasicData/fichiers/mailMPSI.csv'


NID_MPSI = '/Users/moryouattara/Desktop/Pycharm-projects/usp_pedagogie_v1.0.7/BasicData/fichiers/NCE_VS_IDPermanent.csv'
NID_ARHAI = '/Users/moryouattara/Desktop/Pycharm-projects/usp_pedagogie_v1.0.7/BasicData/fichiers/NID_ARHAI.csv'
NID_SDM = '/Users/moryouattara/Desktop/Pycharm-projects/usp_pedagogie_v1.0.7/BasicData/fichiers/NID_SDM.csv'
NID_TES = '/Users/moryouattara/Desktop/Pycharm-projects/usp_pedagogie_v1.0.7/BasicData/fichiers/NID_TES.csv'

def remplissage(request):
    #add_genre(Fichier_Genre_SDM)
    #add_genre_new(Fichier_Genre_MPSI)
    #enseignantUfr_update()
    #ues = ue_update(4,FEtudiantMPSI) # Add student Gender
    #ue_update_semestre()
    #etudiant_ufr_update()

    #+++++++++++++++++
    ues = Ue.objects.all()
    ecues = Ecue.objects.all()
    #ue_ecue_filed_update(ues)
    #ue_ecue_filed_update(ecues)
    #++++++++++++++++++++++++
    #set_evaluation_default_session()
    #update_etudiant_process([1,3,3,4,4])

    #nce_update(NID_TES)

    return render(request, 'BasicData/remplir.html')


def test_view(request):
    #moy = get_etudian_moyenne('INS08202100025',1191,1)
    #print(moy)
    #return render(request,'enseignant/home_content.html')
    #return render(request,'enseignant/liste_ecue.html')
    #return render(request,'etudiant/home_content.html')
    return render(request,'etudiant/recap_note.html')
    #return render(request,'login/login.html')
