mirror of
https://git.v0id.ovh/n3wt-innov/n3wt-school.git
synced 2026-01-28 23:43:22 +00:00
59 lines
1.8 KiB
Python
59 lines
1.8 KiB
Python
from django.db import models
|
|
|
|
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.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 |