{%- macro user_score_and_badge_summary(user) -%} {{user.reputation}} {% if user.gold or user.silver or user.bronze %} {% if user.gold %} {{user.gold}} {% endif %} {% if user.silver %} {{user.silver}} {% endif %} {% if user.bronze %} {{user.bronze}} {% endif %} {% endif %} {%- endmacro -%} {%- macro user_long_score_and_badge_summary(user) -%} {% trans %}karma:{% endtrans %} {{user.reputation}} {% if user.gold or user.silver or user.bronze %} {% trans %}badges:{% endtrans %} {% if user.gold %} {{user.gold}} {% endif %} {% if user.silver %} {{user.silver}} {% endif %} {% if user.bronze %} {{user.bronze}} {% endif %} {% endif %} {%- endmacro -%} {%- macro paginator(p) -%}{# p is paginator context dictionary #} {% spaceless %} {% if p.is_paginated %}
{% if p.has_previous %} « {% trans %}previous{% endtrans %} {% endif %} {% if not p.in_leading_range %} {% for num in p.pages_outside_trailing_range %} {{ num }} {% endfor %} ... {% endif %} {% for num in p.page_numbers %} {% if num == p.page and p.pages != 1%} {{ num }} {% else %} {{ num }} {% endif %} {% endfor %} {% if not p.in_trailing_range %} ... {% for num in p.pages_outside_leading_range|reverse %} {{ num }} {% endfor %} {% endif %} {% if p.has_next %} {% trans %}next page{% endtrans %} » {% endif %}
{% endif %} {% endspaceless %} {%- endmacro -%} {%- macro pagesize_switch(p) -%}{# p is paginator context #} {% spaceless %} {% if p.is_paginated %}
{% trans %}posts per page{% endtrans %} {% if p.page_size == 10 %} 10 {% else %} 10 {% endif %} {% if p.page_size == 30 %} 30 {% else %} 30 {% endif %} {% if p.page_size == 50 %} 50 {% else %} 50 {% endif %}
{% endif %} {% endspaceless %} {%- endmacro -%} {%- macro gravatar(user, size) -%} {% spaceless %} {% trans username=user.username %}{{username}} gravatar image{% endtrans %} {% endspaceless %} {%- endmacro -%} {%- macro post_contributor_info(post, contributor_type, is_wiki) -%}
{# there is a whole bunch of trickery here, probably indicative of poor design of the data or methods on data objects #} {% if contributor_type=="original_author" %} {% if is_wiki %}

{% trans %}community wiki{% endtrans %}

{% trans rev_count=post.revisions.all()|length %}{{rev_count}} revision{% pluralize %}{{rev_count}} revisions{% endtrans %}

{{post.author.get_profile_link()}}

{% else %}

{# todo: access to class names needs to be removed here #} {% if post.__class__.__name__=="Question" %} {% trans %}asked{% endtrans %} {% elif post.__class__.name__=="Answer" %} {% trans %}answered{% endtrans %} {% else %} {% trans %}posted{% endtrans %} {% endif %} {% if post.__class__.__name__ in ('QuestionRevision', 'AnswerRevision') %} {{post.revised_at|diff_date}} {% else %} {{post.added_at|diff_date}} {% endif %}

{{ gravatar(post.author, 32) }}

{{post.author.get_profile_link()}}
{{ user_score_and_badge_summary(post.author) }}

{% endif %} {% else %} {% if post.__class__.__name__ in ('Question', 'Answer') %} {% set last_edited_at = post.last_edited_at %} {% set original_author = post.author %} {% set update_author = post.last_edited_by %} {% elif post.__class__.__name__ in ('QuestionRevision', 'AnswerRevision') %} {% set last_edited_at = post.revised_at %} {% set original_author = None %}{# fake value to force display widget in the revision views #} {% set update_author = post.author %} {% endif %} {% if last_edited_at %}

{% trans %}updated{% endtrans %} {{ last_edited_at|diff_date }}

{% if original_author != display_author or is_wiki %} {{ gravatar(update_author, 32) }}

{{update_author.get_profile_link()}}
{{ user_score_and_badge_summary(update_author) }}

{% endif %} {% endif %} {% endif %}
{%- endmacro -%}