From a28bafeec9cd6995f40dcd1282160c346a5a3678 Mon Sep 17 00:00:00 2001
From: Jonathan Weth <git@jonathanweth.de>
Date: Sat, 8 Jan 2022 11:26:29 +0100
Subject: [PATCH] Skip data check result in the list view if the related object
 has been deleted in the meanwhile

---
 CHANGELOG.rst                                 |  1 +
 .../core/templates/core/data_check/list.html  | 42 ++++++++++---------
 2 files changed, 23 insertions(+), 20 deletions(-)

diff --git a/CHANGELOG.rst b/CHANGELOG.rst
index 6549852db..32e4ea7b3 100644
--- a/CHANGELOG.rst
+++ b/CHANGELOG.rst
@@ -24,6 +24,7 @@ Fixed
 
 * GroupManager.get_queryset() returned an incomplete QuerySet
 * OAuth was broken by a non-semver-adhering django-oauth-toolkit update
+* The data check results list view didn't work if a related object had been deleted in the meanwhile.
 
 Changed
 ~~~~~~~
diff --git a/aleksis/core/templates/core/data_check/list.html b/aleksis/core/templates/core/data_check/list.html
index 5a510fdd9..36d83d4cd 100644
--- a/aleksis/core/templates/core/data_check/list.html
+++ b/aleksis/core/templates/core/data_check/list.html
@@ -50,27 +50,29 @@
           </thead>
           <tbody>
           {% for result in results %}
-            <tr>
-              <td>
-                <code>{{ result.id }}</code>
-              </td>
-              <td>{% verbose_name_object result.related_object %}</td>
-              <td>{{ result.related_object }}</td>
-              <td>{{ result.related_check.problem_name }}</td>
-              <td>
-                <a class="btn-flat waves-effect waves-light" href="{{ result.related_object.get_absolute_url }}">
-                  {% trans "Show object" %}
-                </a>
-              </td>
-              <td>
-                {% for option_name, option in result.related_check.solve_options.items %}
-                  <a class="btn btn-margin waves-effect waves-light"
-                     href="{% url "data_check_solve" result.pk option_name %}">
-                    {{ option.verbose_name }}
+            {% if result.related_object %}
+              <tr>
+                <td>
+                  <code>{{ result.id }}</code>
+                </td>
+                <td>{% verbose_name_object result.related_object %}</td>
+                <td>{{ result.related_object }}</td>
+                <td>{{ result.related_check.problem_name }}</td>
+                <td>
+                  <a class="btn-flat waves-effect waves-light" href="{{ result.related_object.get_absolute_url }}">
+                    {% trans "Show object" %}
                   </a>
-                {% endfor %}
-              </td>
-            </tr>
+                </td>
+                <td>
+                  {% for option_name, option in result.related_check.solve_options.items %}
+                    <a class="btn btn-margin waves-effect waves-light"
+                       href="{% url "data_check_solve" result.pk option_name %}">
+                      {{ option.verbose_name }}
+                    </a>
+                  {% endfor %}
+                </td>
+              </tr>
+            {% endif %}
           {% endfor %}
           </tbody>
         </table>
-- 
GitLab