diff --git a/hosting/models.py b/hosting/models.py index f7f2fd2a..62957100 100644 --- a/hosting/models.py +++ b/hosting/models.py @@ -209,3 +209,15 @@ class UserCardDetail(AssignPermissionsMixin, models.Model): ) instance.assign_permissions(stripe_customer.user) return instance + + @classmethod + def get_all_cards_list(cls, stripe_customer): + user_card_details = UserCardDetail.objects.filter( + stripe_customer_id=stripe_customer.id + ) + cards_list = [] + for card in user_card_details: + cards_list.append({ + 'last4': card.last4, 'brand': card.brand, 'id': card.id + }) + return cards_list diff --git a/hosting/views.py b/hosting/views.py index e62a0dc2..5b48ff34 100644 --- a/hosting/views.py +++ b/hosting/views.py @@ -551,14 +551,9 @@ class SettingsView(LoginRequiredMixin, FormView): def get_context_data(self, **kwargs): context = super(SettingsView, self).get_context_data(**kwargs) user = self.request.user - user_card_details = UserCardDetail.objects.filter( - stripe_customer_id=user.stripecustomer.id + cards_list = UserCardDetail.get_all_cards_list( + stripe_customer= user.stripecustomer ) - cards_list = [] - for card in user_card_details: - cards_list.append({ - 'last4': card.last4, 'brand': card.brand, 'id': card.id - }) context.update({ 'cards_list': cards_list, 'stripe_key': settings.STRIPE_API_PUBLIC_KEY