{% extends "projects/base.html" %} {% block page_title %}{{ feature.key }} {{ feature.title }}{% endblock %} {% block project_content %} {% include "features/_header.html" %} {% if feature.status == "withdrawn" %}

Withdrawn. This feature is no longer planned.

{% elif feature.status == "superseded" %}

Superseded by {{ feature.superseded_by.key }} {{ feature.superseded_by.title }}.

{% endif %}
Status
{{ feature.get_status_display }}
Revision
{{ feature.current_revision }} (history)
{% if latest %}
Last change
by {{ latest.author.username|default:"unknown" }}: {{ latest.note }}
{% endif %}
{% if access.can_edit %} {% endif %}

Description

{% if blocks %} {% url 'features:thread_create' org_slug=project.org.slug project_slug=project.slug feature_key=feature.key as thread_create_url %}
{% for block, threads in blocks %} {# Each block of the description can carry its own threads, like lines in a code review. #}
{{ block.html }} {% for thread in threads %} {% include "comments/_thread.html" %} {% endfor %} {% if access.can_contribute %}
Comment on lines {{ block.start }}–{{ block.end }}
{% csrf_token %}
{% endif %}
{% endfor %}
{% else %}

No description yet.

{% endif %}
{% if children %}

Sub-features

{% endif %} {% if supersedes %}

Replaces

{% endif %}

Issues

{% if issues %} {% else %}

No issues linked.

{% endif %} {% if access.can_contribute %}

Open an issue about {{ feature.key }}

{% endif %}

Discussion

{% for thread in general_threads %} {% include "comments/_thread.html" %} {% empty %}

No comments yet.

{% endfor %} {% if access.can_contribute %}
{% csrf_token %}

Markdown. To comment on part of the description, use the Comment button below that part.

{% elif not user.is_authenticated and project.open_contribution %}

Sign in to join the discussion.

{% endif %}
{% if outdated_threads %}

Comments on earlier revisions

{% for thread in outdated_threads %} {% include "comments/_thread.html" %} {% endfor %}
{% endif %} {% endblock %}