mirror of
https://github.com/ankitects/anki.git
synced 2025-09-25 01:06:35 -04:00
store forgetting index as %, fix card sorting
This commit is contained in:
parent
0161ebd9f1
commit
78494283c2
3 changed files with 25 additions and 10 deletions
|
@ -48,7 +48,7 @@ defaultConf = {
|
||||||
'ease4': 1.3,
|
'ease4': 1.3,
|
||||||
'fuzz': 0.05,
|
'fuzz': 0.05,
|
||||||
'minSpace': 1,
|
'minSpace': 1,
|
||||||
'fi': [0.1, 0.1],
|
'fi': [10, 10],
|
||||||
'order': REV_CARDS_RANDOM,
|
'order': REV_CARDS_RANDOM,
|
||||||
},
|
},
|
||||||
'maxTaken': 60,
|
'maxTaken': 60,
|
||||||
|
@ -220,6 +220,13 @@ class DeckManager(object):
|
||||||
grp['conf'] = id
|
grp['conf'] = id
|
||||||
self.save(grp)
|
self.save(grp)
|
||||||
|
|
||||||
|
def didsForConf(self, conf):
|
||||||
|
dids = []
|
||||||
|
for deck in self.decks:
|
||||||
|
if deck['conf'] == conf['id']:
|
||||||
|
dids.append(deck['id'])
|
||||||
|
return dids
|
||||||
|
|
||||||
# Deck utils
|
# Deck utils
|
||||||
#############################################################
|
#############################################################
|
||||||
|
|
||||||
|
|
|
@ -613,7 +613,7 @@ did = ? and queue = 2 and due <= ? %s limit ?""" % order,
|
||||||
|
|
||||||
def _ivlForFI(self, conf, ivl):
|
def _ivlForFI(self, conf, ivl):
|
||||||
new, old = conf['rev']['fi']
|
new, old = conf['rev']['fi']
|
||||||
return ivl * math.log(1-new) / math.log(1-old)
|
return ivl * math.log(1-new/100.0) / math.log(1-old/100.0)
|
||||||
|
|
||||||
def _daysLate(self, card):
|
def _daysLate(self, card):
|
||||||
"Number of days later than scheduled."
|
"Number of days later than scheduled."
|
||||||
|
@ -875,10 +875,18 @@ and due >= ?""" % scids, now, self.col.usn(), shiftby, low)
|
||||||
self.col.db.executemany(
|
self.col.db.executemany(
|
||||||
"update cards set due=:due,mod=:now,usn=:usn where id = :cid""", d)
|
"update cards set due=:due,mod=:now,usn=:usn where id = :cid""", d)
|
||||||
|
|
||||||
# fixme: because it's a model property now, these should be done on a
|
def randomizeCards(self, did):
|
||||||
# per-model basis
|
cids = self.col.db.list("select id from cards where did = ?", did)
|
||||||
def randomizeCards(self):
|
self.sortCards(cids, shuffle=True)
|
||||||
self.sortCards(self.col.db.list("select id from cards"), shuffle=True)
|
|
||||||
|
def orderCards(self, did):
|
||||||
|
cids = self.col.db.list("select id from cards where did = ?", did)
|
||||||
|
self.sortCards(cids)
|
||||||
|
|
||||||
|
def resortConf(self, conf):
|
||||||
|
for did in self.mw.decks.didsForConf(conf):
|
||||||
|
if conf['new']['order'] == 0:
|
||||||
|
self.randomizeCards(did)
|
||||||
|
else:
|
||||||
|
self.orderCards(did)
|
||||||
|
|
||||||
def orderCards(self):
|
|
||||||
self.sortCards(self.col.db.list("select id from cards"))
|
|
||||||
|
|
|
@ -828,12 +828,12 @@ def test_reorder():
|
||||||
found=False
|
found=False
|
||||||
# 50/50 chance of being reordered
|
# 50/50 chance of being reordered
|
||||||
for i in range(20):
|
for i in range(20):
|
||||||
d.sched.randomizeCards()
|
d.sched.randomizeCards(1)
|
||||||
if f.cards()[0].due != f.id:
|
if f.cards()[0].due != f.id:
|
||||||
found=True
|
found=True
|
||||||
break
|
break
|
||||||
assert found
|
assert found
|
||||||
d.sched.orderCards()
|
d.sched.orderCards(1)
|
||||||
assert f.cards()[0].due == 1
|
assert f.cards()[0].due == 1
|
||||||
# shifting
|
# shifting
|
||||||
f3 = d.newNote()
|
f3 = d.newNote()
|
||||||
|
|
Loading…
Reference in a new issue