models.py 1.2 KB

1234567891011121314151617181920212223242526272829
  1. from django.db import models
  2. from django.urls import reverse
  3. from adhesions.models import Adhesion, User, Corporation
  4. class Profile(models.Model):
  5. user = models.OneToOneField(User, related_name='profile', verbose_name='Utilisateur', on_delete=models.CASCADE)
  6. common_name = models.CharField(max_length=32, blank=True, default='', verbose_name='Nom d’usage')
  7. phone_number = models.CharField(max_length=16, blank=True, default='',
  8. verbose_name='Numéro de téléphone')
  9. address = models.TextField(blank=True, default='', verbose_name='Adresse')
  10. ssh_keys = models.TextField(blank=True, default='', verbose_name='Clefs SSH')
  11. notes = models.TextField(blank=True, default='')
  12. @property
  13. def email(self):
  14. return self.user.email
  15. class Meta:
  16. verbose_name = 'profil'
  17. @property
  18. def adhesions(self): # user and corporations (for which the user is a member) adhesions
  19. return Adhesion.objects.filter(models.Q(user__pk=self.user.pk) | models.Q(corporation__members__profile__pk=self.pk))
  20. def __str__(self):
  21. return self.common_name or self.user.get_full_name() or self.user.username