Skip to content

Commit 3b02d9a

Browse files
committed
Feat: users can update property images
1 parent 03ea7b7 commit 3b02d9a

File tree

1 file changed

+74
-0
lines changed

1 file changed

+74
-0
lines changed

realtoric/core/views.py

Lines changed: 74 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -421,6 +421,20 @@ class ApartmentUpdateView(LoginRequiredMixin, SuccessMessageMixin, UpdateView):
421421
template_name = "pages/post_property.html"
422422
success_message = _("Apartment updated successfully")
423423

424+
def form_valid(self, form):
425+
form.instance.user = self.request.user
426+
apartment_data = form.save()
427+
428+
# Delete existing images of the apartment instance
429+
for old_image in form.instance.apartment_images.all():
430+
old_image.delete()
431+
432+
# Create new apartment images for the instance
433+
images = self.request.FILES.getlist("images")
434+
for image in images:
435+
form.instance.apartment_images.create(apartment=apartment_data, image=image)
436+
return super().form_valid(form)
437+
424438
def get_success_url(self):
425439
return reverse("core:apartment_detail", kwargs={"slug": self.object.slug})
426440

@@ -438,6 +452,23 @@ class CommercialUpdateView(LoginRequiredMixin, SuccessMessageMixin, UpdateView):
438452
template_name = "pages/post_property.html"
439453
success_message = _("Commercial updated successfully")
440454

455+
def form_valid(self, form):
456+
form.instance.user = self.request.user
457+
commercial_data = form.save()
458+
459+
# Delete existing images of the commercial instance
460+
for old_image in form.instance.commercial_images.all():
461+
old_image.delete()
462+
463+
# Create new commercial images for the instance
464+
images = self.request.FILES.getlist("images")
465+
for image in images:
466+
form.instance.commercial_images.create(
467+
commercial=commercial_data, image=image
468+
)
469+
return super().form_valid(form)
470+
471+
441472
def get_success_url(self):
442473
return reverse("core:commercial_detail", kwargs={"slug": self.object.slug})
443474

@@ -455,6 +486,21 @@ class HouseUpdateView(LoginRequiredMixin, SuccessMessageMixin, UpdateView):
455486
template_name = "pages/post_property.html"
456487
success_message = _("House updated successfully")
457488

489+
def form_valid(self, form):
490+
form.instance.user = self.request.user
491+
house_data = form.save()
492+
493+
# Delete existing images of the house instance
494+
for old_image in form.instance.house_images.all():
495+
old_image.delete()
496+
497+
# Create new house images for the instance
498+
images = self.request.FILES.getlist("images")
499+
for image in images:
500+
form.instance.house_images.create(house=house_data, image=image)
501+
return super().form_valid(form)
502+
503+
458504
def get_success_url(self):
459505
return reverse("core:house_detail", kwargs={"slug": self.object.slug})
460506

@@ -472,6 +518,20 @@ class LandUpdateView(LoginRequiredMixin, SuccessMessageMixin, UpdateView):
472518
template_name = "pages/post_property.html"
473519
success_message = _("Land updated successfully")
474520

521+
def form_valid(self, form):
522+
form.instance.user = self.request.user
523+
land_data = form.save()
524+
525+
# Delete existing images of the land instance
526+
for old_image in form.instance.land_images.all():
527+
old_image.delete()
528+
529+
# Create new land images for the instance
530+
images = self.request.FILES.getlist("images")
531+
for image in images:
532+
form.instance.land_images.create(land=land_data, image=image)
533+
return super().form_valid(form)
534+
475535
def get_success_url(self):
476536
return reverse("core:land_detail", kwargs={"slug": self.object.slug})
477537

@@ -489,6 +549,20 @@ class VillaUpdateView(LoginRequiredMixin, SuccessMessageMixin, UpdateView):
489549
template_name = "pages/post_property.html"
490550
success_message = _("Villa updated successfully")
491551

552+
def form_valid(self, form):
553+
form.instance.user = self.request.user
554+
villa_data = form.save()
555+
556+
# Delete existing images of the villa instance
557+
for old_image in form.instance.villa_images.all():
558+
old_image.delete()
559+
560+
# Create new villa images for the instance
561+
images = self.request.FILES.getlist("images")
562+
for image in images:
563+
form.instance.villa_images.create(villa=villa_data, image=image)
564+
return super().form_valid(form)
565+
492566
def get_success_url(self):
493567
return reverse("core:villa_detail", kwargs={"slug": self.object.slug})
494568

0 commit comments

Comments
 (0)