mirror of
https://github.com/ankitects/anki.git
synced 2025-09-23 16:26:40 -04:00
add support for 'allow blank answer', default to allow
This commit is contained in:
parent
9e47063940
commit
f903288c59
2 changed files with 12 additions and 5 deletions
13
anki/deck.py
13
anki/deck.py
|
@ -49,7 +49,7 @@ decksTable = Table(
|
||||||
Column('created', Float, nullable=False, default=time.time),
|
Column('created', Float, nullable=False, default=time.time),
|
||||||
Column('modified', Float, nullable=False, default=time.time),
|
Column('modified', Float, nullable=False, default=time.time),
|
||||||
Column('description', UnicodeText, nullable=False, default=u""),
|
Column('description', UnicodeText, nullable=False, default=u""),
|
||||||
Column('version', Integer, nullable=False, default=17),
|
Column('version', Integer, nullable=False, default=18),
|
||||||
Column('currentModelId', Integer, ForeignKey("models.id")),
|
Column('currentModelId', Integer, ForeignKey("models.id")),
|
||||||
# syncing
|
# syncing
|
||||||
Column('syncName', UnicodeText),
|
Column('syncName', UnicodeText),
|
||||||
|
@ -799,7 +799,7 @@ and due < :now""", now=time.time())
|
||||||
# check we have card models available
|
# check we have card models available
|
||||||
cms = self.availableCardModels(fact)
|
cms = self.availableCardModels(fact)
|
||||||
if not cms:
|
if not cms:
|
||||||
return []
|
return None
|
||||||
# proceed
|
# proceed
|
||||||
cards = []
|
cards = []
|
||||||
self.s.save(fact)
|
self.s.save(fact)
|
||||||
|
@ -823,7 +823,8 @@ and due < :now""", now=time.time())
|
||||||
for cardModel in fact.model.cardModels:
|
for cardModel in fact.model.cardModels:
|
||||||
if cardModel.active or not checkActive:
|
if cardModel.active or not checkActive:
|
||||||
ok = True
|
ok = True
|
||||||
for format in [cardModel.qformat, cardModel.aformat]:
|
for (type, format) in [("q", cardModel.qformat),
|
||||||
|
("a", cardModel.aformat)]:
|
||||||
empty = {}
|
empty = {}
|
||||||
local = {}; local.update(fact)
|
local = {}; local.update(fact)
|
||||||
for k in fact.keys():
|
for k in fact.keys():
|
||||||
|
@ -837,7 +838,7 @@ and due < :now""", now=time.time())
|
||||||
ok = False
|
ok = False
|
||||||
except (KeyError, TypeError, ValueError):
|
except (KeyError, TypeError, ValueError):
|
||||||
ok = False
|
ok = False
|
||||||
if ok:
|
if ok or type == "a" and cardModel.allowEmptyAnswer:
|
||||||
models.append(cardModel)
|
models.append(cardModel)
|
||||||
return models
|
return models
|
||||||
|
|
||||||
|
@ -2175,6 +2176,10 @@ where interval < 1""")
|
||||||
DeckStorage._addViews(deck)
|
DeckStorage._addViews(deck)
|
||||||
DeckStorage._addIndices(deck)
|
DeckStorage._addIndices(deck)
|
||||||
deck.version = 17
|
deck.version = 17
|
||||||
|
if deck.version < 18:
|
||||||
|
deck.s.statement("""
|
||||||
|
alter table cardModels add column allowEmptyAnswer integer not null default 1""")
|
||||||
|
deck.version = 18
|
||||||
deck.s.commit()
|
deck.s.commit()
|
||||||
deck.s.statement("analyze")
|
deck.s.statement("analyze")
|
||||||
return deck
|
return deck
|
||||||
|
|
|
@ -94,7 +94,9 @@ cardModelsTable = Table(
|
||||||
Column('editQuestionFontFamily', UnicodeText, default=None),
|
Column('editQuestionFontFamily', UnicodeText, default=None),
|
||||||
Column('editQuestionFontSize', Integer, default=None),
|
Column('editQuestionFontSize', Integer, default=None),
|
||||||
Column('editAnswerFontFamily', UnicodeText, default=None),
|
Column('editAnswerFontFamily', UnicodeText, default=None),
|
||||||
Column('editAnswerFontSize', Integer, default=None))
|
Column('editAnswerFontSize', Integer, default=None),
|
||||||
|
# empty answer
|
||||||
|
Column('allowEmptyAnswer', Integer, default=True))
|
||||||
|
|
||||||
class CardModel(object):
|
class CardModel(object):
|
||||||
"""Represents how to generate the front and back of a card."""
|
"""Represents how to generate the front and back of a card."""
|
||||||
|
|
Loading…
Reference in a new issue