diff --git a/mhackspace/subscriptions/management/__init_.py b/mhackspace/subscriptions/management/__init_.py new file mode 100644 index 0000000..e69de29 diff --git a/mhackspace/subscriptions/management/commands/__init__.py b/mhackspace/subscriptions/management/commands/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/mhackspace/subscriptions/management/commands/refresh_subscriptions.py b/mhackspace/subscriptions/management/commands/refresh_subscriptions.py index aeecff9..24cd193 100644 --- a/mhackspace/subscriptions/management/commands/refresh_subscriptions.py +++ b/mhackspace/subscriptions/management/commands/refresh_subscriptions.py @@ -7,16 +7,47 @@ from mhackspace.subscriptions.payments import select_provider from mhackspace.users.models import Membership, User + +def update_subscriptions(provider_name): + provider = select_provider('gocardless') + + Membership.objects.all().delete() + subscriptions = [] + + group = Group.objects.get(name='members') + + for sub in provider.fetch_subscriptions(): + try: + user_model = User.objects.get(email=sub.get('email')) + if sub.get('status') == 'active': + user_model.groups.add(group) + except User.DoesNotExist: + user_model = None + + subscriptions.append( + Membership( + user=user_model, + email=sub.get('email'), + reference=sub.get('reference'), + payment=10.00, + date= sub.get('start_date'), + # date=timezone.now(), + status=Membership.lookup_status(name=sub.get('status')) + ) + ) + yield model_to_dict(subscriptions[-1]) + + class Command(BaseCommand): help = 'Update user subscriptions' def handle(self, *args, **options): - provider = select_provider('gocardless') - + provider_name = 'gocardless' self.stdout.write( self.style.NOTICE( - '== Gocardless subscriptions ==')) + '== %s subscriptions ==' % provider_name.capitalize())) + provider = select_provider('gocardless') Membership.objects.all().delete() subscriptions = [] @@ -30,7 +61,6 @@ class Command(BaseCommand): except User.DoesNotExist: user_model = None - self.stdout.write(sub.get('status')) subscriptions.append( Membership( user=user_model, diff --git a/mhackspace/templates/admin/users/user/change_list.html b/mhackspace/templates/admin/users/user/change_list.html new file mode 100644 index 0000000..1da159d --- /dev/null +++ b/mhackspace/templates/admin/users/user/change_list.html @@ -0,0 +1,7 @@ +{% extends "admin/change_list.html" %} +{% block object-tools-items %} +