conf() -> confForDid(); add getConf()

This commit is contained in:
Damien Elmes 2011-12-13 13:56:05 +09:00
parent 0448175d10
commit bacbea13e0
9 changed files with 22 additions and 19 deletions

View file

@ -129,7 +129,7 @@ lapses=?, left=?, edue=? where id = ?""",
return self._reviewData()[1]
def deckConf(self):
return self.col.decks.conf(self.did)
return self.col.decks.confForDid(self.did)
def template(self):
return self._reviewData()[1]['tmpls'][self.ord]

View file

@ -342,7 +342,7 @@ insert into cards values (?,?,?,?,?,-1,0,0,?,0,0,0,0,0,0,0,"")""",
return card
def _dueForDid(self, did, due):
conf = self.decks.conf(did)
conf = self.decks.confForDid(did)
# in order due?
if conf['new']['order']:
return due

View file

@ -188,8 +188,11 @@ class DeckManager(object):
"A list of all deck config."
return self.dconf.values()
def conf(self, did):
return self.dconf[str(self.decks[str(did)]['conf'])]
def confForDid(self, did):
return self.getConf(self.get(did)['conf'])
def getConf(self, confId):
return self.dconf[str(confId)]
def updateConf(self, g):
self.dconf[str(g['id'])] = g

View file

@ -25,7 +25,7 @@ class Anki1Importer(Anki2Importer):
self.log.append(traceback.format_exc())
return
# save the conf for later
conf = deck.decks.conf(1)
conf = deck.decks.confForDid(1)
# merge
deck.close()
mdir = self.file.replace(".anki", ".media")

View file

@ -263,7 +263,7 @@ select id, due from cards where did = ? and queue = 0 limit ?""", did, lim)
return
(id, due) = self._newQueue.pop()
# move any siblings to the end?
conf = self.col.decks.conf(self._newDids[0])
conf = self.col.decks.confForDid(self._newDids[0])
if conf['new']['separate']:
n = len(self._newQueue)
while self._newQueue and self._newQueue[-1][1] == due:
@ -318,7 +318,7 @@ select id, due from cards where did = ? and queue = 0 limit ?""", did, lim)
return lim
def _deckNewLimitSingle(self, g):
c = self.col.decks.conf(g['id'])
c = self.col.decks.confForDid(g['id'])
return max(0, c['new']['perDay'] - g['newToday'][1])
# Learning queue
@ -479,7 +479,7 @@ where queue = 1 and type = 2
return self._deckNewLimit(did, self._deckRevLimitSingle)
def _deckRevLimitSingle(self, d):
c = self.col.decks.conf(d['id'])
c = self.col.decks.confForDid(d['id'])
return max(0, c['rev']['perDay'] - d['revToday'][1])
def _deckHasRev(self, did):
@ -536,7 +536,7 @@ did = ? and queue = 2 and due <= ? %s limit ?""" % order,
return self.col.getCard(self._revQueue.pop())
def _revOrder(self, did):
d = self.col.decks.conf(did)
d = self.col.decks.confForDid(did)
o = d['rev']['order']
if o:
return "order by %s" % ("ivl desc", "ivl")[o-1]
@ -681,7 +681,7 @@ did = ? and queue = 2 and due <= ? %s limit ?""" % order,
##########################################################################
def _cardConf(self, card):
return self.col.decks.conf(card.did)
return self.col.decks.confForDid(card.did)
def _deckLimit(self):
return ids2str(self.col.decks.active())

View file

@ -304,7 +304,7 @@ from notes where %s""" % d)
if not l or r['mod'] > l['mod']:
self.col.decks.update(r)
for r in rchg[1]:
l = self.col.decks.conf(r['id'])
l = self.col.decks.confForDid(r['id'])
# if missing locally or server is newer, update
if not l or r['mod'] > l['mod']:
self.col.decks.updateConf(r)

View file

@ -604,7 +604,7 @@ and ord = ? limit 1""", m['id'], t['ord']):
col.db.execute("""
update cards set due = nid where type=0""")
# and failed cards
left = len(col.decks.conf(1)['new']['delays'])
left = len(col.decks.confForDid(1)['new']['delays'])
col.db.execute("update cards set edue = ?, left=? where type = 1",
col.sched.today+1, left)
# and due cards

View file

@ -73,12 +73,12 @@ def test_newLimits():
c = d.sched.getCard()
assert c.did == 1
# limit the parent to 10 cards, meaning we get 10 in total
conf1 = d.decks.conf(1)
conf1 = d.decks.confForDid(1)
conf1['new']['perDay'] = 10
d.reset()
assert d.sched.newCount == 10
# if we limit child to 4, we should get 9
conf2 = d.decks.conf(g2)
conf2 = d.decks.confForDid(g2)
conf2['new']['perDay'] = 4
d.reset()
assert d.sched.newCount == 9
@ -309,7 +309,7 @@ def test_nextIvl():
f['Front'] = u"one"; f['Back'] = u"two"
d.addNote(f)
d.reset()
conf = d.decks.conf(1)
conf = d.decks.confForDid(1)
conf['new']['delays'] = [0.5, 3, 10]
conf['lapse']['delays'] = [1, 5, 9]
c = d.sched.getCard()

View file

@ -192,12 +192,12 @@ def test_decks():
assert deck1.tags.all() == deck2.tags.all()
assert len(deck1.decks.all()) == len(deck2.decks.all())
assert len(deck1.decks.all()) == 3
assert deck1.decks.conf(1)['maxTaken'] == 60
deck2.decks.conf(1)['maxTaken'] = 30
deck2.decks.save(deck2.decks.conf(1))
assert deck1.decks.confForDid(1)['maxTaken'] == 60
deck2.decks.confForDid(1)['maxTaken'] = 30
deck2.decks.save(deck2.decks.confForDid(1))
deck2.save()
assert client.sync() == "success"
assert deck1.decks.conf(1)['maxTaken'] == 30
assert deck1.decks.confForDid(1)['maxTaken'] == 30
@nose.with_setup(setup_modified)
def test_conf():