ensure image from gallery is displayed

This commit is contained in:
Tobias Brunner 2025-07-07 17:30:10 +02:00
parent 444bfa339a
commit b3c1b00ae8
No known key found for this signature in database
13 changed files with 29 additions and 23 deletions

View file

@ -109,6 +109,7 @@
<div class="card__content d-flex flex-column flex-grow-1">
<div class="card__header">
<div class="d-flex align-items-start" style="height: 100px; margin-bottom: 1rem;">
{% if provider.get_logo %}
<div class="me-3 d-flex align-items-center" style="height: 100%;">
<a href="{{ provider.get_absolute_url }}" class="clickable-link">
<img src="{{ provider.get_logo.url }}"
@ -116,6 +117,7 @@
style="max-height: 100px; max-width: 250px; object-fit: contain;">
</a>
</div>
{% endif %}
</div>
<h3 class="card__title">
<a href="{{ provider.get_absolute_url }}" class="text-decoration-none clickable-link">{{ provider.name }}</a>
@ -163,6 +165,7 @@
<div class="card__content d-flex flex-column flex-grow-1">
<div class="card__header">
<div class="d-flex align-items-start" style="height: 100px; margin-bottom: 1rem;">
{% if partner.get_logo %}
<div class="me-3 d-flex align-items-center" style="height: 100%;">
<a href="{{ partner.get_absolute_url }}" class="clickable-link">
<img src="{{ partner.get_logo.url }}"
@ -170,6 +173,7 @@
style="max-height: 100px; max-width: 250px; object-fit: contain;">
</a>
</div>
{% endif %}
</div>
<h3 class="card__title">
<a href="{{ partner.get_absolute_url }}" class="text-decoration-none clickable-link">{{ partner.name }}</a>

View file

@ -41,7 +41,7 @@
<div class="card h-100">
<div class="card-body">
<h5 class="card-title">Service</h5>
{% if article.related_service.logo %}
{% if article.related_service.get_logo %}
<div class="mb-3 d-flex" style="height: 60px;">
<img src="{{ article.related_service.get_logo.url }}" alt="{{ article.related_service.name }} logo"
class="img-fluid" style="max-height: 50px; object-fit: contain;">
@ -58,7 +58,7 @@
<div class="card h-100">
<div class="card-body">
<h5 class="card-title">Partner</h5>
{% if article.related_consulting_partner.logo %}
{% if article.related_consulting_partner.get_logo %}
<div class="mb-3 d-flex" style="height: 60px;">
<img src="{{ article.related_consulting_partner.get_logo.url }}" alt="{{ article.related_consulting_partner.name }} logo"
class="img-fluid" style="max-height: 50px; object-fit: contain;">
@ -75,7 +75,7 @@
<div class="card h-100">
<div class="card-body">
<h5 class="card-title">Provider</h5>
{% if article.related_cloud_provider.logo %}
{% if article.related_cloud_provider.get_logo %}
<div class="mb-3 d-flex" style="height: 60px;">
<img src="{{ article.related_cloud_provider.get_logo.url }}" alt="{{ article.related_cloud_provider.name }} logo"
class="img-fluid" style="max-height: 50px; object-fit: contain;">
@ -99,7 +99,7 @@
{% for related_article in related_articles %}
<div class="col-12 col-md-4 mb-4">
<div class="card h-100 clickable-card" onclick="cardClicked(event, '{{ related_article.get_absolute_url }}')">
{% if related_article.image %}
{% if related_article.get_image %}
<img src="{{ related_article.get_image.url }}" class="card-img-top mb-2" alt="{{ related_article.title }}" style="height: 200px; object-fit: cover;">
{% endif %}
<div class="card-body d-flex flex-column">

View file

