From 235f0a8a834babca2b578b453c06590c1ee7a9b0 Mon Sep 17 00:00:00 2001 From: Flatlogic Bot Date: Fri, 31 Oct 2025 17:00:04 +0000 Subject: [PATCH] Version3 --- core/__pycache__/urls.cpython-311.pyc | Bin 1359 -> 1613 bytes core/__pycache__/views.cpython-311.pyc | Bin 5399 -> 6909 bytes core/templates/core/property_delete.html | 13 ++++++++++++ core/templates/core/property_detail.html | 5 +++++ core/templates/core/property_update.html | 12 +++++++++++ core/urls.py | 4 +++- core/views.py | 26 +++++++++++++++++++++++ 7 files changed, 59 insertions(+), 1 deletion(-) create mode 100644 core/templates/core/property_delete.html create mode 100644 core/templates/core/property_update.html diff --git a/core/__pycache__/urls.cpython-311.pyc b/core/__pycache__/urls.cpython-311.pyc index 17981d31cbb3d08325cb83b8659a116c6bef31ea..69352b2f4e66dc706d25bd5876a2c1bd0330a48b 100644 GIT binary patch delta 506 zcmX@lb(TkcIWI340}w>KV#&PE%)sy%#DM`pDC6^ziR#WAxqMN4x%^T58?zJ`CoW)R zl}_bLk(oF_)L1r^KSgd0+cKc`)j$jZ>AX<_De}P#nhGyL0-B7sSPBwLGF~!*IJ}cr zFxDyZ7Zl|eq!yJ_#+MePB$lM!LI|X!=A@RSPF7{Q##E&=c>$9&A4G|MkpNIXM2H`v zNWTc=Og~M*$^V!F*unBef|I?O1L|dg;vnmap8?4a%#4hTHyC6tprQ{f42*?LAAky} zPDaqeP>`9EqgbBW++g8oaJj&#yQ2PrYuE*r@QW;=lkul<_%ZqPjB=BLfpdDq{*uDsu|!Bu3GR zlmE-5b4T%|NCz`$%De=XGSM$Q4x%?WIyHS5XY^P z&HLWGc{}sX+;0A}-T8^bQ7SMS_(_VK!?&DXQ9-wwGN%oD*t0BbF=hv7ZZFlcX!#S- zx^P8E&?}P)`awk7^k>T%bUfK8eS}awy=QGk4K!t z5Am+ZNr>w7j;cwJ{J!**GD(bym_g1ae^D=rGOtgbrR~lW(zZw%=(w|@hku{5Q1FpT zwY(fa@%wZusf2(A!1)H6bUuSFBp*135YlOjtG!7F681nBbJ-V}9~Bwo_k?sapLEkT z*N5I#;1F=R?Xph1val2*z4STvRa*e^TIpAAFY2S;x}$}_NLe`=phj7J)g+WHn9Lkl z_qTWHuKjdEoGy}aVHyZ-Gu$JUv64bW5W-?yoVFImcP(3N=1y^TNMQ5fpt*&m8P1T) zFdzi(=yVfnXATMY6DHkl35!ON(Kq z7yqlVxmj`!avcP=g}|4RGXVT_xga`W$kkJnBk6z`T#=j@;hS|S@q}ntI0`k`Eyw~L< zH-l@zmEfW0m|1gbuk*`p)6<{w^rt=jroBIFg~Z<#!Bw+4YGQv1`_tIJA|0yk_fDF} zI`+%W&}FmpW%f&{V`+8Fl*ULkYo2SA_FCNH9|HZ{-e&yY!mN*rn{q)=ZI24-h(JO@ z%*`6iTU-d+!g5@st!ibWh6VZi^H4Vgo~)yS2^+IUK`@|rz2qMVCS%J@%e|R(Y}(^* zCSIi9t4boDG{pER$cZ!fZ%Wvxyf4?8a@~RATF0w6rTEf{&s2O&JR5QfYiX>Rik3f7 zU&mhc{;1hGlv0P&>aZyd^Wz-SHTq83UMIg)&8#Kj2WSI03vdB|KXJX_^#Ke3fTYO~ zea%ztd6BtrPosMbvlfKV0sYuho!s-hfG*ht(UleL=nBdTfWKN;V7WFQs^P4HMi>iN LWFLld1n>55k%5D` delta 596 zcmZvXPiqrV6vgMxOp>XSOl$o&skRxCw9YFD7O_OBm4uRlqJ_50f-t5L3Z|hqQv~r7 zxC<9?B`&2a7qjWkh4=y72Ek1~fNllBcV2hmEPiv|J%{t|`?LCPIrvyAU9j}Gcjg{E z^2b4Ff49c*B)@-Y*HV|WJ9K7~lCs;PDBE^F5LM+@ZkcLwBVQ+#b@E>^DtOgvHQk~- zuInG8lB>X?w7q${DNi+<*=w&zB{MH0?QmV*PBm#I`!e;3LKvGTG|BgdgTX<{5i-OT zdE-}NQ}3VGm$YH(C%MgskGs3Ph`|yN%QruA5tfEK@AbH!qbH%n@FcBz6Di;EG>?H0PT92pY7O6{oj|V%eKnjboUOhQ8t| z^t#5#)`%hwF}P +

