Add clean names to people model

This commit is contained in:
Gregory Trullemans 2024-02-06 12:42:31 +01:00
parent 70c306f546
commit 350c6549e7
3 changed files with 20 additions and 3 deletions

View File

@ -41,6 +41,12 @@ puis, **pour les mac M1** exécuter les commandes :
sudo ln -s /opt/homebrew/opt/pango/lib/libpangoft2-1.0.dylib /usr/local/lib/pangoft2-1.0
```
### Tests
### Pylint
Dans le répertoire racine, tapez la commande suivante :

View File

@ -11,7 +11,7 @@ class GymnastAdmin(admin.ModelAdmin):
def first_name(self, obj):
return obj.user.first_name
@admin.display(ordering='user__email', description='Email')
@admin.display(ordering="user__email", description="Email")
def email(self, obj):
if obj.user:
return obj.user.email
@ -23,7 +23,9 @@ class GymnastAdmin(admin.ModelAdmin):
fields = (
"last_name",
"cleaned_last_name",
"first_name",
"cleaned_first_name",
"user",
"birthdate",
"gender",
@ -35,6 +37,8 @@ class GymnastAdmin(admin.ModelAdmin):
"informations",
)
readonly_fields = ["cleaned_last_name", "cleaned_first_name"]
list_display = ("last_name", "first_name", "age", "email", "is_active")
list_filter = ("gender", "user__is_active")
search_fields = ("last_name", "first_name")

View File

@ -14,6 +14,7 @@ from jarvis.objective.tools import (
compute_completude,
compute_statistics_by_type,
)
from jarvis.tools.clean_name import clean_name
User = get_user_model()
@ -35,9 +36,9 @@ class Gymnast(Markdownizable):
User, on_delete=models.SET_NULL, related_name="gymnast", blank=True, null=True
)
last_name = models.CharField(max_length=40, null=False, blank=False)
# cleaned_last_name = models.CharField(max_length=40, null=False, blank=False)
cleaned_last_name = models.CharField(max_length=40, null=False, blank=False)
first_name = models.CharField(max_length=25, null=False, blank=False)
# cleaned_first_name = models.CharField(max_length=25, null=False, blank=False)
cleaned_first_name = models.CharField(max_length=25, null=False, blank=False)
birthdate = models.DateField(verbose_name="Birth date")
gender = models.PositiveSmallIntegerField(
choices=GENDER_CHOICES, verbose_name="Sexe"
@ -55,6 +56,12 @@ class Gymnast(Markdownizable):
)
created_at = models.DateTimeField(auto_now_add=True)
def save(self, *args, **kwargs):
"""Sauve les informations de la personne et initialise les champs nettoyés."""
self.cleaned_last_name = clean_name(self.last_name)
self.cleaned_first_name = clean_name(self.first_name)
super().save(*args, **kwargs)
def __str__(self):
return f"{self.first_name} {self.last_name}"