From 186f928e6800cf46d0574079872a8cb50c980539 Mon Sep 17 00:00:00 2001
From: Lucas Brandstaetter <lucas@brandstaetter.tech>
Date: Fri, 29 Nov 2024 02:28:08 +0100
Subject: [PATCH] Fix room deletion

- Incorrect query for linked object room
  Fixed #620
- Better messages for room deletion
---
 src/backoffice/locale/de/LC_MESSAGES/django.po | 10 +++++++---
 src/backoffice/locale/en/LC_MESSAGES/django.po | 10 +++++++---
 src/backoffice/views/assemblies/rooms.py       |  6 +++---
 3 files changed, 17 insertions(+), 9 deletions(-)

diff --git a/src/backoffice/locale/de/LC_MESSAGES/django.po b/src/backoffice/locale/de/LC_MESSAGES/django.po
index 7ca671949..f0a60deaa 100644
--- a/src/backoffice/locale/de/LC_MESSAGES/django.po
+++ b/src/backoffice/locale/de/LC_MESSAGES/django.po
@@ -1825,11 +1825,12 @@ msgstr "Link konnte nicht angelegt werden"
 msgid "RoomLink__removed"
 msgstr "Link entfernt: {name}"
 
-msgid "Room__remove_failed"
+msgid "Room__remove__failed"
 msgstr "Der Raum konnte nicht gelöscht werden da noch Veranstaltungen vorhanden sind. Lösche zuerst auch diese Veranstaltungen oder entferne deren Zuordnung zu diesem Raum."
 
-msgid "removed"
-msgstr "entfernt"
+#, python-format
+msgid "Room__remove__success %s"
+msgstr "Der Raum '%s' wurde entfernt!"
 
 msgid "nav_assemblies_all"
 msgstr "alle"
@@ -1915,6 +1916,9 @@ msgstr "Das Aktualisieren der Badge '%(badge)s' war erfolgreich!"
 msgid "Badge__update__failed %(badge)s"
 msgstr "Das Aktualisieren der Badge '%(badge)s' ist fehlgeschlagen"
 
+msgid "removed"
+msgstr "entfernt"
+
 #, python-format
 msgid "Badge__awarded-to-user %(badge)s %(user)s"
 msgstr "Badge '%(badge)s' zugewiesen an: %(user)s"
diff --git a/src/backoffice/locale/en/LC_MESSAGES/django.po b/src/backoffice/locale/en/LC_MESSAGES/django.po
index 992168f95..5f5453ae7 100644
--- a/src/backoffice/locale/en/LC_MESSAGES/django.po
+++ b/src/backoffice/locale/en/LC_MESSAGES/django.po
@@ -1829,11 +1829,12 @@ msgstr "The link could not be created"
 msgid "RoomLink__removed"
 msgstr "removed link: {name}"
 
-msgid "Room__remove_failed"
+msgid "Room__remove__failed"
 msgstr "Could not remove the room as it has at least one event assigned to it. Please delete all events associated with this room first (or remove the association)."
 
-msgid "removed"
-msgstr "removed"
+#, python-format
+msgid "Room__remove__success %s"
+msgstr "The romme '%s' was removed!"
 
 msgid "nav_assemblies_all"
 msgstr "all"
@@ -1918,6 +1919,9 @@ msgstr "Badge '%(badge)s' successfully updated."
 msgid "Badge__update__failed %(badge)s"
 msgstr "Badge '%(badge)s could not be updated."
 
+msgid "removed"
+msgstr "removed"
+
 #, python-format
 msgid "Badge__awarded-to-user %(badge)s %(user)s"
 msgstr "Badge '%(badge)s' awarded to: %(user)s"
diff --git a/src/backoffice/views/assemblies/rooms.py b/src/backoffice/views/assemblies/rooms.py
index 4cc5af826..3d704325c 100644
--- a/src/backoffice/views/assemblies/rooms.py
+++ b/src/backoffice/views/assemblies/rooms.py
@@ -271,11 +271,11 @@ class AssemblyRoomDeleteView(AssemblyMixin, View):
 
     def post(self, *args, **kwargs):
         room = self.assembly.rooms.get(pk=kwargs.get('room'))
-        if Event.objects.filter(conference=self.conference, room=room).exclude(room_type=Room.RoomType.PROJECT).exists():
-            messages.error(self.request, _('Room__remove_failed'))
+        if Event.objects.filter(conference=self.conference, room=room).exclude(room__room_type=Room.RoomType.PROJECT).exists():
+            messages.error(self.request, _('Room__remove__failed'))
             return redirect('backoffice:assembly-room', assembly=self.assembly.id, pk=room.id)
 
         room.delete()
-        messages.success(self.request, format_lazy('{x}: {name}', x=_('removed'), name=room.name))
+        messages.success(self.request, _('Room__remove__success %s') % room.name)
         ConferenceExportCache.signal_schedule_modification(self.conference, obj=room)
         return redirect('backoffice:assembly', pk=self.assembly.id)
-- 
GitLab