Delete Property

+

Are you sure you want to delete "{{ property.title }}"?

+
+ {% csrf_token %} + + Cancel +
+ +{% endblock %} diff --git a/core/templates/core/property_detail.html b/core/templates/core/property_detail.html index cd13baa..e8722a5 100644 --- a/core/templates/core/property_detail.html +++ b/core/templates/core/property_detail.html @@ -20,6 +20,11 @@
Book this property
Book Now + {% if user.is_authenticated and user == property.owner %} +
+ Edit Property + Delete Property + {% endif %}
diff --git a/core/templates/core/property_update.html b/core/templates/core/property_update.html new file mode 100644 index 0000000..ef95438 --- /dev/null +++ b/core/templates/core/property_update.html @@ -0,0 +1,12 @@ +{% extends 'base.html' %} + +{% block content %} +
+

Edit Property

+
+ {% csrf_token %} + {{ form.as_p }} + +
+
+{% endblock %} diff --git a/core/urls.py b/core/urls.py index 1a1a32e..5827b7a 100644 --- a/core/urls.py +++ b/core/urls.py @@ -1,6 +1,6 @@ from django.urls import path -from .views import index, signup_view, login_view, logout_view, property_detail, property_create, booking_create, profile, about, contact, faq +from .views import index, signup_view, login_view, logout_view, property_detail, property_create, booking_create, profile, about, contact, faq, property_update, property_delete urlpatterns = [ path("", index, name="index"), @@ -14,4 +14,6 @@ urlpatterns = [ path("about/", about, name="about"), path("contact/", contact, name="contact"), path("faq/", faq, name="faq"), + path("property//update/", property_update, name="property_update"), + path("property//delete/", property_delete, name="property_delete"), ] diff --git a/core/views.py b/core/views.py index 3313453..1c600e8 100644 --- a/core/views.py +++ b/core/views.py @@ -84,3 +84,29 @@ def contact(request): def faq(request): return render(request, 'core/faq.html') + +@login_required +def property_update(request, property_id): + property = get_object_or_404(Property, pk=property_id) + if property.owner != request.user: + return redirect('property_detail', property_id=property.id) + + if request.method == 'POST': + form = PropertyForm(request.POST, request.FILES, instance=property) + if form.is_valid(): + form.save() + return redirect('property_detail', property_id=property.id) + else: + form = PropertyForm(instance=property) + return render(request, 'core/property_update.html', {'form': form, 'property': property}) + +@login_required +def property_delete(request, property_id): + property = get_object_or_404(Property, pk=property_id) + if property.owner != request.user: + return redirect('property_detail', property_id=property.id) + + if request.method == 'POST': + property.delete() + return redirect('index') + return render(request, 'core/property_delete.html', {'property': property})