ensure random distribution of due cards for a given day in v2 sched

This commit is contained in:
Damien Elmes 2019-08-17 18:45:00 +10:00
parent 888d8b5dee
commit 4dde7b13d0

View file

@ -792,19 +792,13 @@ did in %s and queue = 2 and due <= ? limit %d)""" % (
self._revQueue = self.col.db.list("""
select id from cards where
did in %s and queue = 2 and due <= ?
order by due
order by due, random()
limit ?""" % (ids2str(self.col.decks.active())),
self.today, lim)
if self._revQueue:
if self.col.decks.get(self.col.decks.selected(), default=False)['dyn']:
# dynamic decks need due order preserved
self._revQueue.reverse()
else:
# fixme: as soon as a card is answered, this is no longer consistent
r = random.Random()
r.seed(self.today)
r.shuffle(self._revQueue)
# preserve order
self._revQueue.reverse()
return True
if self.revCount: