from django_unicorn.components import UnicornView
from BasicData.models import Annee, Deliberation, Evaluation, MoyenneEcue

class DeliberationView(UnicornView):
    barre = None
    ecueId = None
    sessionId = None
    annee = Annee.objects.last()
    moyenneEcues = MoyenneEcue.objects.none()


    def mount(self):
        self.resetMoyenneEcues()

    def resetMoyenneEcues(self):
        try:
            evaluation = Evaluation.objects.filter(ecue_id=self.ecueId, annee=self.annee).last()
            self.sessionId = evaluation.session.id
            if evaluation:
                self.moyenneEcues = MoyenneEcue.objects.filter(moyenneUe__annee=self.annee, ecue_id=self.ecueId, moyenneUe__session__id=self.sessionId, note__lt=10)
        except MoyenneEcue.DoesNotExist:
            self.moyenneEcues = MoyenneEcue.objects.none()

    def save(self):
        if self.barre:
            deliberation, res = Deliberation.objects.update_or_create(ecue_id=self.ecueId, annee=self.annee, defaults={'note': self.barre})
            for moyenneEcue in self.moyenneEcues:
                if float(deliberation.note) <= float(moyenneEcue.note):
                    moyenneEcue.note_repechee = 10
                    moyenneEcue.save()

        self.resetMoyenneEcues()