shorten some queue options

This commit is contained in:
Damien Elmes 2011-03-27 22:00:36 +09:00
parent 5914761ff8
commit 2d6e9cc186
3 changed files with 18 additions and 14 deletions

View file

@ -24,9 +24,9 @@ defaultQconf = {
'newPerDay': 20, 'newPerDay': 20,
'newToday': [0, 0], # currentDay, count 'newToday': [0, 0], # currentDay, count
'newTodayOrder': NEW_TODAY_ORD, 'newTodayOrder': NEW_TODAY_ORD,
'newCardOrder': 1, 'newOrder': 1,
'newCardSpacing': NEW_CARDS_DISTRIBUTE, 'newSpread': NEW_CARDS_DISTRIBUTE,
'revCardOrder': REV_CARDS_RANDOM, 'revOrder': REV_CARDS_RANDOM,
'collapseTime': 600, 'collapseTime': 600,
} }
@ -217,7 +217,7 @@ qconf=?, conf=?, data=?""",
# notice any new tags # notice any new tags
self.registerTags(fact.tags) self.registerTags(fact.tags)
# if random mode, determine insertion point # if random mode, determine insertion point
if self.qconf['newCardOrder'] == NEW_CARDS_RANDOM: if self.qconf['newOrder'] == NEW_CARDS_RANDOM:
due = random.randrange(0, 1000000) due = random.randrange(0, 1000000)
else: else:
due = fact.id due = fact.id
@ -270,7 +270,7 @@ select id from facts where id not in (select distinct fid from cards)""")
"Generate cards for templates if cards not empty. Return cards." "Generate cards for templates if cards not empty. Return cards."
cards = [] cards = []
# if random mode, determine insertion point # if random mode, determine insertion point
if self.qconf['newCardOrder'] == NEW_CARDS_RANDOM: if self.qconf['newOrder'] == NEW_CARDS_RANDOM:
# if this fact has existing new cards, use their due time # if this fact has existing new cards, use their due time
due = self.db.scalar( due = self.db.scalar(
"select due from cards where fid = ? and queue = 0", fact.id) "select due from cards where fid = ? and queue = 0", fact.id)

View file

@ -175,7 +175,7 @@ queue = 0 %s order by due limit %d""" % (self._groupLimit('new'),
return id return id
def _updateNewCardRatio(self): def _updateNewCardRatio(self):
if self.deck.qconf['newCardSpacing'] == NEW_CARDS_DISTRIBUTE: if self.deck.qconf['newSpread'] == NEW_CARDS_DISTRIBUTE:
if self.newCount: if self.newCount:
self.newCardModulus = ( self.newCardModulus = (
(self.newCount + self.revCount) / self.newCount) (self.newCount + self.revCount) / self.newCount)
@ -189,9 +189,9 @@ queue = 0 %s order by due limit %d""" % (self._groupLimit('new'),
"True if it's time to display a new card when distributing." "True if it's time to display a new card when distributing."
if not self.newCount: if not self.newCount:
return False return False
if self.deck.qconf['newCardSpacing'] == NEW_CARDS_LAST: if self.deck.qconf['newSpread'] == NEW_CARDS_LAST:
return False return False
elif self.deck.qconf['newCardSpacing'] == NEW_CARDS_FIRST: elif self.deck.qconf['newSpread'] == NEW_CARDS_FIRST:
return True return True
elif self.newCardModulus: elif self.newCardModulus:
return self.deck.reps and self.deck.reps % self.newCardModulus == 0 return self.deck.reps and self.deck.reps % self.newCardModulus == 0
@ -326,7 +326,7 @@ select id from cards where
queue = 2 %s and due <= :lim order by %s limit %d""" % ( queue = 2 %s and due <= :lim order by %s limit %d""" % (
self._groupLimit("rev"), self._revOrder(), self.queueLimit), self._groupLimit("rev"), self._revOrder(), self.queueLimit),
lim=self.today) lim=self.today)
if self.deck.qconf['revCardOrder'] == REV_CARDS_RANDOM: if self.deck.qconf['revOrder'] == REV_CARDS_RANDOM:
random.shuffle(self.revQueue) random.shuffle(self.revQueue)
else: else:
self.revQueue.reverse() self.revQueue.reverse()
@ -344,7 +344,7 @@ queue = 2 %s and due <= :lim order by %s limit %d""" % (
def _revOrder(self): def _revOrder(self):
return ("ivl desc", return ("ivl desc",
"ivl", "ivl",
"due")[self.deck.qconf['revCardOrder']] "due")[self.deck.qconf['revOrder']]
# Answering a review card # Answering a review card
########################################################################## ##########################################################################
@ -651,7 +651,7 @@ queue = 2 %s and due <= :lim order by %s limit %d""" % (
def updateDynamicIndices(self): def updateDynamicIndices(self):
# determine required columns # determine required columns
required = [] required = []
if self.deck.qconf['revCardOrder'] in ( if self.deck.qconf['revOrder'] in (
REV_CARDS_OLD_FIRST, REV_CARDS_NEW_FIRST): REV_CARDS_OLD_FIRST, REV_CARDS_NEW_FIRST):
required.append("interval") required.append("interval")
cols = ["queue", "due", "gid"] + required cols = ["queue", "due", "gid"] + required
@ -682,7 +682,7 @@ queue = 2 %s and due <= :lim order by %s limit %d""" % (
# sql2 += " where cardId in "+sids # sql2 += " where cardId in "+sids
# self.db.execute(sql, now=time.time()) # self.db.execute(sql, now=time.time())
# self.db.execute(sql2) # self.db.execute(sql2)
# if self.qconf['newCardOrder'] == NEW_CARDS_RANDOM: # if self.qconf['newOrder'] == NEW_CARDS_RANDOM:
# # we need to re-randomize now # # we need to re-randomize now
# self.randomizeNewCards(ids) # self.randomizeNewCards(ids)

View file

@ -375,6 +375,10 @@ insert or replace into deck select id, cast(created as int), :t,
for k in keys: for k in keys:
db.execute("delete from deckVars where key=:k", k=k) db.execute("delete from deckVars where key=:k", k=k)
# copy other settings, ignoring deck order as there's a new default # copy other settings, ignoring deck order as there's a new default
qconf['newSpread'] = db.scalar(
"select newCardSpacing from decks")
qconf['newOrder'] = db.scalar(
"select newCardOrder from decks")
keys = ("newCardOrder", "newCardSpacing") keys = ("newCardOrder", "newCardSpacing")
for k in keys: for k in keys:
qconf[k] = db.scalar("select %s from decks" % k) qconf[k] = db.scalar("select %s from decks" % k)
@ -387,9 +391,9 @@ insert or replace into deck select id, cast(created as int), :t,
for k in keys: for k in keys:
conf[k] = db.scalar("select %s from decks" % k) conf[k] = db.scalar("select %s from decks" % k)
# random and due options merged # random and due options merged
qconf['revCardOrder'] = min(2, qconf['revCardOrder']) qconf['revOrder'] = 2
# no reverse option anymore # no reverse option anymore
qconf['newCardOrder'] = min(1, qconf['newCardOrder']) qconf['newOrder'] = min(1, qconf['newOrder'])
# add any deck vars and save # add any deck vars and save
dkeys = ("hexCache", "cssCache") dkeys = ("hexCache", "cssCache")
for (k, v) in db.execute("select * from deckVars").fetchall(): for (k, v) in db.execute("select * from deckVars").fetchall():