{% import "macros.html" as m %}

Fact {{ fact_id }}

{% if fact is none %}

No fact {{ fact_id }} in the curation file.

{% else %}

in concept {{ m.concept_link(pack.pack, concept.concept_id) }} - {{ concept.label }}

Statement

{{ containment }}

{% for name, spec in context_fields.items() %} {% endfor %}
Context fieldEnumDescription
{{ name }}{{ (spec.enum or []) | join(', ') }} {{ spec.description | shorten(120) }}
Provenance {% if fact.provenance.reviewed_by %}

confirmed by {{ fact.provenance.reviewed_by }} on {{ fact.provenance.reviewed_on }}

{% endif %}

Editing the statement of a confirmed fact clears its review status, so an edit is followed by a confirm.

{% if not read_only %}{% endif %}
{% if draft_provider is none and not fact.statement.strip() %}

The assistant draft needs the concept-extraction provider port of TODO.md; until it exists the button is absent and no statement is written by a machine.

{% endif %}

Evidence ({{ evidence | length }})

A fact needs at least one citation; the form refuses to save without one, as the model does.

{% for row in evidence %}

{{ m.document_link(pack.pack, row.citation.document_id, row.entry.title or row.citation.document_id) }} blocks {{ row.citation.first_block }}-{{ row.citation.last_block or row.citation.first_block }} {{ row.state }}

{% if row.heading_path %}

{{ row.heading_path | join(' / ') }}

{% endif %}
{{ row.excerpt or 'no anchor yet; the next build writes one' }}

basis: {% if row.basis.label %}{{ row.basis.label }} ({{ row.basis.rule }}{% if row.basis.institution %}; published by {{ row.basis.institution.name }}, {{ row.basis.institution.level }}{% endif %}) {% else %}{{ row.basis.rule }}{% endif %} {% for warning in row.basis.warnings %}{{ warning }}{% endfor %}

open in the reading view

{% if not read_only %}
{% endif %}
{% endfor %} {% if not read_only %}
Add a citation

Picking a range in the reading view is the usual way; this form is for a range you already know.

{% endif %} {% endif %}