diff --git a/server/core/hep_client.py b/server/core/hep_client.py index 72727c2b..2edf27ab 100644 --- a/server/core/hep_client.py +++ b/server/core/hep_client.py @@ -164,11 +164,12 @@ class HepClient: if 'status' in order_item: status = order_item['status'] - order_id = -1 - if 'order_id' in order_item: - status = order_item['order_id'] - for item in order_item['items']: + + order_id = -1 + if 'order_id' in item: + order_id = item['order_id'] + if item['sku'] == settings.MYSKILLBOX_TEACHER_EDITION_ISBN or \ item['sku'] == settings.MYSKILLBOX_STUDENT_EDITION_ISBN: diff --git a/server/users/management/commands/sync_licenses.py b/server/users/management/commands/sync_licenses.py index 106c3a4f..16754b72 100644 --- a/server/users/management/commands/sync_licenses.py +++ b/server/users/management/commands/sync_licenses.py @@ -11,11 +11,9 @@ import os import shutil from django.conf import settings -from django.core import management from django.core.management import BaseCommand -from django.db import connection -from core import hep_client +from core.hep_client import HepClient from core.models import AdminData from users.models import User, License @@ -32,11 +30,14 @@ class Command(BaseCommand): def handle(self, *args, **options): "Update licenses via cronjob" + hep_client = HepClient() + admin_token = AdminData.objects.get_admin_token() hep_users = User.objects.filter(hep_id__isnull=False) for hep_user in hep_users: product = hep_client.myskillbox_product_for_customer(admin_token, hep_user.hep_id) - if License.objects.filter(licensee=hep_users, order_id=product['order_id']).count() == 0: + + if product and License.objects.filter(licensee=hep_user, order_id=product['order_id']).count() == 0: License.objects.create_license_for_role(hep_user, product['activated'], product['raw'], product['edition'], product['order_id'])