@login_required()
def comment_modal_delete_form_view(
request: WSGIRequest,
comment_pk: int,
obj_pk: int,
app_label: str,
model_name: str
) -> HttpResponseRedirect | TemplateResponse:
has_app_permission_or_404(request.user, app_label, model_name, 'change')
comment = get_object_or_404(models.Comment, pk=comment_pk)
obj = model_object_from_app_label(app_label, model_name, obj_pk)
return_url = safe_redirect_url(request)
if comment.user != request.user:
messages.warning(request, 'You can only delete your comments.')
return HttpResponseRedirect(return_url)
form_action = reverse('comment:delete_form', kwargs={
'comment_pk': comment_pk,
'obj_pk': obj_pk,
'app_label': app_label,
'model_name': model_name
})
def add_activity() -> None:
obj.add_activity(
user=request.user,
verb='deleted',
device=request.device,
information=f'{request.user.get_full_name()} deleted a comment on "{obj}".'
)
return dispatch_modal_delete_form_content(
request,
obj=comment,
form_action=form_action,
activity_func=add_activity,
return_url=return_url,
)