store order as an index

This commit is contained in:
Damien Elmes 2012-03-13 18:11:25 +09:00
parent d5dbfa3243
commit 60dd0b426c
4 changed files with 16 additions and 4 deletions

View file

@ -31,6 +31,10 @@ COUNT_REMAINING = 1
MEDIA_ADD = 0
MEDIA_REM = 1
# dynamic deck order
DYN_OLDEST = 0
DYN_RANDOM = 1
# deck schema & syncing vars
SCHEMA_VERSION = 3
SYNC_ZIP_SIZE = int(2.5*1024*1024)
@ -66,3 +70,10 @@ def alignmentLabels():
1: _("Left"),
2: _("Right"),
}
# todo: expand
def dynOrderLabels():
return {
0: _("Oldest seen first"),
1: _("Random"),
}

View file

@ -38,7 +38,7 @@ defaultDynamicDeck = {
'cramRev': False,
'search': "",
'limit': 100,
'order': 'oldestSeen',
'order': 0,
'shift': True,
}

View file

@ -740,7 +740,7 @@ did = ? and queue = 2 and due <= ? %s limit ?""" % order,
order = self._dynOrder(deck)
limit = " limit %d" % deck['limit']
ids = self.col.findCards(deck['search'], order=order+limit)
if deck['order'] == "random":
if deck['order'] == DYN_RANDOM:
random.shuffle(ids)
# move the cards over
self._moveToDyn(did, ids)
@ -754,7 +754,7 @@ usn = ?, mod = ? where did = ?""", self.col.usn(), intTime(), did)
def _dynOrder(self, deck):
o = deck['order']
if o == "oldestSeen":
if o == DYN_OLDEST:
return "order by c.mod"
# elif o == "added":
# return "order by n.id"

View file

@ -511,8 +511,9 @@ def test_cram():
c.flush()
d.reset()
assert d.sched.counts() == (0,0,1)
# cram again, by default it's treated like a review
# cram again, with the review treated as a cram
did = d.decks.newDyn("Cram")
d.decks.get(did)['cramRev'] = True
d.sched.rebuildDyn(did)
d.reset()
assert d.sched.counts() == (1,0,0)