@ -145,9 +145,9 @@
<div class="col-12 col-md-6 col-lg-4 mb-30">
<div class="card {% if article.is_featured %}card-featured{% endif %} h-100 d-flex flex-column clickable-card"
onclick="cardClicked(event, '{{ article.get_absolute_url }}')">
{% if article.image or article.is_featured %}
{% if article.get_image or article.is_featured %}
<div class="d-flex justify-content-between mb-3">
{% if article.image %}
{% if article.get_image %}
<div class="card__image flex-shrink-0">
<img src="{{ article.get_image.url }}" alt="{{ article.title }}" class="img-fluid">
</div>

View file

@ -77,7 +77,7 @@
<div class="w-lg-34 bg-purple-50 rounded-16 p-24 d-flex flex-column">
<div class="d-flex align-items-center mb-24">
<div class="card__image mb-0">
{% if selected_offering.service.logo %}
{% if selected_offering.service.get_logo %}
<img class="img-fluid" src="{{ selected_offering.service.get_logo.url }}" alt="Service Logo">
{% endif %}
</div>

View file

@ -32,7 +32,7 @@
<div class="pr-lg-6">
<!-- Logo -->
<div class="mb-40 border rounded-4 p-4 d-flex align-items-center justify-content-center" style="min-height: 160px;">
{% if offering.service.logo %}
{% if offering.service.get_logo %}
<a href="{{ offering.service.get_absolute_url }}">
<img class="img-fluid w-100 w-lg-auto" src="{{ offering.service.get_logo.url }}"
alt="{{ offering.service.name }} logo" style="max-height: 120px; object-fit: contain;">

View file

@ -150,7 +150,7 @@
<div class="card__header">
<div class="d-flex align-items-start mb-3">
<div class="me-3">
{% if offering.service.logo %}
{% if offering.service.get_logo %}
<img src="{{ offering.service.get_logo.url }}"
alt="{{ offering.service.name }}"
style="max-height: 50px; max-width: 100px; object-fit: contain;">
@ -163,7 +163,7 @@
</a>
</h3>
<div class="d-flex align-items-center">
{% if offering.cloud_provider.logo %}
{% if offering.cloud_provider.get_logo %}
<a href="{{ offering.get_absolute_url }}" class="me-2">
<img src="{{ offering.cloud_provider.get_logo.url }}"
alt="{{ offering.cloud_provider.name }}"

View file

@ -23,7 +23,7 @@
<div class="pr-lg-6">
<!-- Logo -->
<div class="mb-40 border rounded-4 p-4 d-flex align-items-center justify-content-center" style="min-height: 160px;">
{% if partner.logo %}
{% if partner.get_logo %}
<img class="img-fluid w-100 w-lg-auto" src="{{ partner.get_logo.url }}" alt="{{ partner.name }} logo" style="max-height: 120px; object-fit: contain;">
{% endif %}
</div>
@ -173,9 +173,9 @@
{% for service in services %}
<div class="col-12 col-md-6 mb-30">
<div class="card h-100 d-flex flex-column">
{% if service.logo %}
{% if service.get_logo %}
<div class="d-flex justify-content-between">
{% if service.logo %}
{% if service.get_logo %}
<div class="card__image flex-shrink-0">
<a href="{{ service.get_absolute_url }}">
<img src="{{ service.get_logo.url }}" alt="{{ service.name }} logo" class="img-fluid">

View file

@ -113,6 +113,7 @@
<div class="card__content d-flex flex-column flex-grow-1">
<div class="card__header">
<div class="d-flex align-items-start" style="height: 100px; margin-bottom: 1rem;">
{% if partner.get_logo %}
<div class="me-3">
<a href="{{ partner.get_absolute_url }}" class="clickable-link">
<img src="{{ partner.get_logo.url }}"
@ -120,6 +121,7 @@
style="max-height: 100px; max-width: 250px; object-fit: contain;">
</a>
</div>
{% endif %}
</div>
<h3 class="card__title">
<a href="{{ partner.get_absolute_url }}" class="text-decoration-none clickable-link">{{ partner.name }}</a>

View file

