Browse Source

petit fix

Élie Bouttier 8 years ago
parent
commit
6441528b15
2 changed files with 19 additions and 11 deletions
  1. 17 0
      accounts/models.py
  2. 2 11
      adhesions/models.py

+ 17 - 0
accounts/models.py

@@ -16,5 +16,22 @@ class Profile(models.Model):
     class Meta:
         verbose_name = 'profil'
 
+    @property
+    def adhesion(self): # user adhesion
+        ctype = ContentType.objects.get_for_model(User)
+        try:
+            return Adhesion.objects.get(adherent_type=ctype, adherent_id=self.pk)
+        except Adhesion.DoesNotExist:
+            return None
+
+    @property
+    def adhesions(self): # user and corporations (for which the user is a member) adhesions
+        user_type = ContentType.objects.get_for_model(User)
+        corp_type = ContentType.objects.get_for_model(Corporation)
+        return Adhesion.objects.filter(
+            models.Q(adherent_type=user_type, adherent_id=self.user.pk)
+            | models.Q(adherent_type=corp_type, adherent_id__in=Corporation.objects.filter(members=self.user).values_list('pk'))
+        )
+
     def __str__(self):
         return self.user.get_full_name() or self.user.username

+ 2 - 11
adhesions/models.py

@@ -88,20 +88,11 @@ class User(AuthUser):
 
     @property
     def adhesion(self): # user adhesion
-        ctype = ContentType.objects.get_for_model(User)
-        try:
-            return Adhesion.objects.get(adherent_type=ctype, adherent_id=self.pk)
-        except Adhesion.DoesNotExist:
-            return None
+        return self.profile.adhesion
 
     @property
     def adhesions(self): # user and corporations (for which the user is a member) adhesions
-        user_type = ContentType.objects.get_for_model(User)
-        corp_type = ContentType.objects.get_for_model(Corporation)
-        return Adhesion.objects.filter(
-            models.Q(adherent_type=user_type, adherent_id=self.user.pk)
-            | models.Q(adherent_type=corp_type, adherent_id__in=Corporation.objects.filter(members=self.user).values_list('pk'))
-        )
+        return self.profile.adhesions
     
     def __str__(self):
         return self.get_full_name() or self.username