mirror of
https://github.com/ankitects/anki.git
synced 2025-12-13 14:50:59 -05:00
remove review order options
As cram decks provide a more efficient way of ordering reviews, we can limit normal reviews to just due order.
This commit is contained in:
parent
81c07158e9
commit
dc85212bfe
4 changed files with 9 additions and 26 deletions
|
|
@ -13,11 +13,6 @@ NEW_CARDS_FIRST = 2
|
||||||
NEW_CARDS_RANDOM = 0
|
NEW_CARDS_RANDOM = 0
|
||||||
NEW_CARDS_DUE = 1
|
NEW_CARDS_DUE = 1
|
||||||
|
|
||||||
# review card sort order
|
|
||||||
REV_CARDS_RANDOM = 0
|
|
||||||
REV_CARDS_OLD_FIRST = 1
|
|
||||||
REV_CARDS_NEW_FIRST = 2
|
|
||||||
|
|
||||||
# removal types
|
# removal types
|
||||||
REM_CARD = 0
|
REM_CARD = 0
|
||||||
REM_NOTE = 1
|
REM_NOTE = 1
|
||||||
|
|
|
||||||
|
|
@ -66,7 +66,6 @@ defaultConf = {
|
||||||
'fuzz': 0.05,
|
'fuzz': 0.05,
|
||||||
'minSpace': 1,
|
'minSpace': 1,
|
||||||
'fi': [10, 10],
|
'fi': [10, 10],
|
||||||
'order': REV_CARDS_RANDOM,
|
|
||||||
},
|
},
|
||||||
'maxTaken': 60,
|
'maxTaken': 60,
|
||||||
'timer': 0,
|
'timer': 0,
|
||||||
|
|
|
||||||
|
|
@ -581,20 +581,21 @@ did = ? and queue = 2 and due <= ? limit %d)""" % lim,
|
||||||
while self._revDids:
|
while self._revDids:
|
||||||
did = self._newDids[0]
|
did = self._newDids[0]
|
||||||
lim = min(self.queueLimit, self._deckRevLimit(did))
|
lim = min(self.queueLimit, self._deckRevLimit(did))
|
||||||
order = self._revOrder(did)
|
|
||||||
if lim:
|
if lim:
|
||||||
# fill the queue with the current did
|
# fill the queue with the current did
|
||||||
self._revQueue = self.col.db.list("""
|
self._revQueue = self.col.db.list("""
|
||||||
select id from cards where
|
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)
|
did, self.today, lim)
|
||||||
if self._revQueue:
|
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 = random.Random()
|
||||||
r.seed(self.today)
|
r.seed(self.today)
|
||||||
r.shuffle(self._revQueue)
|
r.shuffle(self._revQueue)
|
||||||
else:
|
|
||||||
self._revQueue.reverse()
|
|
||||||
return True
|
return True
|
||||||
# nothing left in the deck; move to next
|
# nothing left in the deck; move to next
|
||||||
self._newDids.pop(0)
|
self._newDids.pop(0)
|
||||||
|
|
@ -604,15 +605,6 @@ did = ? and queue = 2 and due <= ? %s limit ?""" % order,
|
||||||
self.revCount -= 1
|
self.revCount -= 1
|
||||||
return self.col.getCard(self._revQueue.pop())
|
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
|
# Answering a review card
|
||||||
##########################################################################
|
##########################################################################
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -511,13 +511,10 @@ def test_cram():
|
||||||
c.flush()
|
c.flush()
|
||||||
d.reset()
|
d.reset()
|
||||||
assert d.sched.counts() == (0,0,1)
|
assert d.sched.counts() == (0,0,1)
|
||||||
# cram again, with the review treated as a cram
|
# cram again
|
||||||
did = d.decks.newDyn("Cram")
|
did = d.decks.newDyn("Cram")
|
||||||
d.decks.get(did)['cramRev'] = True
|
# if cramRev is false, it's placed in the review queue instead
|
||||||
d.sched.rebuildDyn(did)
|
# fixme: cards pulled from a deck with cramRev=True remain in that state
|
||||||
d.reset()
|
|
||||||
assert d.sched.counts() == (1,0,0)
|
|
||||||
# but if cramRev is false, it's placed in the review queue instead
|
|
||||||
d.decks.get(did)['cramRev'] = False
|
d.decks.get(did)['cramRev'] = False
|
||||||
d.sched.rebuildDyn(did)
|
d.sched.rebuildDyn(did)
|
||||||
d.reset()
|
d.reset()
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue