mirror of
https://github.com/ankitects/anki.git
synced 2025-09-21 07:22:23 -04:00
fact.model -> fact.model()
This commit is contained in:
parent
870c80e076
commit
f96a495b53
4 changed files with 22 additions and 20 deletions
11
anki/deck.py
11
anki/deck.py
|
@ -229,14 +229,15 @@ select id from facts where id not in (select distinct fid from cards)""")
|
|||
def findTemplates(self, fact, checkActive=True):
|
||||
"Return (active), non-empty templates."
|
||||
ok = []
|
||||
for template in fact.model.templates:
|
||||
model = fact.model()
|
||||
for template in model.templates:
|
||||
if template['actv'] or not checkActive:
|
||||
# [cid, fid, mid, gid, ord, tags, flds, data]
|
||||
data = [1, 1, fact.model.id, 1, template['ord'],
|
||||
data = [1, 1, model.id, 1, template['ord'],
|
||||
"", fact.joinedFields(), ""]
|
||||
now = self._renderQA(fact.model, "", data)
|
||||
now = self._renderQA(model, "", data)
|
||||
data[6] = "\x1f".join([""]*len(fact._fields))
|
||||
empty = self._renderQA(fact.model, "", data)
|
||||
empty = self._renderQA(model, "", data)
|
||||
if now['q'] == empty['q']:
|
||||
continue
|
||||
if not template['emptyAns']:
|
||||
|
@ -277,7 +278,7 @@ select id from facts where id not in (select distinct fid from cards)""")
|
|||
elif type == 1:
|
||||
cms = [c.template() for c in fact.cards()]
|
||||
else:
|
||||
cms = fact.model.templates
|
||||
cms = fact.model().templates
|
||||
if not cms:
|
||||
return []
|
||||
cards = []
|
||||
|
|
|
@ -17,14 +17,14 @@ class Fact(object):
|
|||
self.load()
|
||||
else:
|
||||
self.id = None
|
||||
self.model = model
|
||||
self._model = model
|
||||
self.mid = model.id
|
||||
self.crt = intTime()
|
||||
self.mod = self.crt
|
||||
self.tags = ""
|
||||
self._fields = [""] * len(self.model.fields)
|
||||
self._fields = [""] * len(self._model.fields)
|
||||
self.data = ""
|
||||
self._fmap = self.model.fieldMap()
|
||||
self._fmap = self._model.fieldMap()
|
||||
|
||||
def load(self):
|
||||
(self.mid,
|
||||
|
@ -35,12 +35,12 @@ class Fact(object):
|
|||
self.data) = self.deck.db.first("""
|
||||
select mid, crt, mod, tags, flds, data from facts where id = ?""", self.id)
|
||||
self._fields = splitFields(self._fields)
|
||||
self.model = self.deck.getModel(self.mid)
|
||||
self._model = self.deck.getModel(self.mid)
|
||||
|
||||
def flush(self):
|
||||
self.mod = intTime()
|
||||
# facts table
|
||||
sfld = self._fields[self.model.sortIdx()]
|
||||
sfld = self._fields[self._model.sortIdx()]
|
||||
res = self.deck.db.execute("""
|
||||
insert or replace into facts values (?, ?, ?, ?, ?, ?, ?, ?)""",
|
||||
self.id, self.mid, self.crt,
|
||||
|
@ -70,7 +70,7 @@ insert or replace into facts values (?, ?, ?, ?, ?, ?, ?, ?)""",
|
|||
"select id from cards where fid = ? order by id", self.id)]
|
||||
|
||||
def model(self):
|
||||
return self.deck.getModel(self.mid)
|
||||
return self._model
|
||||
|
||||
# Dict interface
|
||||
##################################################
|
||||
|
|
|
@ -9,7 +9,7 @@ def test_genCards():
|
|||
f['Front'] = u'1'
|
||||
f['Back'] = u'2'
|
||||
deck.addFact(f)
|
||||
cards = deck.genCards(f, f.model.templates, 1)
|
||||
cards = deck.genCards(f, f.model().templates, 1)
|
||||
assert len(cards) == 1
|
||||
assert cards[0].ord == 1
|
||||
assert deck.cardCount() == 2
|
||||
|
@ -20,7 +20,7 @@ def test_genCards():
|
|||
f['Front'] = u'1'
|
||||
f['Back'] = u'2'
|
||||
deck.addFact(f)
|
||||
cards = deck.genCards(f, f.model.templates, 1)
|
||||
cards = deck.genCards(f, f.model().templates, 1)
|
||||
assert deck.cardCount() == 4
|
||||
c = deck.db.list("select due from cards where fid = ?", f.id)
|
||||
assert c[0] == c[1]
|
||||
|
|
|
@ -51,7 +51,7 @@ def test_factAddDelete():
|
|||
# try with two cards
|
||||
f = deck.newFact()
|
||||
f['Front'] = u"one"; f['Back'] = u"two"
|
||||
m = f.model
|
||||
m = f.model()
|
||||
m.templates[1]['actv'] = True
|
||||
m.flush()
|
||||
n = deck.addFact(f)
|
||||
|
@ -64,7 +64,7 @@ def test_factAddDelete():
|
|||
assert not p
|
||||
# now let's make a duplicate and test uniqueness
|
||||
f2 = deck.newFact()
|
||||
f2.model.fields[1]['req'] = True
|
||||
f2.model().fields[1]['req'] = True
|
||||
f2['Front'] = u"one"; f2['Back'] = u""
|
||||
p = f2.problems()
|
||||
assert p[0] == "unique"
|
||||
|
@ -100,15 +100,16 @@ def test_fieldChecksum():
|
|||
assert deck.db.scalar(
|
||||
"select csum from fsums") == int("4b0e5a4c", 16)
|
||||
# turning off unique and modifying the fact should delete the sum
|
||||
f.model.fields[0]['uniq'] = False
|
||||
f.model.flush()
|
||||
m = f.model()
|
||||
m.fields[0]['uniq'] = False
|
||||
m.flush()
|
||||
f.flush()
|
||||
assert deck.db.scalar(
|
||||
"select count() from fsums") == 0
|
||||
# and turning on both should ensure two checksums generated
|
||||
f.model.fields[0]['uniq'] = True
|
||||
f.model.fields[1]['uniq'] = True
|
||||
f.model.flush()
|
||||
m.fields[0]['uniq'] = True
|
||||
m.fields[1]['uniq'] = True
|
||||
m.flush()
|
||||
f.flush()
|
||||
assert deck.db.scalar(
|
||||
"select count() from fsums") == 2
|
||||
|
|
Loading…
Reference in a new issue