mirror of
				https://gitlab.com/animath/si/plateforme-corres2math.git
				synced 2025-10-31 18:20:04 +01:00 
			
		
		
		
	
		
			
				
	
	
		
			89 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			89 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
| from django.db import models
 | |
| from django.utils.translation import gettext_lazy as _
 | |
| from polymorphic.models import PolymorphicModel
 | |
| 
 | |
| 
 | |
| class Registration(PolymorphicModel):
 | |
|     user = models.OneToOneField(
 | |
|         "auth.User",
 | |
|         on_delete=models.CASCADE,
 | |
|         verbose_name=_("user"),
 | |
|     )
 | |
| 
 | |
|     team = models.ForeignKey(
 | |
|         "participation.Team",
 | |
|         on_delete=models.PROTECT,
 | |
|         null=True,
 | |
|         default=None,
 | |
|         verbose_name=_("team"),
 | |
|     )
 | |
| 
 | |
|     give_contact_to_animath = models.BooleanField(
 | |
|         default=False,
 | |
|         verbose_name=_("Grant Animath to contact me in the future about other actions"),
 | |
|     )
 | |
| 
 | |
|     @property
 | |
|     def type(self):
 | |
|         raise NotImplementedError
 | |
| 
 | |
|     def __str__(self):
 | |
|         return _("registration of {first_name} {last_name}")\
 | |
|             .format(first_name=self.user.first_name, last_name=self.user.last_name)
 | |
| 
 | |
|     class Meta:
 | |
|         verbose_name = _("registration")
 | |
|         verbose_name_plural = _("registrations")
 | |
| 
 | |
| 
 | |
| class StudentRegistration(Registration):
 | |
|     student_class = models.IntegerField(
 | |
|         choices=[
 | |
|             (12, _("12th grade")),
 | |
|             (11, _("11th grade")),
 | |
|             (10, _("10th grade or lower")),
 | |
|         ],
 | |
|         verbose_name=_("student class"),
 | |
|     )
 | |
| 
 | |
|     school = models.CharField(
 | |
|         max_length=255,
 | |
|         verbose_name=_("school"),
 | |
|     )
 | |
| 
 | |
|     @property
 | |
|     def type(self):
 | |
|         return _("student")
 | |
| 
 | |
|     class Meta:
 | |
|         verbose_name = _("student registration")
 | |
|         verbose_name_plural = _("student registrations")
 | |
| 
 | |
| 
 | |
| class CoachRegistration(Registration):
 | |
|     professional_activity = models.TextField(
 | |
|         verbose_name=_("professional activity"),
 | |
|     )
 | |
| 
 | |
|     @property
 | |
|     def type(self):
 | |
|         return _("coach")
 | |
| 
 | |
|     class Meta:
 | |
|         verbose_name = _("coach registration")
 | |
|         verbose_name_plural = _("coach registrations")
 | |
| 
 | |
| 
 | |
| class AdminRegistration(Registration):
 | |
|     role = models.TextField(
 | |
|         verbose_name=_("role of the administrator"),
 | |
|     )
 | |
| 
 | |
|     @property
 | |
|     def type(self):
 | |
|         return _("admin")
 | |
| 
 | |
|     class Meta:
 | |
|         verbose_name = _("admin registration")
 | |
|         verbose_name_plural = _("admin registrations")
 |