def award_enrollment_badge(user): """ Awards badges based on the number of courses a user is enrolled in. """ config = CourseEventBadgesConfiguration.current().enrolled_settings enrollments = user.courseenrollment_set.filter(is_active=True).count() award_badge(config, enrollments, user)
def award_enrollment_badge(user): """ Awards badges based on the number of courses a user is enrolled in. """ config = CourseEventBadgesConfiguration.current().enrolled_settings enrollments = user.courseenrollment_set.filter(is_active=True).count() award_badge(config, enrollments, user)
def course_group_check(user, course_key): """ Awards a badge if a user has completed every course in a defined set. """ from lms.djangoapps.certificates.models import CertificateStatuses config = CourseEventBadgesConfiguration.current().course_group_settings awards = [] for slug, keys in config.items(): if course_key in keys: certs = user.generatedcertificate_set.filter( status__in=CertificateStatuses.PASSED_STATUSES, course_id__in=keys, ) if len(certs) == len(keys): # course_complete Assertions are not working correctly # yet with Badgr.io, while course group is working. # so we use course groups with a single course, # in which case we can provide an evidence URL # to the HTML cert for the one coursee if len(keys) == 1: evidence = evidence_url(user.id, course_key) awards.append((slug, evidence)) else: awards.append((slug,)) for award in awards: badge_class = BadgeClass.get_badge_class( slug=slug, create=False, ) if badge_class and not badge_class.get_for_user(user): try: badge_class.award(user, evidence_url=award[1]) except IndexError: badge_class.award(user)
def completion_check(user): """ Awards badges based upon the number of courses a user has 'completed'. Courses are never truly complete, but they can be closed. For this reason we use checks on certificates to find out if a user has completed courses. This badge will not work if certificate generation isn't enabled and run. """ from certificates.models import CertificateStatuses config = CourseEventBadgesConfiguration.current().completed_settings certificates = user.generatedcertificate_set.filter(status__in=CertificateStatuses.PASSED_STATUSES).count() award_badge(config, certificates, user)
def completion_check(user): """ Awards badges based upon the number of courses a user has 'completed'. Courses are never truly complete, but they can be closed. For this reason we use checks on certificates to find out if a user has completed courses. This badge will not work if certificate generation isn't enabled and run. """ from lms.djangoapps.certificates.models import CertificateStatuses config = CourseEventBadgesConfiguration.current().completed_settings certificates = user.generatedcertificate_set.filter(status__in=CertificateStatuses.PASSED_STATUSES).count() award_badge(config, certificates, user)
def course_group_check(user, course_key): """ Awards a badge if a user has completed every course in a defined set. """ from certificates.models import CertificateStatuses config = CourseEventBadgesConfiguration.current().course_group_settings awards = [] for slug, keys in config.items(): if course_key in keys: certs = user.generatedcertificate_set.filter( status__in=CertificateStatuses.PASSED_STATUSES, course_id__in=keys, ) if len(certs) == len(keys): awards.append(slug) for slug in awards: badge_class = BadgeClass.get_badge_class( slug=slug, issuing_component='openedx__course', create=False, ) if badge_class and not badge_class.get_for_user(user): badge_class.award(user)
def course_group_check(user, course_key): """ Awards a badge if a user has completed every course in a defined set. """ from lms.djangoapps.certificates.models import CertificateStatuses config = CourseEventBadgesConfiguration.current().course_group_settings awards = [] for slug, keys in config.items(): if course_key in keys: certs = user.generatedcertificate_set.filter( status__in=CertificateStatuses.PASSED_STATUSES, course_id__in=keys, ) if len(certs) == len(keys): awards.append(slug) for slug in awards: badge_class = BadgeClass.get_badge_class( slug=slug, issuing_component='openedx__course', create=False, ) if badge_class and not badge_class.get_for_user(user): badge_class.award(user)