diff --git a/anki/consts.py b/anki/consts.py index bb4fb2047..666c60b41 100644 --- a/anki/consts.py +++ b/anki/consts.py @@ -13,11 +13,6 @@ NEW_CARDS_FIRST = 2 NEW_CARDS_RANDOM = 0 NEW_CARDS_DUE = 1 -# review card sort order -REV_CARDS_RANDOM = 0 -REV_CARDS_OLD_FIRST = 1 -REV_CARDS_NEW_FIRST = 2 - # removal types REM_CARD = 0 REM_NOTE = 1 diff --git a/anki/decks.py b/anki/decks.py index 463c12290..9ff004ca2 100644 --- a/anki/decks.py +++ b/anki/decks.py @@ -66,7 +66,6 @@ defaultConf = { 'fuzz': 0.05, 'minSpace': 1, 'fi': [10, 10], - 'order': REV_CARDS_RANDOM, }, 'maxTaken': 60, 'timer': 0, diff --git a/anki/sched.py b/anki/sched.py index af49a924e..3fc50c4b7 100644 --- a/anki/sched.py +++ b/anki/sched.py @@ -581,20 +581,21 @@ did = ? and queue = 2 and due <= ? limit %d)""" % lim, while self._revDids: did = self._newDids[0] lim = min(self.queueLimit, self._deckRevLimit(did)) - order = self._revOrder(did) if lim: # fill the queue with the current did self._revQueue = self.col.db.list(""" select id from cards where -did = ? and queue = 2 and due <= ? %s limit ?""" % order, +did = ? and queue = 2 and due <= ? limit ?""", did, self.today, lim) if self._revQueue: - if not order: + if self.col.decks.get(did)['dyn']: + # dynamic decks need due order preserved + self._revQueue.reverse() + else: + # random order for regular reviews r = random.Random() r.seed(self.today) r.shuffle(self._revQueue) - else: - self._revQueue.reverse() return True # nothing left in the deck; move to next self._newDids.pop(0) @@ -604,15 +605,6 @@ did = ? and queue = 2 and due <= ? %s limit ?""" % order, self.revCount -= 1 return self.col.getCard(self._revQueue.pop()) - def _revOrder(self, did): - d = self.col.decks.confForDid(did) - if d['dyn']: - return "" - o = d['rev']['order'] - if o: - return "order by %s" % ("ivl desc", "ivl")[o-1] - return "" - # Answering a review card ########################################################################## diff --git a/tests/test_sched.py b/tests/test_sched.py index 1b78a9ee7..f3267535a 100644 --- a/tests/test_sched.py +++ b/tests/test_sched.py @@ -511,13 +511,10 @@ def test_cram(): c.flush() d.reset() assert d.sched.counts() == (0,0,1) - # cram again, with the review treated as a cram + # cram again did = d.decks.newDyn("Cram") - d.decks.get(did)['cramRev'] = True - d.sched.rebuildDyn(did) - d.reset() - assert d.sched.counts() == (1,0,0) - # but if cramRev is false, it's placed in the review queue instead + # if cramRev is false, it's placed in the review queue instead + # fixme: cards pulled from a deck with cramRev=True remain in that state d.decks.get(did)['cramRev'] = False d.sched.rebuildDyn(did) d.reset()