make sure due forecast returns 0 for empty days

This commit is contained in:
Damien Elmes 2011-03-23 10:40:42 +09:00
parent e407697fb9
commit 765720b928

View file

@ -39,6 +39,7 @@ class Scheduler(object):
self._resetNew() self._resetNew()
def answerCard(self, card, ease): def answerCard(self, card, ease):
assert ease >= 1 and ease <= 4
if card.queue == 0: if card.queue == 0:
# put it in the learn queue # put it in the learn queue
card.queue = 1 card.queue = 1
@ -57,14 +58,21 @@ class Scheduler(object):
def dueForecast(self, days=7): def dueForecast(self, days=7):
"Return counts over next DAYS. Includes today." "Return counts over next DAYS. Includes today."
return self.db.list(""" daysd = dict(self.db.all("""
select count() from cards select due, count() from cards
where queue = 2 %s where queue = 2 %s
and due between ? and ? and due between ? and ?
group by due group by due
order by due""" % self._groupLimit("rev"), order by due""" % self._groupLimit("rev"),
self.today, self.today,
self.today+days-1) self.today+days-1))
for d in range(days):
d = self.today+d
if d not in daysd:
daysd[d] = 0
# return in sorted order
ret = [x[1] for x in sorted(daysd.items())]
return ret
def countIdx(self, card): def countIdx(self, card):
return card.queue return card.queue