""" Utility functions used by the badging app. """ from django.conf import settings def site_prefix(): """ Get the prefix for the site URL-- protocol and server name. """ scheme = u"https" if settings.HTTPS == "on" else u"http" return u'{}://{}'.format(scheme, settings.SITE_NAME) def requires_badges_enabled(function): """ Decorator that bails a function out early if badges aren't enabled. """ def wrapped(*args, **kwargs): """ Wrapped function which bails out early if bagdes aren't enabled. """ if not badges_enabled(): return return function(*args, **kwargs) return wrapped def badges_enabled(): """ returns a boolean indicating whether or not openbadges are enabled. """ return settings.FEATURES.get('ENABLE_OPENBADGES', False) def deserialize_count_specs(text): """ Takes a string in the format of: int,course_key int,course_key And returns a dictionary with the keys as the numbers and the values as the course keys. """ specs = text.splitlines() specs = [line.split(',') for line in specs if line.strip()] return {int(num): slug.strip().lower() for num, slug in specs}