fix: coorection démarrage

This commit is contained in:
N3WT DE COMPET
2026-04-04 10:49:35 +02:00
parent 3a132ae0bd
commit 2579af9b8b
4 changed files with 26 additions and 27 deletions

View File

@ -179,23 +179,3 @@ class Evaluation(models.Model):
def __str__(self): def __str__(self):
return f"{self.name} - {self.speciality.name} ({self.school_class.atmosphere_name})" return f"{self.name} - {self.speciality.name} ({self.school_class.atmosphere_name})"
class StudentEvaluation(models.Model):
"""
Note d'un élève pour une évaluation.
"""
student = models.ForeignKey('Subscriptions.Student', on_delete=models.CASCADE, related_name='evaluation_scores')
evaluation = models.ForeignKey(Evaluation, on_delete=models.CASCADE, related_name='student_scores')
score = models.DecimalField(max_digits=5, decimal_places=2, null=True, blank=True)
comment = models.TextField(blank=True)
is_absent = models.BooleanField(default=False)
created_at = models.DateTimeField(auto_now_add=True)
updated_at = models.DateTimeField(auto_now=True)
class Meta:
unique_together = ('student', 'evaluation')
def __str__(self):
score_display = 'Absent' if self.is_absent else self.score
return f"{self.student} - {self.evaluation.name}: {score_display}"

View File

@ -11,11 +11,10 @@ from .models import (
PaymentMode, PaymentMode,
EstablishmentCompetency, EstablishmentCompetency,
Competency, Competency,
Evaluation, Evaluation
StudentEvaluation
) )
from Auth.models import Profile, ProfileRole from Auth.models import Profile, ProfileRole
from Subscriptions.models import Student from Subscriptions.models import Student, StudentEvaluation
from Establishment.models import Establishment from Establishment.models import Establishment
from Auth.serializers import ProfileRoleSerializer from Auth.serializers import ProfileRoleSerializer
from N3wtSchool import settings from N3wtSchool import settings

View File

@ -17,8 +17,7 @@ from .models import (
PaymentMode, PaymentMode,
EstablishmentCompetency, EstablishmentCompetency,
Competency, Competency,
Evaluation, Evaluation
StudentEvaluation
) )
from .serializers import ( from .serializers import (
TeacherSerializer, TeacherSerializer,
@ -38,7 +37,7 @@ from Common.models import Domain, Category
from N3wtSchool.bdd import delete_object, getAllObjects, getObject from N3wtSchool.bdd import delete_object, getAllObjects, getObject
from django.db.models import Q from django.db.models import Q
from collections import defaultdict from collections import defaultdict
from Subscriptions.models import Student, StudentCompetency from Subscriptions.models import Student, StudentCompetency, StudentEvaluation
from Subscriptions.util import getCurrentSchoolYear from Subscriptions.util import getCurrentSchoolYear
import logging import logging
from N3wtSchool.mailManager import sendRegisterForm, sendRegisterTeacher from N3wtSchool.mailManager import sendRegisterForm, sendRegisterTeacher

View File

@ -589,6 +589,27 @@ class StudentCompetency(models.Model):
def __str__(self): def __str__(self):
return f"{self.student} - {self.establishment_competency} - Score: {self.score} - Period: {self.period}" return f"{self.student} - {self.establishment_competency} - Score: {self.score} - Period: {self.period}"
class StudentEvaluation(models.Model):
"""
Note d'un élève pour une évaluation.
Déplacé depuis School pour éviter les dépendances circulaires.
"""
student = models.ForeignKey('Subscriptions.Student', on_delete=models.CASCADE, related_name='evaluation_scores')
evaluation = models.ForeignKey('School.Evaluation', on_delete=models.CASCADE, related_name='student_scores')
score = models.DecimalField(max_digits=5, decimal_places=2, null=True, blank=True)
comment = models.TextField(blank=True)
is_absent = models.BooleanField(default=False)
created_at = models.DateTimeField(auto_now_add=True)
updated_at = models.DateTimeField(auto_now=True)
class Meta:
unique_together = ('student', 'evaluation')
def __str__(self):
score_display = 'Absent' if self.is_absent else self.score
return f"{self.student} - {self.evaluation.name}: {score_display}"
####### Parent files templates (par dossier d'inscription) ####### ####### Parent files templates (par dossier d'inscription) #######
class RegistrationParentFileTemplate(models.Model): class RegistrationParentFileTemplate(models.Model):
master = models.ForeignKey(RegistrationParentFileMaster, on_delete=models.CASCADE, related_name='parent_file_templates', blank=True) master = models.ForeignKey(RegistrationParentFileMaster, on_delete=models.CASCADE, related_name='parent_file_templates', blank=True)