From 6ccebcb562889f7558bee5b350bbeed6bdba6195 Mon Sep 17 00:00:00 2001
From: "N. Geisler" <ngeisler@fachschaft.informatik.tu-darmstadt.de>
Date: Fri, 25 Oct 2019 15:03:46 +0200
Subject: [PATCH] ensure generated short_name is unique with event

---
 AKModel/models.py     |  2 +-
 AKSubmission/forms.py | 10 ++++++++++
 2 files changed, 11 insertions(+), 1 deletion(-)

diff --git a/AKModel/models.py b/AKModel/models.py
index cc7d36b0..2f1f9ad8 100644
--- a/AKModel/models.py
+++ b/AKModel/models.py
@@ -72,7 +72,7 @@ class AKOwner(models.Model):
             if not AKOwner.objects.filter(slug=slug_candidate).exists():
                 break
             digits = len(str(i))
-            slug_candidate = '{}-{}'.format(slug_candidate[:-digits + 1], i)
+            slug_candidate = '{}-{}'.format(slug_candidate[:-(digits + 1)], i)
 
         self.slug = slug_candidate
 
diff --git a/AKSubmission/forms.py b/AKSubmission/forms.py
index 3dff6f1b..1a368913 100644
--- a/AKSubmission/forms.py
+++ b/AKSubmission/forms.py
@@ -1,3 +1,5 @@
+import itertools
+
 from django import forms
 from django.core.exceptions import ValidationError
 from django.utils.translation import ugettext_lazy as _
@@ -76,6 +78,14 @@ class AKForm(forms.ModelForm):
             short_name = short_name.partition(':')[0]
             short_name = short_name.partition(' - ')[0]
             short_name = short_name.partition(' (')[0]
+            for i in itertools.count(1):
+                if not AK.objects.filter(short_name=short_name, event=self.cleaned_data["event"]).exists():
+                    break
+                print(short_name)
+                digits = len(str(i))
+                print(digits)
+                short_name = '{}-{}'.format(short_name[:-(digits + 1)], i)
+                print(short_name)
             cleaned_data["short_name"] = short_name[:AK._meta.get_field('short_name').max_length]
 
         # Get tag names from raw tags
-- 
GitLab