diff --git a/anki/collection.py b/anki/collection.py
index 6c3c8a296..d5b4e9dd7 100644
--- a/anki/collection.py
+++ b/anki/collection.py
@@ -45,6 +45,7 @@ defaultConf = {
'sortType': "noteFld",
'sortBackwards': False,
'addToCur': True, # add new to currently selected deck?
+ 'dayLearnFirst': False,
}
# this is initialized by storage.Collection
diff --git a/anki/schedv2.py b/anki/schedv2.py
index 8325ad22a..ac78f03be 100644
--- a/anki/schedv2.py
+++ b/anki/schedv2.py
@@ -304,23 +304,34 @@ order by due""" % self._deckLimit(),
c = self._getLrnCard()
if c:
return c
+
# new first, or time for one?
if self._timeForNewCard():
c = self._getNewCard()
if c:
return c
+
+ # day learning first and card due?
+ dayLearnFirst = self.col.conf.get("dayLearnFirst", False)
+ c = dayLearnFirst and self._getLrnDayCard()
+ if c:
+ return c
+
# card due for review?
c = self._getRevCard()
if c:
return c
+
# day learning card due?
- c = self._getLrnDayCard()
+ c = not dayLearnFirst and self._getLrnDayCard()
if c:
return c
+
# new cards left?
c = self._getNewCard()
if c:
return c
+
# collapse or finish
return self._getLrnCard(collapse=True)
diff --git a/aqt/preferences.py b/aqt/preferences.py
index 4f6e8eb89..33cdb9b16 100644
--- a/aqt/preferences.py
+++ b/aqt/preferences.py
@@ -83,8 +83,9 @@ class Preferences(QDialog):
f.newSpread.addItems(list(c.newCardSchedulingLabels().values()))
f.newSpread.setCurrentIndex(qc['newSpread'])
f.useCurrent.setCurrentIndex(int(not qc.get("addToCur", True)))
-
-
+ f.dayLearnFirst.setChecked(qc.get("dayLearnFirst", False))
+ if self.mw.col.schedVer() != 2:
+ self.dayLearnFirst.setVisible(False)
def updateCollection(self):
f = self.form
@@ -97,6 +98,7 @@ class Preferences(QDialog):
qc['timeLim'] = f.timeLimit.value()*60
qc['collapseTime'] = f.lrnCutoff.value()*60
qc['addToCur'] = not f.useCurrent.currentIndex()
+ qc['dayLearnFirst'] = f.dayLearnFirst.isChecked()
self._updateDayCutoff()
d.setMod()
@@ -109,7 +111,6 @@ class Preferences(QDialog):
else:
self._setupDayCutoffV1()
-
def _setupDayCutoffV1(self):
self.startDate = datetime.datetime.fromtimestamp(self.mw.col.crt)
self.form.dayOffset.setValue(self.startDate.hour)
diff --git a/designer/preferences.ui b/designer/preferences.ui
index 7efd5e8bd..45ff8e9e0 100644
--- a/designer/preferences.ui
+++ b/designer/preferences.ui
@@ -85,6 +85,13 @@
+ -
+
+
+ Show learning cards with larger steps before reviews
+
+
+
-
-
@@ -437,18 +444,19 @@
showProgress
pastePNG
nightMode
+ dayLearnFirst
useCurrent
newSpread
dayOffset
lrnCutoff
timeLimit
- syncMedia
- syncOnProgramOpen
- syncDeauth
- numBackups
buttonBox
+ numBackups
+ syncOnProgramOpen
tabWidget
fullSync
+ syncMedia
+ syncDeauth