From 4ee9ce79fd3393a9e968b00cf75fe47af3920293 Mon Sep 17 00:00:00 2001
From: Tom Teichler <tom.teichler@teckids.org>
Date: Mon, 7 Feb 2022 23:26:00 +0100
Subject: [PATCH] Add missing create method

---
 aleksis/core/models.py | 10 +++++++++-
 1 file changed, 9 insertions(+), 1 deletion(-)

diff --git a/aleksis/core/models.py b/aleksis/core/models.py
index d8f63e606..c0f03d347 100644
--- a/aleksis/core/models.py
+++ b/aleksis/core/models.py
@@ -1150,8 +1150,16 @@ class PersonInvitation(AbstractBaseInvitation, PureDjangoModel):
     def __str__(self) -> str:
         return f"{self.email} ({self.inviter})"
 
-    key_expired = Invitation.key_expired
+    @classmethod
+    def create(cls, email, inviter=None, **kwargs):
+        length = get_site_preferences()["auth__invite_code_length"]
+        packet_size = get_site_preferences()["auth__invite_code_packet_size"]
+        code = generate_random_code(length, packet_size)
 
+        instance = cls._default_manager.create(email=email, inviter=inviter, key=code, **kwargs)
+        return instance
+
+    key_expired = Invitation.key_expired
     send_invitation = Invitation.send_invitation
 
 
-- 
GitLab