diff --git a/anki/cards.py b/anki/cards.py index d8a1ece5c..af8c89afc 100644 --- a/anki/cards.py +++ b/anki/cards.py @@ -115,7 +115,7 @@ lapses=?, left=?, odue=?, odid=?, did=? where id = ?""", return self.css() + self._getQA()['a'] def css(self): - return "" % self.template()['css'] + return "" % self.model()['css'] def _getQA(self, reload=False): if not self._qa or reload: diff --git a/anki/consts.py b/anki/consts.py index db63d68be..e28266246 100644 --- a/anki/consts.py +++ b/anki/consts.py @@ -42,10 +42,10 @@ MODEL_STD = 0 MODEL_CLOZE = 1 # deck schema & syncing vars -SCHEMA_VERSION = 5 +SCHEMA_VERSION = 6 SYNC_ZIP_SIZE = int(2.5*1024*1024) SYNC_URL = os.environ.get("SYNC_URL") or "https://beta.ankiweb.net/sync/" -SYNC_VER = 2 +SYNC_VER = 3 # Labels ########################################################################## diff --git a/anki/models.py b/anki/models.py index 0b5d159b1..ae8bbd097 100644 --- a/anki/models.py +++ b/anki/models.py @@ -29,6 +29,15 @@ defaultModel = { 'usn': 0, 'vers': [], 'type': MODEL_STD, + 'css': """\ +.card { + font-family: arial; + font-size: 20px; + text-align: center; + color: black; + background-color: white; +} +""" } defaultField = { @@ -50,15 +59,6 @@ defaultTemplate = { 'qfmt': "", 'afmt': "", 'did': None, - 'css': """\ -.card { - font-family: arial; - font-size: 20px; - text-align: center; - color: black; - background-color: white; -} -""" } class ModelManager(object): diff --git a/anki/stdmodels.py b/anki/stdmodels.py index a019d1568..954c7fe21 100644 --- a/anki/stdmodels.py +++ b/anki/stdmodels.py @@ -40,7 +40,7 @@ def addClozeModel(col): mm.addField(m, fm) t = mm.newTemplate(_("Cloze")) fmt = "{{cloze:%s}}" % txt - t['css'] += """ + m['css'] += """ .cloze { font-weight: bold; color: blue; diff --git a/anki/storage.py b/anki/storage.py index 772884f6f..880bd1fac 100644 --- a/anki/storage.py +++ b/anki/storage.py @@ -95,6 +95,17 @@ def _upgrade(col, ver): if ver < 5: col.db.execute("update cards set odue = 0 where queue = 2") col.db.execute("update col set ver = 5") + if ver < 6: + col.modSchema() + import anki.models + for m in col.models.all(): + m['css'] = anki.models.defaultModel['css'] + for t in m['tmpls']: + m['css'] += "\n" + t['css'].replace( + ".card ", ".card%d "%(t['ord']+1)) + del t['css'] + col.models.save(m) + col.db.execute("update col set ver = 6") def _upgradeClozeModel(col, m): m['type'] = MODEL_CLOZE diff --git a/anki/upgrade.py b/anki/upgrade.py index 02e2edce0..2143535cb 100644 --- a/anki/upgrade.py +++ b/anki/upgrade.py @@ -492,8 +492,14 @@ order by ordinal""", mid)): bg = "white" else: bg = t['bg'] - t['css'] = t['css'].replace("white", bg).replace( - "center", ("center", "left", "right")[t['align']]) + css = "" + if t['bg'] != "white": + css = "background-color: %s;" % t['bg'] + if t['align']: + css += "text-align: %s" % ("left", "right")[t['align']-1] + if css: + css = '\n.card%d { %s }' % (t['ord']+1, css) + m['css'] += css # remove obsolete del t['bg'] del t['align']