|
|
- from django.contrib import admin
- from django.urls import reverse
- from django.utils.safestring import mark_safe
- from hc.accounts.models import Profile
- from hc.payments.models import Subscription
-
-
- @admin.register(Subscription)
- class SubsAdmin(admin.ModelAdmin):
-
- readonly_fields = ("email", )
- search_fields = ("customer_id", "payment_method_token", "subscription_id",
- "user__email")
- list_display = ("id", "email", "customer_id", "address_id",
- "payment_method_token", "subscription_id", "plan_id",
- "plan_name", "profile")
-
- list_filter = ("plan_id", )
- raw_id_fields = ("user", )
- actions = ("cancel", )
-
- def email(self, obj):
- return obj.user.email if obj.user else None
-
- @mark_safe
- def profile(self, obj):
- if obj.user.profile:
- url = reverse("admin:accounts_profile_change",
- args=[obj.user.profile.id])
- return "<a href='%s'>View Profile</a>" % url
-
- return ""
-
- profile.allow_tags = True
-
- def cancel(self, request, qs):
- for sub in qs.all():
- sub.cancel()
-
- profile = Profile.objects.for_user(sub.user)
- profile.check_limit = 20
- profile.team_limit = 2
- profile.sms_limit = 0
- profile.save()
-
- self.message_user(request, "%d subscriptions cancelled" % qs.count())
|