{# Reusable marketplace listing card. Usage: {% from "components/listing_card.html" import listing_card %} {{ listing_card(listing, actions=['view', 'edit', 'delete'], show_status=true, meta=['condition', 'date']) }} Parameters: listing - a Listing model instance (required). actions - ordered list of action keys to render in the footer. Supported: 'view', 'edit', 'delete', 'quickview', 'remove_saved'. 'edit'/'delete'/'remove_saved' are rendered "soft-disabled" (visible, Coming-Soon toast) until their features ship. show_status - show the listing status badge (top-right). Default: false. meta - ordered list of meta rows under the price. Supported: 'condition', 'location', 'date'. Default: ['condition', 'date']. The component never fabricates data: it only renders fields present on the listing. Keep page-specific wiring (modals, etc.) on the page, not here. #} {% from "components/premium_badge.html" import premium_badge_pill, featured_badge %} {% from "components/badges.html" import mk_badge %} {% from "components/reputation.html" import rep_inline %} {% from "components/trust_badges.html" import trust_badge_top %} {% macro listing_card(listing, actions=['view'], show_status=false, meta=['condition', 'date'], saved_at=none, favorite=false, premium_ids=none, section_badge=none, reputations=none, badges=none) %} {% set cover = listing.images[0] if listing.images else None %} {% set detail_url = url_for('marketplace.listing_detail', public_id=listing.public_id) %}