From 80d0d8f5d3badcc712952d798b7f8cb11d65cd30 Mon Sep 17 00:00:00 2001
From: Bryan Brancotte <bryan.brancotte@pasteur.fr>
Date: Thu, 31 Oct 2019 12:42:04 +0100
Subject: [PATCH] Fix duplication issue

---
 basetheme_bootstrap/user_preferences.py | 11 ++++++++++-
 setup.py                                |  2 +-
 2 files changed, 11 insertions(+), 2 deletions(-)

diff --git a/basetheme_bootstrap/user_preferences.py b/basetheme_bootstrap/user_preferences.py
index 3d411dc..915e707 100644
--- a/basetheme_bootstrap/user_preferences.py
+++ b/basetheme_bootstrap/user_preferences.py
@@ -55,10 +55,19 @@ class UserPreferencesAbstractModel(models.Model):
     def get_for_user(cls, user):
         try:
             pref = cls.objects.get(user=user)
+        except cls.MultipleObjectsReturned:
+            for p in cls.objects.filter(user=None)[1:]:
+                p.delete()
+            pref = cls.objects.get(user=user)
         except TypeError:
             return cls.get_for_user(None)
         except cls.DoesNotExist:
-            pref, _ = cls.objects.get_or_create(user=None)
+            try:
+                pref, _ = cls.objects.get_or_create(user=None)
+            except cls.MultipleObjectsReturned:
+                for p in cls.objects.filter(user=None)[1:]:
+                    p.delete()
+                pref, _ = cls.objects.get(user=None)
             if user is not None:
                 pref.pk = None
                 pref.id = None
diff --git a/setup.py b/setup.py
index a430b6c..619dd46 100644
--- a/setup.py
+++ b/setup.py
@@ -7,7 +7,7 @@ readme = open('README.rst').read()
 
 setup(
     name='django-basetheme-bootstrap',
-    version='0.2.26',
+    version='0.2.27',
     description='Django Basetheme Bootstrap',
     long_description=readme,
     author='Bryan Brancotte',
-- 
GitLab