Skip to content

Review tags

hypha.apply.review.templatetags.review_tags

register module-attribute

register = Library()

traffic_light

traffic_light(value)
Source code in hypha/apply/review/templatetags/review_tags.py
@register.filter()
def traffic_light(value):
    mapping = {
        YES: {
            "label": _("Overall recommendation: Yes"),
            "class": "triangle-up text-success",
        },
        MAYBE: {
            "label": _("Overall recommendation: Maybe"),
            "class": "circle text-warning",
        },
        NO: {
            "label": _("Overall recommendation: No"),
            "class": "triangle-down text-error",
        },
    }

    try:
        html = """
            <div class="flex items-center">
                <span class="size-3 {class}" aria-hidden=true></span>
                <span class="sr-only">{label}</span>
            </div>
        """
        return format_html(html, **mapping[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 ""