{# "with context" so includes inside the macros (part/table.html) can see render kwargs like bag_breakdown #} {% import 'macro/accordion.html' as accordion with context %} {% import 'macro/badge.html' as badge %} {% import 'macro/card.html' as card %} {% import 'macro/form.html' as form %}
{{ card.header(item, item.fields.name, solo=solo, identifier=item.fields.set) }} {# When opt-in additional images are available, fold them into the cover as a carousel. #} {% set show_carousel = solo and sidecar_summary is defined and sidecar_summary and sidecar_summary.additional_images_enabled and sidecar_summary.additional_image_count and sidecar_summary.additional_image_count > 0 %} {{ card.image(item, solo=solo, last=last, caption=item.fields.name, alt=item.fields.set, sidecar=(sidecar if show_carousel else none), extra_count=(sidecar_summary.additional_image_count if show_carousel else 0)) }}
{# Render badges in configured order based on context (grid view vs detail view) #} {{ badge.render_ordered_badges(item, brickset_tags, brickset_owners, brickset_storages, brickset_purchase_locations, solo=solo, last=last, context='detail' if solo else 'grid', sidecar_summary=(sidecar_summary if sidecar_summary is defined else none)) }}
{# Sidecar enrichment + price comparison (detail view only) #} {% if solo and sidecar_summary is defined %} {% include 'set/sidecar.html' %} {% endif %} {# Show notes based on context and config #} {% if item.fields.description and item.fields.description | trim %} {% if (solo and config['SHOW_NOTES_DETAIL']) or (not solo and config['SHOW_NOTES_GRID']) %}
{% endif %} {% endif %} {% if not tiny and brickset_statuses | length %} {% endif %} {% if solo %}
{% if not delete %} {% if not config['HIDE_SET_INSTRUCTIONS'] %} {{ accordion.header('Instructions', 'instructions', 'set-details', expanded=open_instructions, quantity=item.instructions | length, icon='file-line', class='p-0') }}
{% if item.instructions | length %} {% for instruction in item.instructions %} {{ instruction.filename }} {% endfor %} {% else %} No instructions file found. {% if g.login.is_authenticated() %} Upload an instructions file {% endif %} {% endif %} {% if g.login.is_authenticated() %} Download instructions {% endif %}
{{ accordion.footer() }} {% endif %} {{ accordion.table(set_parts if set_parts is defined else item.parts(), 'Parts', 'parts-inventory', 'set-details', 'part/table.html', icon='shapes-line', hamburger_menu=g.login.is_authenticated(), filters=true)}} {% if sidecar_bags is defined and sidecar_bags %} {% include 'set/bags.html' %} {% endif %} {% for minifigure in item.minifigures() %} {{ accordion.table(minifigure.parts(), minifigure.fields.name, minifigure.fields.figure, 'set-details', 'part/table.html', quantity=minifigure.fields.quantity, icon='group-line', image=minifigure.url_for_image(), alt=minifigure.fields.figure, details=minifigure.url(), hamburger_menu=g.login.is_authenticated())}} {% endfor %} {% include 'set/management.html' %} {% endif %} {% if g.login.is_authenticated() %} {{ accordion.header('Danger zone', 'danger-zone', 'set-details', expanded=delete, danger=true, class='text-end') }} {% if delete %}
{% if error %}{% endif %} Back to the set
{% else %} Delete the set {% endif %} {{ accordion.footer() }} {% endif %}
{% endif %}
{% if solo and g.login.is_authenticated() %} {% endif %}