@ -23,7 +23,7 @@
<div class="pr-lg-6">
<!-- Logo -->
<div class="mb-40 border rounded-4 p-4 d-flex align-items-center justify-content-center" style="min-height: 160px;">
{% if provider.logo %}
{% if provider.get_logo %}
<img class="img-fluid w-100 w-lg-auto" src="{{ provider.get_logo.url }}" alt="{{ provider.name }} logo" style="max-height: 120px; object-fit: contain;">
{% endif %}
</div>
@ -173,9 +173,9 @@
{% for offering in ordered_offerings %}
<div class="col-12 col-md-6 mb-30">
<div class="card h-100 d-flex flex-column">
{% if offering.service.logo or offering.service.is_featured %}
{% if offering.service.get_logo or offering.service.is_featured %}
<div class="d-flex justify-content-between">
{% if offering.service.logo %}
{% if offering.service.get_logo %}
<div class="card__image flex-shrink-0">
<a href="{{ offering.get_absolute_url }}">
<img src="{{ offering.service.get_logo.url }}" alt="{{ offering.service.name }} logo" class="img-fluid">

View file

@ -98,7 +98,7 @@
<div class="d-flex align-items-start" style="height: 100px; margin-bottom: 1rem;">
<div class="me-3 d-flex align-items-center" style="height: 100%;">
<a href="{{ provider.get_absolute_url }}" class="clickable-link">
{% if provider.logo %}
{% if provider.get_logo %}
<img src="{{ provider.get_logo.url }}"
alt="{{ provider.name }}"
style="max-height: 100px; max-width: 250px; object-fit: contain;">

View file

@ -22,7 +22,7 @@
<div class="pr-lg-6">
<!-- Logo -->
<div class="mb-40 border rounded-4 p-4 d-flex align-items-center justify-content-center" style="min-height: 160px;">
{% if service.logo %}
{% if service.get_logo %}
<img class="img-fluid w-100 w-lg-auto" src="{{ service.get_logo.url }}" alt="{{ service.name }} logo" style="max-height: 120px; object-fit: contain;">
{% endif %}
</div>
@ -182,7 +182,7 @@
class="text-decoration-none" style="display: block;">
<div class="card h-100 clickable-card">
<div class="card-body text-center">
{% if offering.cloud_provider.logo %}
{% if offering.cloud_provider.get_logo %}
<div class="mb-3 d-flex align-items-center justify-content-center" style="height: 80px;">
<img src="{{ offering.cloud_provider.get_logo.url }}" alt="{{ offering.cloud_provider.name }} logo"
class="img-fluid" style="max-height: 60px; object-fit: contain;">

View file

@ -152,9 +152,9 @@
<div class="col-12 col-md-6 col-lg-4 mb-30">
<div class="card {% if service.is_featured %}card-featured{% endif %} h-100 d-flex flex-column clickable-card"
onclick="cardClicked(event, '{% if request.GET.cloud_provider %}{% for offering in service.offerings.all %}{% if offering.cloud_provider.id|stringformat:"i" == request.GET.cloud_provider %}{% url "services:offering_detail" offering.cloud_provider.slug service.slug %}{% endif %}{% endfor %}{% else %}{{ service.get_absolute_url }}{% endif %}')">
{% if service.logo or service.is_featured or service.is_coming_soon %}
{% if service.get_logo or service.is_featured or service.is_coming_soon %}
<div class="d-flex justify-content-between mb-3">
{% if service.logo %}
{% if service.get_logo %}
<div class="card__image flex-shrink-0">
<img src="{{ service.get_logo.url }}" alt="{{ service.name }} logo" class="img-fluid">
</div>

View file

@ -64,8 +64,8 @@ def social_meta_tags(context):
title = f"Servala - {article.title}"
description = article.excerpt
# Use article image if available, otherwise default
if article.image:
image_url = request.build_absolute_uri(article.image.url)
if article.get_image:
image_url = request.build_absolute_uri(article.get_image.url)
# Determine og:type based on view
og_type = "website" # default