From 81397e843777c6c69fe2033e00389acb9e0bc0db Mon Sep 17 00:00:00 2001 From: Ross Date: Sat, 6 Dec 2025 21:12:51 +0000 Subject: [PATCH] . --- cards/templates/cards/_card_inner_design1.html | 8 ++++++-- cards/templates/cards/_card_inner_design2.html | 7 +++++-- cards/templates/cards/_card_inner_design3.html | 7 +++++-- cards/templates/cards/_card_inner_design4.html | 3 +++ cards/templates/cards/printable.html | 9 +++++++++ cards/views.py | 6 +++++- 6 files changed, 33 insertions(+), 7 deletions(-) diff --git a/cards/templates/cards/_card_inner_design1.html b/cards/templates/cards/_card_inner_design1.html index 488d09b..eefa05b 100644 --- a/cards/templates/cards/_card_inner_design1.html +++ b/cards/templates/cards/_card_inner_design1.html @@ -1,9 +1,13 @@ {# Shared inner fragment for Design 1 - core card markup only #}
-
+
+ {# Print fallback: actual element that is hidden on screen but shown by `printable.html` via its print stylesheet. #} + {% if card.background and card.background.image %} + + {% endif %} {% if card.image %} - {{ card.name }} + {{ card.name }} {% endif %}
{{ card.name }}
diff --git a/cards/templates/cards/_card_inner_design2.html b/cards/templates/cards/_card_inner_design2.html index 782a058..033838b 100644 --- a/cards/templates/cards/_card_inner_design2.html +++ b/cards/templates/cards/_card_inner_design2.html @@ -1,8 +1,11 @@ {# Shared inner fragment for Design 2 - core card markup only #}
-
+
+ {% if card.background and card.background.image %} + + {% endif %} {% if card.image %} - {{ card.name }} + {{ card.name }} {% endif %}
{{ card.name }}
diff --git a/cards/templates/cards/_card_inner_design3.html b/cards/templates/cards/_card_inner_design3.html index 9b44b7d..ac23622 100644 --- a/cards/templates/cards/_card_inner_design3.html +++ b/cards/templates/cards/_card_inner_design3.html @@ -1,8 +1,11 @@ {# Shared inner fragment for Design 3 - core card markup only #}
-
+
+ {% if card.background and card.background.image %} + + {% endif %} {% if card.image %} - {{ card.name }} + {{ card.name }} {% endif %}
{{ card.name }}
diff --git a/cards/templates/cards/_card_inner_design4.html b/cards/templates/cards/_card_inner_design4.html index 916c040..7939de1 100644 --- a/cards/templates/cards/_card_inner_design4.html +++ b/cards/templates/cards/_card_inner_design4.html @@ -11,6 +11,9 @@
+ {% if card.background and card.background.image %} + + {% endif %}
diff --git a/cards/templates/cards/printable.html b/cards/templates/cards/printable.html index bb27b54..9a33ef8 100644 --- a/cards/templates/cards/printable.html +++ b/cards/templates/cards/printable.html @@ -23,6 +23,15 @@ /* Ensure hero images scale inside print cards */ .print-card .hero-image{height:auto; min-height:40mm;} .print-card img.card-hero-img{max-width:100%; height:auto; object-fit:contain} + /* Print fallback: show actual fallbacks (added into fragments) during printing + because some browsers do not print CSS background-images by default. */ + .print-card .print-hero-bg{display:none} + @media print{ + .print-card .hero-image{background-image:none !important} + .print-card .print-hero-bg{display:block; position:absolute; inset:0; width:100%; height:100%; object-fit:cover; z-index:0} + .print-card .toptrump-card{position:relative; z-index:1} + .print-card img.card-hero-img{position:relative; z-index:2} + } /* Small caption */ .caption{font-size:12px; color:#333; margin-top:6px} @media print{ diff --git a/cards/views.py b/cards/views.py index 1876ff8..ab00de1 100644 --- a/cards/views.py +++ b/cards/views.py @@ -451,7 +451,11 @@ def print_preview(request): for i in range(0, len(ordered), per_page): pages.append(ordered[i:i+per_page]) - return render(request, 'cards/printable.html', {'pages': pages, 'design': design, 'scale': scale}) + # Include the active background (if any) so fragments that fall back to + # a global `background` variable can render correctly in the printable view. + background = BackgroundImage.get_active() if BackgroundImage.objects.exists() else None + + return render(request, 'cards/printable.html', {'pages': pages, 'design': design, 'scale': scale, 'background': background}) def _parse_pasted_input(text):