from django.utils import six from judge.ratings import rating_class, rating_name, rating_progress from . import registry def _get_rating_value(func, obj): if obj is None: return None if isinstance(obj, six.integer_types): return func(obj) else: return func(obj.rating) @registry.function('rating_class') def get_rating_class(obj): return _get_rating_value(rating_class, obj) or 'rate-none' @registry.function(name='rating_name') def get_name(obj): return _get_rating_value(rating_name, obj) or 'Unrated' @registry.function(name='rating_progress') def get_progress(obj): return _get_rating_value(rating_progress, obj) or 0.0 @registry.function @registry.render_with('user/rating.html') def rating_number(obj): return {'rating': obj}