Add delete photo view
This commit is contained in:
parent
f17adbb2ed
commit
f9c33e2cad
3 changed files with 39 additions and 2 deletions
24
photologue/templates/photologue/photo_confirm_delete.html
Normal file
24
photologue/templates/photologue/photo_confirm_delete.html
Normal file
|
|
@ -0,0 +1,24 @@
|
||||||
|
{% extends "base.html" %}
|
||||||
|
{% comment %}
|
||||||
|
SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
|
{% endcomment %}
|
||||||
|
{% load i18n %}
|
||||||
|
|
||||||
|
{% block title %}{% trans "Delete confirmation" %}{% endblock %}
|
||||||
|
|
||||||
|
{% block content %}
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-lg-12">
|
||||||
|
<h1>{% trans "Delete confirmation" %}</h1>
|
||||||
|
<form method="post">{% csrf_token %}
|
||||||
|
<p>
|
||||||
|
{% blocktranslate trimmed %}
|
||||||
|
Are you sure you want to delete <code>{{ object }}</code>?
|
||||||
|
{% endblocktranslate %}
|
||||||
|
</p>
|
||||||
|
{{ form }}
|
||||||
|
<input type="submit" class="btn btn-danger" value="{% trans "Confirm" %}">
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
{% endblock %}
|
||||||
|
|
@ -2,7 +2,7 @@ from django.urls import path, re_path
|
||||||
|
|
||||||
from .views import (GalleryDetailView, GalleryArchiveIndexView,
|
from .views import (GalleryDetailView, GalleryArchiveIndexView,
|
||||||
GalleryDownload, GalleryUpload, GalleryYearArchiveView,
|
GalleryDownload, GalleryUpload, GalleryYearArchiveView,
|
||||||
PhotoDetailView, TagDetail)
|
PhotoDetailView, PhotoDeleteView, TagDetail)
|
||||||
|
|
||||||
app_name = 'photologue'
|
app_name = 'photologue'
|
||||||
urlpatterns = [
|
urlpatterns = [
|
||||||
|
|
@ -13,5 +13,6 @@ urlpatterns = [
|
||||||
path('gallery/<slug:slug>/<int:owner>/', GalleryDetailView.as_view(), name='pl-gallery-owner'),
|
path('gallery/<slug:slug>/<int:owner>/', GalleryDetailView.as_view(), name='pl-gallery-owner'),
|
||||||
path('gallery/<slug:slug>/download/', GalleryDownload.as_view(), name='pl-gallery-download'),
|
path('gallery/<slug:slug>/download/', GalleryDownload.as_view(), name='pl-gallery-download'),
|
||||||
path('photo/<int:pk>/', PhotoDetailView.as_view(), name='pl-photo'),
|
path('photo/<int:pk>/', PhotoDetailView.as_view(), name='pl-photo'),
|
||||||
|
path('photo/<int:pk>/delete/', PhotoDeleteView.as_view(), name='pl-photo-delete'),
|
||||||
path('upload/', GalleryUpload.as_view(), name='pl-gallery-upload'),
|
path('upload/', GalleryUpload.as_view(), name='pl-gallery-upload'),
|
||||||
]
|
]
|
||||||
|
|
|
||||||
|
|
@ -16,7 +16,7 @@ from django.urls import reverse_lazy
|
||||||
from django.utils.text import slugify
|
from django.utils.text import slugify
|
||||||
from django.views.generic.dates import ArchiveIndexView, YearArchiveView
|
from django.views.generic.dates import ArchiveIndexView, YearArchiveView
|
||||||
from django.views.generic.detail import DetailView
|
from django.views.generic.detail import DetailView
|
||||||
from django.views.generic.edit import FormView
|
from django.views.generic.edit import FormView, DeleteView
|
||||||
from PIL import Image
|
from PIL import Image
|
||||||
|
|
||||||
from .forms import UploadForm
|
from .forms import UploadForm
|
||||||
|
|
@ -56,6 +56,18 @@ class PhotoDetailView(LoginRequiredMixin, DetailView):
|
||||||
return qs.filter(is_public=True)
|
return qs.filter(is_public=True)
|
||||||
|
|
||||||
|
|
||||||
|
class PhotoDeleteView(PermissionRequiredMixin, DeleteView):
|
||||||
|
model = Photo
|
||||||
|
permission_required = 'photologue.delete_photo'
|
||||||
|
|
||||||
|
def get_success_url(self):
|
||||||
|
galleries = self.object.galleries.all()
|
||||||
|
if not galleries:
|
||||||
|
return reverse_lazy('photologue:pl-gallery-archive')
|
||||||
|
slug = galleries[0].slug
|
||||||
|
return reverse_lazy('photologue:pl-gallery', args=[slug])
|
||||||
|
|
||||||
|
|
||||||
class TagDetail(LoginRequiredMixin, DetailView):
|
class TagDetail(LoginRequiredMixin, DetailView):
|
||||||
model = Tag
|
model = Tag
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue