From acfa124252445aec447fc63e3484fac6a2f0d918 Mon Sep 17 00:00:00 2001
From: Lars Beckers <lars.beckers@rwth-aachen.de>
Date: Mon, 12 Jun 2017 15:08:26 +0200
Subject: [PATCH] fix balanced sorting when statement count is equal

---
 models/database.py | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/models/database.py b/models/database.py
index d0cb806..faf5914 100644
--- a/models/database.py
+++ b/models/database.py
@@ -100,7 +100,7 @@ class Topic(db.Model):
         if self.mode == "fifo":
             return sorted(statements, key=lambda st:-2 if st.is_current else -1 if st.is_meta else st.id)
         elif self.mode == "balanced":
-            return sorted(statements, key=lambda st:-2 if st.is_current else -1 if st.is_meta else st.speaker.count(self))
+            return sorted(statements, key=lambda st:(-2,st.id) if st.is_current else (-1,st.id) if st.is_meta else (st.speaker.count(self), st.id))
         elif self.mode == "random":
             return sorted(statements, key=lambda st:random.random())
         else:
@@ -143,8 +143,9 @@ class Speaker(db.Model):
         self.event_id = event_id
     
     def __repr__(self):
-        return "<Speaker(id={}, name='{}', event_id={})>".format(
+        return "<Speaker(id={}, number={}, name='{}', event_id={})>".format(
             self.id, 
+            self.number,
             self.name,
             self.event_id
         )
-- 
GitLab