diff --git a/anki/stdmodels.py b/anki/stdmodels.py
index e675e8d1f..ef59c718d 100644
--- a/anki/stdmodels.py
+++ b/anki/stdmodels.py
@@ -26,6 +26,38 @@ def addBasicModel(col):
models.append((lambda: _("Basic"), addBasicModel))
+# Forward & Reverse
+##########################################################################
+
+def addForwardReverse(col):
+ mm = col.models
+ m = addBasicModel(col)
+ m['name'] = _("Basic (and reversed card)")
+ t = mm.newTemplate(_("Card 2"))
+ t['qfmt'] = "{{"+_("Back")+"}}"
+ t['afmt'] = "{{FrontSide}}\n\n
\n\n"+"{{"+_("Front")+"}}"
+ mm.addTemplate(m, t)
+ return m
+
+models.append((lambda: _("Forward & Reverse"), addForwardReverse))
+
+# Forward & Optional Reverse
+##########################################################################
+
+def addForwardOptionalReverse(col):
+ mm = col.models
+ m = addBasicModel(col)
+ m['name'] = _("Basic (optional reversed card)")
+ fm = mm.newField(_("Add Reverse"))
+ mm.addField(m, fm)
+ t = mm.newTemplate(_("Card 2"))
+ t['qfmt'] = "{{#Add Reverse}}{{"+_("Back")+"}}{{/Add Reverse}}"
+ t['afmt'] = "{{FrontSide}}\n\n
\n\n"+"{{"+_("Front")+"}}"
+ mm.addTemplate(m, t)
+ return m
+
+models.append((lambda: _("Forward & Optional Reverse"), addForwardOptionalReverse))
+
# Cloze
##########################################################################
diff --git a/anki/storage.py b/anki/storage.py
index 098becc9f..eb87f7cdd 100644
--- a/anki/storage.py
+++ b/anki/storage.py
@@ -8,7 +8,8 @@ from anki.utils import intTime, ids2str, json
from anki.db import DB
from anki.collection import _Collection
from anki.consts import *
-from anki.stdmodels import addBasicModel, addClozeModel
+from anki.stdmodels import addBasicModel, addClozeModel, addForwardReverse, \
+ addForwardOptionalReverse
def Collection(path, lock=True, server=False, sync=True):
"Open a new or existing collection. Path must be unicode."
@@ -38,6 +39,8 @@ def Collection(path, lock=True, server=False, sync=True):
elif create:
# add in reverse order so basic is default
addClozeModel(col)
+ addForwardOptionalReverse(col)
+ addForwardReverse(col)
addBasicModel(col)
col.save()
if lock: