feat: Show short description for ANs with one picture

This commit is contained in:
2025-09-07 20:36:41 +02:00
parent f784ab0c78
commit 3da6e90f73
3 changed files with 36 additions and 18 deletions

View File

@@ -6,6 +6,7 @@ from django.utils import timezone
from django.contrib.auth.models import Group
from django.contrib.auth.models import AbstractUser
from django.core.exceptions import ValidationError
from docutils.nodes import description
from .tools import misc, geo
from notfellchen.settings import MEDIA_URL, base_url
@@ -444,12 +445,22 @@ class AdoptionNotice(models.Model):
else:
return self.location.latitude, self.location.longitude
@property
def description_short(self):
def _get_short_description(self, length: int) -> str:
if self.description is None:
return ""
if len(self.description) > 200:
return self.description[:200] + f" ... [weiterlesen]({self.get_absolute_url()})"
elif len(self.description) > length:
return self.description[:length] + f" ... [weiterlesen]({self.get_absolute_url()})"
else:
return self.description
@property
def description_short(self):
return self._get_short_description(200)
@property
def description_100_short(self):
return self._get_short_description(90)
def get_absolute_url(self):
"""Returns the url to access a detailed page for the adoption notice."""

View File

@@ -234,7 +234,7 @@ IMAGES
.thumbnail img {
width: 100%;
height: 50px;
height: 70px;
object-fit: cover; /* Crops the images */
border-radius: 4px;
}

View File

@@ -54,20 +54,27 @@
</a>
</div>
{% endwith %}
<div class="thumbnail-row minimal">
{% for photo in adoption_notice.get_photos|slice:"1:4" %}
<div class="thumbnail">
<a href="{{ MEDIA_URL }}{{ photo.image }}"
data-pswp-width="{{ photo.image.width }}"
data-pswp-height="{{ photo.image.height }}"
target="_blank">
<img src="{{ MEDIA_URL }}{{ photo.image }}"
alt="{{ photo.alt_text }}">
</a>
{% if adoption_notice.get_photos|length > 1 %}
<div class="thumbnail-row minimal">
{% for photo in adoption_notice.get_photos|slice:"1:4" %}
<div class="thumbnail">
<a href="{{ MEDIA_URL }}{{ photo.image }}"
data-pswp-width="{{ photo.image.width }}"
data-pswp-height="{{ photo.image.height }}"
target="_blank">
<img src="{{ MEDIA_URL }}{{ photo.image }}"
alt="{{ photo.alt_text }}">
</a>
</div>
{% endfor %}
</div>
{% else %}
{% if adoption_notice.description_100_short %}
<div class="content">
{{ adoption_notice.description_100_short | render_markdown }}
</div>
{% endfor %}
</div>
{% endif %}
{% endif %}
</div>
{% else %}
{% if adoption_notice.description_short %}