Auto commit: 2026-03-13T12:26:02.181Z

This commit is contained in:
Flatlogic Bot 2026-03-13 12:26:02 +00:00
parent ba1bd529a8
commit ef8a8d4c27
6 changed files with 37 additions and 2 deletions

View File

@ -0,0 +1,22 @@
{% extends 'base.html' %}
{% block content %}
<div class="container mt-5">
<div class="row justify-content-center">
<div class="col-md-6">
<div class="card shadow-sm border-danger">
<div class="card-body text-center">
<h2 class="card-title text-danger mb-4">Delete Project?</h2>
<p class="lead mb-4">Are you sure you want to delete the project <strong>{{ project.title }}</strong>? This action cannot be undone.</p>
<form method="post">
{% csrf_token %}
<div class="d-flex justify-content-center gap-3">
<a href="{% url 'project_list' %}" class="btn btn-secondary px-4">Cancel</a>
<button type="submit" class="btn btn-danger px-4">Yes, Delete</button>
</div>
</form>
</div>
</div>
</div>
</div>
</div>
{% endblock %}

View File

@ -10,7 +10,10 @@
<div class="card-body">
<h5 class="card-title">{{ project.title }}</h5>
<p class="card-text">{{ project.industry }}</p>
<div class="d-flex justify-content-between align-items-center">
<a href="{% url 'project_detail' project.pk %}" class="btn btn-secondary">Open</a>
<a href="{% url 'delete_project' project.pk %}" class="btn btn-outline-danger btn-sm">Delete</a>
</div>
</div>
</div>
</div>

View File

@ -1,5 +1,5 @@
from django.urls import path
from .views import home, project_list, project_detail, create_project, signup, regenerate_mindmap, edit_node
from .views import home, project_list, project_detail, create_project, signup, regenerate_mindmap, edit_node, delete_project
from .ai_views import ai_chat
urlpatterns = [
@ -10,6 +10,7 @@ urlpatterns = [
path("projects/<int:pk>/regenerate/", regenerate_mindmap, name="regenerate_mindmap"),
path("projects/<int:pk>/ai/", ai_chat, name="ai_chat"),
path('projects/<int:pk>/node/<int:node_id>/edit/', edit_node, name='edit_node'),
path('projects/<int:pk>/delete/', delete_project, name='delete_project'),
path("signup/", signup, name="signup"),
]

View File

@ -86,3 +86,12 @@ def edit_node(request, pk, node_id):
}})
except Exception as e:
return JsonResponse({'status': 'error', 'message': str(e)}, status=400)
@login_required
def delete_project(request, pk):
project = get_object_or_404(Project, pk=pk, user=request.user)
if request.method == 'POST':
project.delete()
return redirect('project_list')
return render(request, 'core/delete_project_confirm.html', {'project': project})