Skip to content

Review tags

hypha.apply.review.templatetags.review_tags

register module-attribute

register = Library()

TRAFFIC_LIGHT_COLORS module-attribute

TRAFFIC_LIGHT_COLORS = {YES: {'color': 'green', 'value': 'Y'}, MAYBE: {'color': 'amber', 'value': 'M'}, NO: {'color': 'red', 'value': 'N'}}

TRAFFIC_LIGHT_TEMPLATE module-attribute

TRAFFIC_LIGHT_TEMPLATE = '<span class="traffic-light traffic-light--{color}"></span>'

traffic_light

traffic_light(value)
Source code in hypha/apply/review/templatetags/review_tags.py
@register.filter()
def traffic_light(value):
    try:
        return mark_safe(TRAFFIC_LIGHT_TEMPLATE.format(**TRAFFIC_LIGHT_COLORS[value]))
    except KeyError:
        return ""

can_review

can_review(user, submission)
Source code in hypha/apply/review/templatetags/review_tags.py
@register.filter
def can_review(user, submission):
    return submission.can_review(user)

has_draft

has_draft(user, submission)
Source code in hypha/apply/review/templatetags/review_tags.py
@register.filter
def has_draft(user, submission):
    return (
        submission.can_review(user)
        and submission.assigned.draft_reviewed().filter(reviewer=user).exists()
    )

average_review_score

average_review_score(reviewers)
Source code in hypha/apply/review/templatetags/review_tags.py
@register.filter
def average_review_score(reviewers):
    if reviewers:
        scores = [
            reviewer.review.score
            for reviewer in reviewers
            if not reviewer.has_review
            and not reviewer.review.is_draft
            and not reviewer.review.score == NA
        ]
        if len(scores) > 0:
            return _("Avg. score: {average}").format(
                average=round(sum(scores) / len(scores), 1)
            )
    return ""