feat: Add photos to list of adoption notices
This commit is contained in:
parent
bf73021885
commit
96a115eb98
@ -84,6 +84,37 @@ class AdoptionNotice(models.Model):
|
|||||||
"""Returns the url to access a detailed page for the animal."""
|
"""Returns the url to access a detailed page for the animal."""
|
||||||
return reverse('adoption-notice-detail', args=[str(self.id)])
|
return reverse('adoption-notice-detail', args=[str(self.id)])
|
||||||
|
|
||||||
|
def get_photos(self):
|
||||||
|
"""
|
||||||
|
First trys to get group photos that are attached to the adoption notice if there is none it trys to fetch
|
||||||
|
them from the animals
|
||||||
|
"""
|
||||||
|
group_photos = self.photos.all()
|
||||||
|
if len(group_photos) > 0:
|
||||||
|
return group_photos
|
||||||
|
else:
|
||||||
|
photos = []
|
||||||
|
for animal in self.animals:
|
||||||
|
photos.extend(animal.photos.all())
|
||||||
|
if len(photos) > 0:
|
||||||
|
return photos
|
||||||
|
|
||||||
|
def get_photo(self):
|
||||||
|
"""
|
||||||
|
Returns the first photo it finds.
|
||||||
|
First trys to get group photos that are attached to the adoption notice if there is none it trys to fetch
|
||||||
|
them from the animals
|
||||||
|
"""
|
||||||
|
group_photos = self.photos.all()
|
||||||
|
if len(group_photos) > 0:
|
||||||
|
return group_photos[0]
|
||||||
|
else:
|
||||||
|
photos = []
|
||||||
|
for animal in self.animals:
|
||||||
|
photos.extend(animal.photos.all())
|
||||||
|
if len(photos) > 0:
|
||||||
|
return photos[0]
|
||||||
|
|
||||||
|
|
||||||
class Animal(models.Model):
|
class Animal(models.Model):
|
||||||
MALE_NEUTERED = "M_N"
|
MALE_NEUTERED = "M_N"
|
||||||
|
@ -341,4 +341,23 @@ h1 {
|
|||||||
.card-photo img {
|
.card-photo img {
|
||||||
max-width: 100%;
|
max-width: 100%;
|
||||||
border-radius: 10%;
|
border-radius: 10%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.adoption-notices {
|
||||||
|
display: flex;
|
||||||
|
flex-wrap: wrap;
|
||||||
|
list-style-type:none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.card-adoption-notice {
|
||||||
|
flex: 1 16%;
|
||||||
|
margin: 10px;
|
||||||
|
border-radius: 3%;
|
||||||
|
border: 4px grey solid;
|
||||||
|
padding: 5px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.card-adoption-notice img {
|
||||||
|
max-width: 100%;
|
||||||
|
border-radius: 10%;
|
||||||
}
|
}
|
@ -1,12 +1,35 @@
|
|||||||
{% load custom_tags %}
|
{% load custom_tags %}
|
||||||
<ul>
|
<ul class="adoption-notices">
|
||||||
{% for adoption_notice in adoption_notices %}
|
{% for adoption_notice in adoption_notices %}
|
||||||
<li>
|
<li class="card-adoption-notice">
|
||||||
<div>
|
<div>
|
||||||
<h1><a href="{{ adoption_notice.get_absolute_url }}"> {{ adoption_notice.name }}</a></h1>
|
<h1><a href="{{ adoption_notice.get_absolute_url }}"> {{ adoption_notice.name }}</a></h1>
|
||||||
<p><b>Notfellchen:</b> {{ adoption_notice.animals.all|join_link:", " | safe }}
|
<p><b>Notfellchen:</b> {{ adoption_notice.animals.all|join_link:", " | safe }}
|
||||||
</p>
|
</p>
|
||||||
<p>{{ adoption_notice.description }}</p>
|
<p>
|
||||||
|
<b>Ort</b>
|
||||||
|
{% if adoption_notice.location %}
|
||||||
|
{{ adoption_notice.location }}
|
||||||
|
{% else %}
|
||||||
|
Keine Ort angegeben
|
||||||
|
{% endif %}
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
{% if adoption_notice.description %}
|
||||||
|
{{ adoption_notice.description }}
|
||||||
|
{% else %}
|
||||||
|
Keine Beschreibung
|
||||||
|
{% endif %}
|
||||||
|
</p>
|
||||||
|
{% if adoption_notice.get_photo %}
|
||||||
|
<div class="adoption-notice-img">
|
||||||
|
<img title="{{ adoption_notice.get_photo.title }}"
|
||||||
|
src="/media/{{ adoption_notice.get_photo.image }}"
|
||||||
|
alt="{{ adoption_notice.get_photo.alt_text }}">
|
||||||
|
</div>
|
||||||
|
{% else %}
|
||||||
|
No photo
|
||||||
|
{% endif %}
|
||||||
</div>
|
</div>
|
||||||
</li>
|
</li>
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
|
Loading…
Reference in New Issue
Block a user