From ef8a8d4c27cfa3a8080267e105aa9945845ecaaa Mon Sep 17 00:00:00 2001 From: Flatlogic Bot Date: Fri, 13 Mar 2026 12:26:02 +0000 Subject: [PATCH] Auto commit: 2026-03-13T12:26:02.181Z --- core/__pycache__/urls.cpython-311.pyc | Bin 1096 -> 1207 bytes core/__pycache__/views.cpython-311.pyc | Bin 5760 -> 6269 bytes .../core/delete_project_confirm.html | 22 ++++++++++++++++++ core/templates/core/project_list.html | 5 +++- core/urls.py | 3 ++- core/views.py | 9 +++++++ 6 files changed, 37 insertions(+), 2 deletions(-) create mode 100644 core/templates/core/delete_project_confirm.html diff --git a/core/__pycache__/urls.cpython-311.pyc b/core/__pycache__/urls.cpython-311.pyc index f47932c2db7028e8a2a584348aca64b11ce2b704..28cdac2e0ba306f7ff7f84ee2701dc4faf1110fd 100644 GIT binary patch delta 380 zcmX@Xv7J+WIWI340}x34-kd4I%)sy%#DM``DC4uqM0I0F9Vvj8i*kvoimCzMIx9%Q}QK9K$Gzn zOF?2u#!E&JhhuUWW3<36zLeCQ)RNTrf};Ga)Z~)M8yP1v@=kVTGBuEd3Ki?yWagDv z6=d7#L)7XQ@c<2|VlU22&nqp^FX9C9{51I{cQM%rf~9V8Bxc5!Wu}%F7x7NM#1z0K z4pafMwAf&>4zr9^%>@QB(c~KD6;?M`I2v3oaH=fGyI}2ofyL({i_aAnp9dh(4#^2_ d3nVVEXkBE{y27IML6n=Hseu~=i$sC;0|3b&YxDpB delta 285 zcmdnad4fZIIWI340}w>N*qphIiGkrUhyw#WP{wDmiR#8Yj0`DEDJ(f$x!h6Q6SKOR zxl;ruP7s~U%P3>Wo+7%2eHk+Y!)hRgfOL*1o)ocQ22JsoAOTIrTPy{MB^fUnK^*qU zC5+LN?=wzjc8n{8Q INCapH03yUo&;S4c diff --git a/core/__pycache__/views.cpython-311.pyc b/core/__pycache__/views.cpython-311.pyc index 686e6cdf54cc59205e4b06d552a31ac9a8103ae3..c28f7f2ae75ad6b81499ccf79f360d001c361fa8 100644 GIT binary patch delta 601 zcmY+B!E4iS6vuzRG->0qByAVkIOix+3{jl2)yf8~=y41$tsdNAgeK08wJ9%|h!pj( zlNT$$%fO4LiR`4gdJqpHo>J&R0z2&=*w{@`_I@1`eUQ)Z@!t3QUh>O}tG};n?^Jb+ zV7&PmwH~XlHIq(%urhSYlid6k*}={(Z;#@^l&jT=JrR|uI!@oSJL()QN1N*R)WQM^ zU=d*pNjeCfa5G56j_-Pj<^aOUO6LH{@T+x+!LW}O8d6y3u1%77wF3eyKI!6}qwAA#$yXJZuUg)iM!C&{9 z;cCUzL{dibEijJ=cvdQvponLp{XZF&vADuj zE9{wiW$~5vQX9zTP&Q-P+|!HO+CaC4x)saTo|5ZZ@ww{fGv98;x9S6>F;p6{*nqQW zx6iX56JJbROyD*mQQUQ>v*zO)hh4nukH(Br;mswEWtJF|WA`z|A4G!f=#K$(wnBvL XfgsU)^nh?4rm(Oz{cq`{G1_$gxqKoslhtFPK47XtNh1FAt;UMoCEl z(3BoAB`s5sq$iMA$xtK-Vv7TbUmP~M`6;D2sdh!dKrYZJ48>KO?}`;M3NT181~7gA HlVJ4#`UyE0 diff --git a/core/templates/core/delete_project_confirm.html b/core/templates/core/delete_project_confirm.html new file mode 100644 index 0000000..768e387 --- /dev/null +++ b/core/templates/core/delete_project_confirm.html @@ -0,0 +1,22 @@ +{% extends 'base.html' %} +{% block content %} +
+
+
+
+
+

Delete Project?

+

Are you sure you want to delete the project {{ project.title }}? This action cannot be undone.

+
+ {% csrf_token %} +
+ Cancel + +
+
+
+
+
+
+
+{% endblock %} diff --git a/core/templates/core/project_list.html b/core/templates/core/project_list.html index a2652d4..4914237 100644 --- a/core/templates/core/project_list.html +++ b/core/templates/core/project_list.html @@ -10,7 +10,10 @@
{{ project.title }}

{{ project.industry }}

- Open +
+ Open + Delete +
diff --git a/core/urls.py b/core/urls.py index 3379124..176d877 100644 --- a/core/urls.py +++ b/core/urls.py @@ -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//regenerate/", regenerate_mindmap, name="regenerate_mindmap"), path("projects//ai/", ai_chat, name="ai_chat"), path('projects//node//edit/', edit_node, name='edit_node'), + path('projects//delete/', delete_project, name='delete_project'), path("signup/", signup, name="signup"), ] \ No newline at end of file diff --git a/core/views.py b/core/views.py index 5ae6070..215dce9 100644 --- a/core/views.py +++ b/core/views.py @@ -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})