From 74669d0516b71f5ee21fa081e1d71e9d26d743e3 Mon Sep 17 00:00:00 2001
From: Dominik George <dominik.george@teckids.org>
Date: Sat, 5 Feb 2022 12:08:12 +0100
Subject: [PATCH] Fix IntivePersonByID view

---
 CHANGELOG.rst         |  5 +++++
 aleksis/core/urls.py  |  2 +-
 aleksis/core/views.py | 10 ++++------
 3 files changed, 10 insertions(+), 7 deletions(-)

diff --git a/CHANGELOG.rst b/CHANGELOG.rst
index e191de651..49dd5b3ae 100644
--- a/CHANGELOG.rst
+++ b/CHANGELOG.rst
@@ -9,6 +9,11 @@ and this project adheres to `Semantic Versioning`_.
 Unreleased
 ----------
 
+Fixed
+~~~~~
+
+* Inviting newly created persons for registration failed
+
 `2.7.3`_ - 2022-02-03
 ---------------------
 
diff --git a/aleksis/core/urls.py b/aleksis/core/urls.py
index b5dcb004d..20c6bad61 100644
--- a/aleksis/core/urls.py
+++ b/aleksis/core/urls.py
@@ -63,7 +63,7 @@ urlpatterns = [
     path("person/<int:id_>/", views.person, name="person_by_id"),
     path("person/<int:pk>/edit/", views.EditPersonView.as_view(), name="edit_person_by_id"),
     path("person/<int:id_>/delete/", views.delete_person, name="delete_person_by_id"),
-    path("person/<int:id_>/invite/", views.InvitePersonByID.as_view(), name="invite_person_by_id"),
+    path("person/<int:pk>/invite/", views.InvitePersonByID.as_view(), name="invite_person_by_id"),
     path("groups", views.groups, name="groups"),
     path("groups/additional_fields", views.additional_fields, name="additional_fields"),
     path("groups/child_groups/", views.groups_child_groups, name="groups_child_groups"),
diff --git a/aleksis/core/views.py b/aleksis/core/views.py
index c23498a8b..8451bdda0 100644
--- a/aleksis/core/views.py
+++ b/aleksis/core/views.py
@@ -1421,15 +1421,13 @@ class AccountRegisterView(SignupView):
         return kwargs
 
 
-class InvitePersonByID(View):
+class InvitePersonByID(SingleObjectMixin, View):
     """Custom view to invite person by their ID."""
 
-    success_url = reverse_lazy("persons")
+    model = Person
 
     def get(self, request, *args, **kwargs):
-        self.object = self.get_object()
-        success_url = reverze_lazy("person_by_id", self.object.pk)
-        person = self.object
+        person = self.get_object()
 
         if not PersonInvitation.objects.filter(email=person.email).exists():
             length = get_site_preferences()["auth__invite_code_length"]
@@ -1446,7 +1444,7 @@ class InvitePersonByID(View):
         else:
             messages.success(self.request, _("Person was already invited."))
 
-        return HttpResponseRedirect(success_url)
+        return HttpResponseRedirect(person.get_absolute_url())
 
 
 class LoginView(AllAuthLoginView):
-- 
GitLab