diff --git a/anki/cards.py b/anki/cards.py index 878e9b364..5d3fcfc4f 100644 --- a/anki/cards.py +++ b/anki/cards.py @@ -122,8 +122,8 @@ lapses=?, left=?, odue=?, odid=?, did=? where id = ?""", self.factor, self.reps, self.lapses, self.left, self.odue, self.odid, self.did, self.id) - def q(self, reload=False): - return self.css() + self._getQA(reload)['q'] + def q(self, reload=False, browser=False): + return self.css() + self._getQA(reload, browser)['q'] def a(self): return self.css() + self._getQA()['a'] @@ -131,12 +131,16 @@ lapses=?, left=?, odue=?, odid=?, did=? where id = ?""", def css(self): return "" % self.model()['css'] - def _getQA(self, reload=False): + def _getQA(self, reload=False, browser=False): if not self._qa or reload: - f = self.note(reload); m = self.model() + f = self.note(reload); m = self.model(); t = self.template() data = [self.id, f.id, m['id'], self.odid or self.did, self.ord, f.stringTags(), f.joinedFields()] - self._qa = self.col._renderQA(data) + if browser: + args = (t.get('bqfmt'), t.get('bafmt')) + else: + args = tuple() + self._qa = self.col._renderQA(data, *args) return self._qa def note(self, reload=False): diff --git a/anki/collection.py b/anki/collection.py index 73fd1408c..41351b554 100644 --- a/anki/collection.py +++ b/anki/collection.py @@ -463,7 +463,7 @@ where c.nid = n.id and c.id in %s group by nid""" % ids2str(cids)): return [self._renderQA(row) for row in self._qaData(where)] - def _renderQA(self, data): + def _renderQA(self, data, qfmt=None, afmt=None): "Returns hash of id, question, answer." # data is [cid, nid, mid, did, ord, tags, flds] # unpack fields and create dict @@ -483,7 +483,9 @@ where c.nid = n.id and c.id in %s group by nid""" % ids2str(cids)): fields['c%d' % (data[4]+1)] = "1" # render q & a d = dict(id=data[0]) - for (type, format) in (("q", template['qfmt']), ("a", template['afmt'])): + qfmt = qfmt or template['qfmt'] + afmt = afmt or template['afmt'] + for (type, format) in (("q", qfmt), ("a", afmt)): if type == "q": format = format.replace("{{cloze:", "{{cq:%d:" % ( data[4]+1)) diff --git a/anki/models.py b/anki/models.py index 1a3fbe952..62b3b82db 100644 --- a/anki/models.py +++ b/anki/models.py @@ -59,6 +59,9 @@ defaultTemplate = { 'qfmt': "", 'afmt': "", 'did': None, + # added in beta 13 + 'bqfmt': "", + 'bafmt': "", } class ModelManager(object):