{% from "_search_box.html" import card_search %} {# The edit panel for one inventory row. Served as a fragment into the drawer. #}
{{ r.name }}
{{ r.game }}{% if r.set_name %} · {{ r.set_name }}{% endif %}{% if r.number %} · #{{ r.number }}{% endif %}
{% if r.scan_id %}
your scanscan
{% else %}
no scan
{% endif %}
catalogue referencecatalogue
{# Deleting the row used to be the only remedy for a wrong match, and it takes the scan with it. Re-pointing keeps the photograph — which is the evidence of what was actually in the box. #}
Condition
{% for c in conditions %} {% endfor %}
Finish
{% for f in finishes %} {% endfor %}
Printing {% if r.printings %}
{% for pr in r.printings %} {% endfor %}
{% if r.printing_guessed %} Not chosen — priced as the dearest printing that matches “{{ r.finish_label }}”. Pick the one you hold. {% elif r.printing_declared %} Chosen by you. Pricing uses this printing exactly. {% endif %} {% else %} No printing prices for this card yet — run foilstack sync-prices. {% endif %}
SKU{{ r.sku }}
Market{{ r.market|money if r.market is not none else '—' }}
Suggested list{{ r.list_price|money if r.list_price is not none else '—' }}
Listed on{{ r.listed_label }}
{% if r.sold %}Sold{% if r.sold_at %} {{ r.sold_at.strftime('%b %d %Y') }}{% endif %}{% else %}Mark as sold{% endif %}
  {% if r.sold %} {% else %} {% endif %}

Sold rows leave your stock and stop being exported, but stay in the table — they are what makes realised profit answerable. Deleting a card you sold takes its cost basis with it.

Delete is for a copy you never had. If the scan is right and the card it matched is wrong, use Not this card? above instead — it keeps the scan. Delete cannot be undone.