feat: Add animal cards to adoption display
This commit is contained in:
		
							
								
								
									
										18
									
								
								src/fellchensammlung/migrations/0004_alter_animal_sex.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										18
									
								
								src/fellchensammlung/migrations/0004_alter_animal_sex.py
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,18 @@
 | 
			
		||||
# Generated by Django 5.0.3 on 2024-03-20 15:39
 | 
			
		||||
 | 
			
		||||
from django.db import migrations, models
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
class Migration(migrations.Migration):
 | 
			
		||||
 | 
			
		||||
    dependencies = [
 | 
			
		||||
        ('fellchensammlung', '0003_remove_image_uploaded_by'),
 | 
			
		||||
    ]
 | 
			
		||||
 | 
			
		||||
    operations = [
 | 
			
		||||
        migrations.AlterField(
 | 
			
		||||
            model_name='animal',
 | 
			
		||||
            name='sex',
 | 
			
		||||
            field=models.CharField(choices=[('M_N', 'neutered male'), ('M', 'male'), ('F_N', 'neutered female'), ('F', 'female')], max_length=20),
 | 
			
		||||
        ),
 | 
			
		||||
    ]
 | 
			
		||||
@@ -122,9 +122,9 @@ class Animal(models.Model):
 | 
			
		||||
    FEMALE_NEUTERED = "F_N"
 | 
			
		||||
    FEMALE = "F"
 | 
			
		||||
    SEX_CHOICES = {
 | 
			
		||||
        MALE_NEUTERED: "male_neutered",
 | 
			
		||||
        MALE_NEUTERED: "neutered male",
 | 
			
		||||
        MALE: "male",
 | 
			
		||||
        FEMALE_NEUTERED: "female_neutered",
 | 
			
		||||
        FEMALE_NEUTERED: "neutered female",
 | 
			
		||||
        FEMALE: "female",
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
@@ -148,9 +148,18 @@ class Animal(models.Model):
 | 
			
		||||
        """Returns a human-readable age based on the date of birth."""
 | 
			
		||||
        return misc.age_as_hr_string(self.age)
 | 
			
		||||
 | 
			
		||||
    @property
 | 
			
		||||
    def photos_list(self):
 | 
			
		||||
        """"""
 | 
			
		||||
    def get_photo(self):
 | 
			
		||||
        """
 | 
			
		||||
        Selects a random photo from the animal
 | 
			
		||||
        """
 | 
			
		||||
        photos = self.photos.all()
 | 
			
		||||
        if len(photos) > 0:
 | 
			
		||||
            return photos[0]
 | 
			
		||||
 | 
			
		||||
    def get_photos(self):
 | 
			
		||||
        """
 | 
			
		||||
        Selects all photos from the animal
 | 
			
		||||
        """
 | 
			
		||||
        return self.photos.all()
 | 
			
		||||
 | 
			
		||||
    def get_absolute_url(self):
 | 
			
		||||
 
 | 
			
		||||
@@ -361,3 +361,23 @@ h1 {
 | 
			
		||||
    max-width: 100%;
 | 
			
		||||
    border-radius: 10%;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.animals {
 | 
			
		||||
    display: flex;
 | 
			
		||||
    flex-wrap: wrap;
 | 
			
		||||
    list-style-type:none;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.card-animal {
 | 
			
		||||
    flex: 1 16%;
 | 
			
		||||
    margin: 10px;
 | 
			
		||||
    border-radius: 3%;
 | 
			
		||||
    border: 4px grey solid;
 | 
			
		||||
    padding: 5px;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.card-animal img {
 | 
			
		||||
    max-width: 100%;
 | 
			
		||||
    border-radius: 10%;
 | 
			
		||||
    margin: 5px;
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -19,9 +19,9 @@
 | 
			
		||||
        </table>
 | 
			
		||||
    </div>
 | 
			
		||||
    <p>{{ adoption_notice.description }}</p>
 | 
			
		||||
    <div class="list-animal">
 | 
			
		||||
    <div class="animals">
 | 
			
		||||
        {% for animal in adoption_notice.animals %}
 | 
			
		||||
            {% include "fellchensammlung/detail-animal-partial.html" %}
 | 
			
		||||
            {% include "fellchensammlung/partial-animal-card.html" %}
 | 
			
		||||
        {% endfor %}
 | 
			
		||||
    </div>
 | 
			
		||||
{% endblock %}
 | 
			
		||||
 
 | 
			
		||||
@@ -0,0 +1,13 @@
 | 
			
		||||
<div class="card-animal">
 | 
			
		||||
    <div class="detail-animal-header">
 | 
			
		||||
        <h1 class="inline">{{ animal.name }}</h1>
 | 
			
		||||
        <div class="species">{{ animal.species }}</div>
 | 
			
		||||
        <div class="species">{{ animal.get_sex_display }}</div>
 | 
			
		||||
    </div>
 | 
			
		||||
    {% if animal.get_photo %}
 | 
			
		||||
        <img src="/media/{{ animal.get_photo.image }}" alt="{{ animal.get_photo.alt_text }}">
 | 
			
		||||
        </div>
 | 
			
		||||
    {% else %}
 | 
			
		||||
        No photos
 | 
			
		||||
    {% endif %}
 | 
			
		||||
</div>
 | 
			
		||||
		Reference in New Issue
	
	Block a user