From 9c823372f5f99ec8f15e9b4a3fac2845a3e8bb5b Mon Sep 17 00:00:00 2001
From: David Schmitz <schmitz@lrz.de>
Date: Wed, 19 Jul 2023 09:28:51 +0000
Subject: [PATCH] feature/admin_user_delete_with_owned_rule_reassigning: add
 info about owned rules on user delete confirmation page

---
 accounts/models.py                            |  6 ++++++
 .../admin/auth/user/delete_confirmation.html  | 20 +++++++++++++++++++
 2 files changed, 26 insertions(+)
 create mode 100644 templates/admin/auth/user/delete_confirmation.html

diff --git a/accounts/models.py b/accounts/models.py
index 6d67dc4e..23c54a78 100644
--- a/accounts/models.py
+++ b/accounts/models.py
@@ -55,6 +55,12 @@ class UserProfile(models.Model):
             return False
         return networks
 
+    @property
+    def get_owned_rules(self):
+      routes_owned = Route.objects.filter(applier=self.user)   
+      #logger.info("get_owned_rules(): self="+str(self)+" => routes_owned="+str(routes_owned))
+      return routes_owned
+
     # deleting of rules by this account is allowed
     def is_delete_allowed(self):
         user_is_admin = self.user.is_superuser
diff --git a/templates/admin/auth/user/delete_confirmation.html b/templates/admin/auth/user/delete_confirmation.html
new file mode 100644
index 00000000..02ada091
--- /dev/null
+++ b/templates/admin/auth/user/delete_confirmation.html
@@ -0,0 +1,20 @@
+
+{% extends "admin/delete_confirmation.html" %}
+
+{% block content %}
+    <p>
+
+	{% if object.userprofile.get_owned_rules %}
+	Rules currently associated to the user to be deleted:<br>
+	  <ul>
+	  {% for route in object.userprofile.get_owned_rules %}
+	    <li> route {{ route }} </li>
+	  {% endfor %}
+	  </ul>
+	{% endif %}
+
+    </p>
+
+    {{ block.super }}
+{% endblock %}
+
-- 
GitLab