|
@@ -12,6 +12,7 @@ from django.dispatch import receiver
|
|
|
from django.contrib.auth.models import AbstractUser
|
|
|
from django.conf import settings
|
|
|
from django.core.validators import RegexValidator
|
|
|
+from django.core.exceptions import ValidationError
|
|
|
from ldapdb.models.fields import CharField, IntegerField, ListField
|
|
|
|
|
|
from coin.offers.models import OfferSubscription
|
|
@@ -78,11 +79,23 @@ class Member(CoinLdapSyncMixin, AbstractUser):
|
|
|
# passwords for both ldap and local db
|
|
|
_password_ldap = None
|
|
|
|
|
|
+ def clean(self):
|
|
|
+ if self.type == 'legal_entity':
|
|
|
+ if not self.organization_name:
|
|
|
+ raise ValidationError("Le nom de l'organisme est obligatoire "
|
|
|
+ "pour une personne morale")
|
|
|
+ elif self.type == 'natural_person':
|
|
|
+ if not (self.first_name and self.last_name):
|
|
|
+ raise ValidationError("Le nom et prénom sont obligatoires "
|
|
|
+ "pour une personne physique")
|
|
|
+
|
|
|
def __unicode__(self):
|
|
|
- name = self.first_name + ' ' + self.last_name
|
|
|
- if self.organization_name:
|
|
|
- name += ' (%s)' % self.organization_name
|
|
|
- return name
|
|
|
+ if self.type == 'legal_entity':
|
|
|
+ return self.organization_name
|
|
|
+ elif self.nickname:
|
|
|
+ return self.nickname
|
|
|
+ else:
|
|
|
+ return self.first_name + ' ' + self.last_name
|
|
|
|
|
|
def get_full_name(self):
|
|
|
return '%s %s' % (self.first_name, self.last_name)
|
|
@@ -237,14 +250,10 @@ class Member(CoinLdapSyncMixin, AbstractUser):
|
|
|
class Meta:
|
|
|
verbose_name = 'membre'
|
|
|
|
|
|
-# Hack to force email, first_name ans last_name to be required by Member model
|
|
|
+# Hack to force email to be required by Member model
|
|
|
Member._meta.get_field('email')._unique = True
|
|
|
Member._meta.get_field('email').blank = False
|
|
|
Member._meta.get_field('email').null = False
|
|
|
-Member._meta.get_field('first_name').blank = False
|
|
|
-Member._meta.get_field('first_name').null = False
|
|
|
-Member._meta.get_field('last_name').blank = False
|
|
|
-Member._meta.get_field('last_name').null = False
|
|
|
|
|
|
|
|
|
class CryptoKey(models.Model):
|