{% from '_helpers.html' import render_user %} {% macro render_tags(tags) %}

{%- for tag in tags %} {{ tag.name|e }} {%- endfor %} {%- endmacro %} {% macro render_topic(topic) %}

{{ topic.votes }}

{{ ngettext('vote', 'votes', topic.reply_count) }}

{{ topic.reply_count }}

{{ ngettext('reply', 'replies', topic.reply_count) }}

{{ topic.title|e }}

{{ _("By %s") % render_user(topic.author) }}, {{ topic.date|datetimeformat }} {{ render_tags(topic.tags) }}

{% endmacro %} {% macro render_topics(topics, standalone=false) %}
{%- for topic in topics %} {{ render_topic(topic) }} {%- endfor %}
{%- endmacro %} {% macro render_topic_tabs(endpoint, current_sort, extra_args={}) %}
{%- endmacro %} {% macro render_reply(post, user) %}
{{ render_accept_box(post, user) }} {{ render_vote_box(post, user) }}
{{ post.rendered_text }}
{{ render_actions_box(post, user) }} {{ render_plain_comment_box(post) }} {{ render_meta_box(post) }}
{% endmacro %} {% macro render_meta_box(post) %}

{% trans date=post.created|datetimeformat, user=render_user(post.author) -%} Created {{ date }} by {{ user }}. {%- endtrans %} {% if post.was_edited %}

{% trans date=post.updated|datetimeformat, user=render_user(post.editor) -%} Last change {{ date }} by {{ user }}. {%- endtrans %}

{{ ngettext('This post was edited %d time.', 'This post was edited %d times.', post.edits) % post.edits }} {{ _('Show revisions') }} {% endif %}

{% endmacro %} {% macro render_vote_box(post, user) %} {%- macro button(direction, val, text) -%}

{%- if user and user['has_' ~ direction ~ 'voted'](post) -%} {%- else -%} {%- endif -%} {{ text }} {%- endmacro %}

{{ button('up', 1, _('Up')) }}

{{ post.votes }}

{{ button('down', -1, _('Down')) }}
{%- endmacro %} {% macro render_accept_box(post, user) %} {%- set can_accept = user and user.can_accept_as_answer(post) %} {%- set can_unaccept = user and user.can_unaccept_as_answer(post) %} {%- if can_accept or post.is_answer %}
{%- if post.is_answer %} {%- if can_unaccept -%} {{ _('Unaccept as answer') }} {%- else -%} {{ _('Accepted Answer') }} {%- endif %} {%- elif can_accept -%} {{ _('Accept as answer') }} {%- endif %}
{%- endif %} {%- endmacro %} {% macro render_comment_link(post) %} {%- if post.comment_count -%} {{ ngettext('%d comment', '%d comments', post.comment_count) % post.comment_count }} {%- else -%} {{ _('Add comment') }} {% endif %} {%- endmacro %} {% macro render_plain_comment_box(post) %}
{%- endmacro %} {% macro render_comment(comment) %}
{{ comment.rendered_text }} — {{ render_user(comment.author) }}   {{ comment.date|datetimeformat }}
{%- endmacro %} {% macro render_actions_box(post, user) -%} {%- set sep = joiner(' | ') %}
{%- if user and user.can_edit(post) %}{{ sep() }} {{ _('Edit') }} {%- endif %} {%- if not post.is_answer and user and user.is_moderator %}{{ sep() }} {%- if post.is_deleted %} {{ _('Restore') }} {%- else %} {{ _('Delete') }} {%- endif %} {%- endif %}
{%- endmacro %}