From 2c4b003fc939522be0dbfc01f5be05f582644380 Mon Sep 17 00:00:00 2001
From: kaiyou <pierre@jaury.eu>
Date: Tue, 12 May 2020 18:07:50 +0200
Subject: [PATCH] Simplify the profile pick function

---
 hiboo/profile/__init__.py | 16 ++++++----------
 1 file changed, 6 insertions(+), 10 deletions(-)

diff --git a/hiboo/profile/__init__.py b/hiboo/profile/__init__.py
index fa7865f6..c676c365 100644
--- a/hiboo/profile/__init__.py
+++ b/hiboo/profile/__init__.py
@@ -15,18 +15,14 @@ from hiboo.profile import login, admin, forms, cli
 
 
 def get_profile(service, **redirect_args):
-    query = models.Profile.query.filter_by(
-        service_uuid=service.uuid,
-        user_uuid=flask_login.current_user.uuid,
-        status=models.Profile.ACTIVE
-    )
+    profiles = models.Profile.filter(service, flask_login.current_user)
+    active = profiles.filter_by(status=models.Profile.ACTIVE)
     form = forms.ProfilePickForm()
     if form.validate_on_submit():
-        return query.filter_by(uuid=form.profile_uuid.data).first()
-    count = query.count()
-    if count > 1:
+        return active.filter_by(uuid=form.profile_uuid.data).first()
+    if active.count() == 1:
+        return active.one()
+    elif profile.count() > 1:
         utils.force_redirect(utils.url_for("profile.pick", **redirect_args))
-    elif count == 1:
-        return query.one()
     else:
         utils.force_redirect(utils.url_for("profile.create_quick", **redirect_args))
-- 
GitLab