This will remove imports from __future__ that are no longer needed. https://docs.python.org/3.5/library/2to3.html#2to3fixer-future
45 lines
1.1 KiB
Python
45 lines
1.1 KiB
Python
"""
|
|
Certificate service
|
|
"""
|
|
|
|
|
|
import logging
|
|
|
|
from django.core.exceptions import ObjectDoesNotExist
|
|
from opaque_keys.edx.keys import CourseKey
|
|
|
|
from lms.djangoapps.utils import _get_key
|
|
|
|
from .models import GeneratedCertificate
|
|
|
|
log = logging.getLogger(__name__)
|
|
|
|
|
|
class CertificateService(object):
|
|
"""
|
|
User Certificate service
|
|
"""
|
|
|
|
def invalidate_certificate(self, user_id, course_key_or_id):
|
|
"""
|
|
Invalidate the user certificate in a given course if it exists.
|
|
"""
|
|
course_key = _get_key(course_key_or_id, CourseKey)
|
|
try:
|
|
generated_certificate = GeneratedCertificate.objects.get(
|
|
user=user_id,
|
|
course_id=course_key
|
|
)
|
|
generated_certificate.invalidate()
|
|
log.info(
|
|
u'Certificate invalidated for user %d in course %s',
|
|
user_id,
|
|
course_key
|
|
)
|
|
except ObjectDoesNotExist:
|
|
log.warning(
|
|
u'Invalidation failed because a certificate for user %d in course %s does not exist.',
|
|
user_id,
|
|
course_key
|
|
)
|