diff --git a/plants/templates/plants/plant_detail.html b/plants/templates/plants/plant_detail.html
index 21ceb04..0f2e3e1 100644
--- a/plants/templates/plants/plant_detail.html
+++ b/plants/templates/plants/plant_detail.html
@@ -77,6 +77,10 @@
{% include "plants/partials/photo_gallery.html" %}
+{% if plant.card_photos.exists %}
+🪧 View plant card
+{% endif %}
+
Delete plant
{% endblock %}
diff --git a/plants/tests/test_views.py b/plants/tests/test_views.py
index b074f47..1e87813 100644
--- a/plants/tests/test_views.py
+++ b/plants/tests/test_views.py
@@ -88,6 +88,17 @@ class TestPlantDetail:
assert resp.context['plant'] == plant
assert resp.context['pruning_status'] == 'no_schedule'
+ def test_card_button_shown_when_card_photos_exist(self, client):
+ plant = Plant.objects.create(name='Fern')
+ PlantCardPhoto.objects.create(plant=plant, image='plants/cards/card.jpg')
+ resp = client.get(reverse('plant_detail', args=[plant.pk]))
+ assert 'View plant card' in resp.content.decode()
+
+ def test_card_button_hidden_when_no_card_photos(self, client):
+ plant = Plant.objects.create(name='Fern')
+ resp = client.get(reverse('plant_detail', args=[plant.pk]))
+ assert 'View plant card' not in resp.content.decode()
+
@pytest.mark.django_db
class TestLogPruning:
diff --git a/plants/views/plants.py b/plants/views/plants.py
index 2e46daa..c5d0131 100644
--- a/plants/views/plants.py
+++ b/plants/views/plants.py
@@ -29,7 +29,7 @@ def plant_list(request):
def plant_detail(request, pk):
plant = get_object_or_404(
- Plant.objects.select_related('species', 'location').prefetch_related('pruning_logs', 'photos'),
+ Plant.objects.select_related('species', 'location').prefetch_related('pruning_logs', 'photos', 'card_photos'),
pk=pk,
)
today = date.today()