refactor: Utilisation d'une application "Common" pour tous les modèles

de référence
This commit is contained in:
N3WT DE COMPET
2025-05-18 15:42:21 +02:00
parent 7fe53465ac
commit e65e31014d
24 changed files with 491 additions and 277 deletions

View File

@ -1,13 +1,59 @@
from django.db import models
class StudentCompetency(models.Model):
student = models.ForeignKey('Subscriptions.Student', on_delete=models.CASCADE, related_name='competency_scores')
competency = models.ForeignKey('School.Competency', 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, null=True)
class Meta:
unique_together = ('student', 'competency')
class Domain(models.Model):
name = models.CharField(max_length=255)
cycle = models.IntegerField(choices=[(1, 'Cycle 1'), (2, 'Cycle 2'), (3, 'Cycle 3'), (4, 'Cycle 4')])
def __str__(self):
return f"{self.student} - {self.competency.name} - Score: {self.score}"
return f"{self.name} (Cycle {self.cycle})"
class Category(models.Model):
name = models.CharField(max_length=255)
domain = models.ForeignKey(Domain, on_delete=models.CASCADE, related_name='categories')
def __str__(self):
return self.name
class Competency(models.Model):
name = models.TextField()
end_of_cycle = models.BooleanField(default=False, null=True, blank=True)
level = models.CharField(max_length=50, null=True, blank=True)
category = models.ForeignKey(Category, on_delete=models.CASCADE, related_name='competencies')
establishments = models.ManyToManyField(
'Establishment.Establishment',
through='School.EstablishmentCompetency',
related_name='competencies',
blank=True
)
def __str__(self):
return self.name
class PaymentPlanType(models.Model):
code = models.CharField(max_length=50, unique=True)
label = models.CharField(max_length=255)
def __str__(self):
return self.label
class PaymentModeType(models.Model):
code = models.CharField(max_length=50, unique=True)
label = models.CharField(max_length=255)
def __str__(self):
return self.label
class Cycle(models.Model):
number = models.IntegerField(unique=True)
label = models.CharField(max_length=50)
def __str__(self):
return f"Cycle {self.number} - {self.label}"
class Level(models.Model):
name = models.CharField(max_length=50)
cycle = models.ForeignKey(Cycle, on_delete=models.CASCADE, related_name='levels')
def __str__(self):
return self.name