diff --git a/anki/cards.py b/anki/cards.py index 471fe0fdf..f3b1c5f4f 100644 --- a/anki/cards.py +++ b/anki/cards.py @@ -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] diff --git a/anki/collection.py b/anki/collection.py index ad597da50..b24eda52a 100644 --- a/anki/collection.py +++ b/anki/collection.py @@ -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 diff --git a/anki/decks.py b/anki/decks.py index 725edbab7..9a25c5ad3 100644 --- a/anki/decks.py +++ b/anki/decks.py @@ -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 diff --git a/anki/importing/anki1.py b/anki/importing/anki1.py index 3da4743ad..7972c40cc 100644 --- a/anki/importing/anki1.py +++ b/anki/importing/anki1.py @@ -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") diff --git a/anki/sched.py b/anki/sched.py index 70784cc88..514f6077f 100644 --- a/anki/sched.py +++ b/anki/sched.py @@ -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()) diff --git a/anki/sync.py b/anki/sync.py index 640eec359..be6aedb5a 100644 --- a/anki/sync.py +++ b/anki/sync.py @@ -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) diff --git a/anki/upgrade.py b/anki/upgrade.py index c21115383..592041e50 100644 --- a/anki/upgrade.py +++ b/anki/upgrade.py @@ -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 diff --git a/tests/test_sched.py b/tests/test_sched.py index 73cffb4fa..ebe81db87 100644 --- a/tests/test_sched.py +++ b/tests/test_sched.py @@ -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() diff --git a/tests/test_sync.py b/tests/test_sync.py index 4da0d73f7..dccb3b928 100644 --- a/tests/test_sync.py +++ b/tests/test_sync.py @@ -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():