add countdown timer, tweak study options page, fix bug with last 10 mins

This commit is contained in:
Damien Elmes 2009-01-07 08:51:16 +09:00
parent b2bb7c4288
commit ca48ca155d
2 changed files with 23 additions and 19 deletions

View file

@ -978,13 +978,15 @@ day = :d""", d=yesterday)
dchange = str(dchange)
h['repsToday'] = '<font color=#007700>%s</font>' % dtoday
h['repsTodayChg'] = '<font color=#007700>(%s)</font>' % dchange
start = self.deck.sessionStartTime or time.time() - 600
start2 = self.deck.lastSessionStart or start - 600
last10 = self.deck.s.scalar(
"select count(*) from reviewHistory where time > :t",
t=time.time()-600)
"select count(*) from reviewHistory where time >= :t",
t=start)
last20 = self.deck.s.scalar(
"select count(*) from reviewHistory where "
"time > :t and time < :t2",
t=time.time()-1200, t2=time.time()-600)
"time >= :t and time < :t2",
t=start2, t2=start)
change = last10 - last20
if change >= 0:
change = "+%d" % change
@ -995,28 +997,28 @@ day = :d""", d=yesterday)
ttoday = s['dReviewTime']
change = ttoday - tyest
if change >= 0:
change = "+%s" % anki.utils.fmtTimeSpan(change, short=True)
change = "+%s" % anki.utils.fmtTimeSpan(change, short=True, point=1)
else:
change = anki.utils.fmtTimeSpan(change, short=True)
change = anki.utils.fmtTimeSpan(change, short=True, point=1)
h['timeToday'] = '<font color=#007700>%s</font>' % (
anki.utils.fmtTimeSpan(ttoday, short=True))
anki.utils.fmtTimeSpan(ttoday, short=True, point=1))
h['timeTodayChg'] = '<font color=#007700>(%s)</font>' % change
self.mainWin.optionsLabel.setText(top + _("""\
<p>
<table width=300>
<tr><td>
<table>
<tr><td>Reps done today:</td><td><b>%(repsToday)s</b></td>
<td align=right>%(repsTodayChg)s</td></tr>
<tr><td>Reps in last 10 mins:</td><td><b>%(repsIn10)s</b></td>
<tr><td>Reps (10 mins):&nbsp;&nbsp;</td><td><b>%(repsIn10)s</b></td>
<td align=right>%(repsIn10Chg)s</td></tr>
<tr><td>Total time today:</td><td><b>%(timeToday)s</b></td>
<tr><td>Reps (today):</td><td><b>%(repsToday)s</b></td>
<td align=right>%(repsTodayChg)s</td></tr>
<tr><td>Time (today):</td><td><b>%(timeToday)s</b></td>
<td align=right>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;%(timeTodayChg)s</td></tr>
</table></td>
<td><table>
<tr><td>Lapsed due:</td><td align=right><b>%(lapsed)s</b></td></tr>
<tr><td>Retained due:</td><td align=right><b>%(ret)s</b></td></tr>
<tr><td>New due:</td><td align=right><b>%(new)s</b></td></tr>
<tr><td>Failed:</td><td align=right><b>%(lapsed)s</b></td></tr>
<tr><td>Review:&nbsp;&nbsp;&nbsp;</td><td align=right><b>%(ret)s</b></td></tr>
<tr><td>New:</td><td align=right><b>%(new)s</b></td></tr>
</table></td></tr></table>""") % h)
# start reviewing button
self.mainWin.buttonStack.setCurrentIndex(3)
@ -1948,4 +1950,3 @@ Consider backing up your media directory first."""))
def setupMisc(self):
if time.time() - self.config['created'] < 60 and self.deck:
self.config['created'] = self.deck.created
print (time.time() - self.deck.created) / 60.0 / 60.0 / 24.0

View file

@ -233,10 +233,13 @@ You should aim to answer each question within<br>
return
if self.main.state in ("showQuestion", "showAnswer"):
if self.main.currentCard:
t = self.main.currentCard.thinkingTime()
if t < 60:
self.timer.setText('00:%02d' % t)
if self.main.deck.sessionStartTime:
t = time.time() - self.main.deck.sessionStartTime
t = self.main.deck.sessionTimeLimit - t
else:
self.timer.setText('01:00')
t = self.main.currentCard.thinkingTime()
if t < 0:
t = 0
self.timer.setText('%02d:%02d' % (t/60, t%60))
return
self.timer.setText("00:00")