Anki is a smart spaced repetition flashcard program
Find a file
Damien Elmes ad743d850d start work on scheduling refactor
Previously we used getCard() to fetch a card at the time. This required a
number of indices to perform efficiently, and the indices were expensive in
terms of disk space and time required to keep them up to date. Instead we now
gather a bunch of cards at once.

- Drop checkDue()/isDue so writes are not necessary to the DB when checking
for due cards
- Due counts checked on deck load, and only updated once a day or at the end
of a session. This prevents cards from expiring during reviews, leading to
confusing undo behaviour and due counts that go up instead of down as you
review. The default will be to only expire cards once a day, which represents
a change from the way things were done previously.
- Set deck var defaults on deck load/create instead of upgrade, which should
fix upgrade issues
- The scheduling code can now have bits and pieces switched out, which should
make review early / cram etc easier to integrate
- Cards with priority <= 0 now have their type incremented by three, so we can
get access to schedulable cards with a single column.
- rebuildQueue() -> reset()
- refresh() -> refreshSession()
- Views and many of the indices on the cards table are now obsolete and will
  be removed in the future. I won't remove them straight away, so as to not
  break backward compatibility.
- Use bigger intervals between successive card templates, as the previous
intervals were too small to represent in doubles in some circumstances

Still to do:

- review early
- learn more
- failing mature cards where delay1 > delay0
2010-10-18 14:35:11 +09:00
anki start work on scheduling refactor 2010-10-18 14:35:11 +09:00
tests start work on scheduling refactor 2010-10-18 14:35:11 +09:00
tools Remove call to iterate over removed dir (features) 2009-06-15 20:02:38 +02:00
.gitignore auto-detect '=' as import delimiter, strip fields 2010-03-14 11:40:31 +01:00
ChangeLog.old initial commit from hg 2008-09-27 23:50:03 +09:00
COPYING allow bsd license rather than requiring people to sign over copyright 2010-08-11 14:40:34 +09:00
ez_setup.py initial commit from hg 2008-09-27 23:50:03 +09:00
setup.cfg initial commit from hg 2008-09-27 23:50:03 +09:00
setup.py strip samples & unihan from dist 2009-06-12 22:22:10 +09:00