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']