feat: add delete_card_photo view and URL
This commit is contained in:
parent
cb5dd3dc84
commit
9edad5a715
3 changed files with 31 additions and 0 deletions
|
|
@ -266,6 +266,26 @@ class TestUploadCardPhoto:
|
||||||
assert resp.templates[0].name == 'plants/partials/card_gallery.html'
|
assert resp.templates[0].name == 'plants/partials/card_gallery.html'
|
||||||
|
|
||||||
|
|
||||||
|
@pytest.mark.django_db
|
||||||
|
class TestDeleteCardPhoto:
|
||||||
|
def test_delete_removes_record(self, client):
|
||||||
|
plant = Plant.objects.create(name='Fern')
|
||||||
|
photo = PlantCardPhoto.objects.create(plant=plant, image='plants/cards/card.jpg')
|
||||||
|
resp = client.post(reverse('delete_card_photo', args=[photo.pk]))
|
||||||
|
assert resp.status_code == 200
|
||||||
|
assert not PlantCardPhoto.objects.filter(pk=photo.pk).exists()
|
||||||
|
|
||||||
|
def test_returns_card_gallery_partial(self, client):
|
||||||
|
plant = Plant.objects.create(name='Fern')
|
||||||
|
photo = PlantCardPhoto.objects.create(plant=plant, image='plants/cards/card.jpg')
|
||||||
|
resp = client.post(reverse('delete_card_photo', args=[photo.pk]))
|
||||||
|
assert resp.templates[0].name == 'plants/partials/card_gallery.html'
|
||||||
|
|
||||||
|
def test_404_for_missing_photo(self, client):
|
||||||
|
resp = client.post(reverse('delete_card_photo', args=[9999]))
|
||||||
|
assert resp.status_code == 404
|
||||||
|
|
||||||
|
|
||||||
@pytest.mark.django_db
|
@pytest.mark.django_db
|
||||||
class TestPruningCalendar:
|
class TestPruningCalendar:
|
||||||
def test_returns_200(self, client):
|
def test_returns_200(self, client):
|
||||||
|
|
|
||||||
|
|
@ -12,6 +12,7 @@ urlpatterns = [
|
||||||
path('plants/<int:pk>/log-pruning/', plants.log_pruning, name='log_pruning'),
|
path('plants/<int:pk>/log-pruning/', plants.log_pruning, name='log_pruning'),
|
||||||
path('plants/<int:pk>/upload-photo/', plants.upload_photo, name='upload_photo'),
|
path('plants/<int:pk>/upload-photo/', plants.upload_photo, name='upload_photo'),
|
||||||
path('plants/<int:pk>/card-photos/upload/', plants.upload_card_photo, name='upload_card_photo'),
|
path('plants/<int:pk>/card-photos/upload/', plants.upload_card_photo, name='upload_card_photo'),
|
||||||
|
path('card-photos/<int:card_photo_pk>/delete/', plants.delete_card_photo, name='delete_card_photo'),
|
||||||
path('photos/<int:photo_pk>/set-thumbnail/', plants.set_thumbnail, name='set_thumbnail'),
|
path('photos/<int:photo_pk>/set-thumbnail/', plants.set_thumbnail, name='set_thumbnail'),
|
||||||
path('photos/<int:photo_pk>/delete/', plants.delete_photo, name='delete_photo'),
|
path('photos/<int:photo_pk>/delete/', plants.delete_photo, name='delete_photo'),
|
||||||
path('pruning/', pruning.pruning_calendar, name='pruning_calendar'),
|
path('pruning/', pruning.pruning_calendar, name='pruning_calendar'),
|
||||||
|
|
|
||||||
|
|
@ -131,6 +131,16 @@ def upload_card_photo(request, pk):
|
||||||
return render(request, 'plants/partials/card_gallery.html', {'plant': plant})
|
return render(request, 'plants/partials/card_gallery.html', {'plant': plant})
|
||||||
|
|
||||||
|
|
||||||
|
@require_POST
|
||||||
|
def delete_card_photo(request, card_photo_pk):
|
||||||
|
card_photo = get_object_or_404(PlantCardPhoto, pk=card_photo_pk)
|
||||||
|
plant_pk = card_photo.plant_id
|
||||||
|
card_photo.image.delete(save=False)
|
||||||
|
card_photo.delete()
|
||||||
|
plant = Plant.objects.prefetch_related('card_photos').get(pk=plant_pk)
|
||||||
|
return render(request, 'plants/partials/card_gallery.html', {'plant': plant})
|
||||||
|
|
||||||
|
|
||||||
@require_POST
|
@require_POST
|
||||||
def upload_photo(request, pk):
|
def upload_photo(request, pk):
|
||||||
plant = get_object_or_404(Plant.objects.prefetch_related('photos'), pk=pk)
|
plant = get_object_or_404(Plant.objects.prefetch_related('photos'), pk=pk)
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue