From 0911df4160649aa685cd757fa5794a2d4de80ce9 Mon Sep 17 00:00:00 2001 From: Logan Hanks Date: Thu, 3 Nov 2011 11:31:15 -0700 Subject: [PATCH] Fix FlairTemplateBySubredditIndex.insert logic. --- r2/r2/models/flair.py | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/r2/r2/models/flair.py b/r2/r2/models/flair.py index 19c9514b6..5d8e628da 100644 --- a/r2/r2/models/flair.py +++ b/r2/r2/models/flair.py @@ -213,18 +213,18 @@ class FlairTemplateBySubredditIndex(tdb_cassandra.Thing): A position value of None means to simply append. """ - keys = self._index_keys() + ft_ids = list(self) if position is None: - position = len(keys) - if position < 0 or position > len(keys): + position = len(ft_ids) + if position < 0 or position > len(ft_ids): raise IndexError(position) + ft_ids.insert(position, ft_id) - # Move items after position to the right by one. - for i in xrange(len(keys), position, -1): - setattr(self, self._make_index_key(i), getattr(self, keys[i - 1])) - - # Assign to position and commit. - setattr(self, self._make_index_key(position), ft_id) + # Rewrite ALL the things. + for k in self._index_keys(): + del self[k] + for i, ft_id in enumerate(ft_ids): + setattr(self, self._make_index_key(i), ft_id) self._commit() def delete_by_id(self, ft_id):