Browse Source

pas de lien vers adhérent si pas la permission

Élie Bouttier 8 years ago
parent
commit
0371d6fd2c
2 changed files with 15 additions and 7 deletions
  1. 13 1
      banking/admin.py
  2. 2 6
      banking/models.py

+ 13 - 1
banking/admin.py

@@ -98,7 +98,12 @@ class PaymentAdmin(PaymentMixin, admin.ModelAdmin):
     list_filter = (PaymentTypeFilter, 'payment_method', 'validated',)
 
     def get_list_display(self, request):
-        list_display = ('get_adherent', 'payment_type_verbose', 'amount',
+        list_display = ()
+        if request.user.has_perm('auth.change_user'):
+            list_display += ('adherent_link',)
+        else:
+            list_display += ('get_adherent',)
+        list_display += ('payment_type_verbose', 'amount',
                         'period', 'payment_method', 'validated',)
         if request.user.has_perm('banking.validate_payment'):
             list_display += ('change',)
@@ -106,6 +111,13 @@ class PaymentAdmin(PaymentMixin, admin.ModelAdmin):
             list_display += ('change_pending',)
         return list_display
 
+    def adherent_link(self, obj):
+        adherent = obj.get_adherent()
+        url = reverse('admin:adhesions_adherent_change', args=[adherent.pk])
+        return '<a href="%s">%s</a>' % (url, adherent)
+    adherent_link.short_description = 'Adhérent'
+    adherent_link.allow_tags = True
+
     def change(self, obj):
         url = reverse('admin:banking_payment_change', args=[obj.pk])
         return '<a href="%s" class="changelink">Modifier</a>' % url

+ 2 - 6
banking/models.py

@@ -44,17 +44,13 @@ class Payment(models.Model):
     # Note: 'adherent' is already used as the related_query_name
     #        of the GenericRelation on Adherent
     def get_adherent(self):
-        adherent = None
         if self.reason_type.app_label == 'adhesions' \
                 and self.reason_type.model == 'adherent':
-            adherent = self.reason
+            return self.reason
         if self.reason_type.app_label == 'services' \
                 and self.reason_type.model == 'service':
-            adherent = self.reason.adherent
-        url = reverse('admin:adhesions_adherent_change', args=[adherent.pk])
-        return '<a href="%s">%s</a>' % (url, adherent)
+            return self.reason.adherent
     get_adherent.short_description = 'Adhérent'
-    get_adherent.allow_tags = True
 
     def __str__(self):
         s = str(self.amount) + '€'