Commit graph

44 commits

Author SHA1 Message Date
Damien Elmes
e3dd736460 add ability to update fields when importing 2010-11-26 01:36:24 +09:00
Damien Elmes
6ec898ca4b Require explicit reset for most queue-modifying functions
When you call operations like deleteCards(), suspendCards() and so on, it is
now necessary to call deck.reset() afterwards. This allows the calling code to
delay a reset if necessary. If the calling code calls a function that says the
caller must reset, the caller should be sure to call .reset() and fetch the
current card again. Failure to do the latter will result in answerCard()
attempting to remove the card from the queue, when the queue has been cleared.
2010-11-23 17:41:36 +09:00
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
Damien Elmes
593a1e75b0 update unit test for new sync behaviour 2010-08-19 11:32:00 +09:00
Damien Elmes
60c76c93ff don't backup in unit tests 2010-02-20 10:03:47 +09:00
Damien Elmes
7bc81c81bb truncate supermemo tests to avoid any possible license concerns 2010-02-18 16:53:29 +09:00
Damien Elmes
095a7dbb6f implement save as without attaching a db
Attaching new to old causes old to be implicitly commited.
We also can't access old from new if a write lock has been
taken out, so the only option left is to move all the data
through Python and take the speed hit.
2010-02-09 01:27:49 +09:00
Rick Gruber-Riemer
4971069856 Added importing for DingsBums?! decks 2009-11-08 14:39:09 +09:00
Damien Elmes
1006943d8e SuperMemo import fix from Petr
Fix supermemo import of Q&A part in escaped html. Supermemo 2004/2006 export
can contain unescaped chars > or < that confuse beautifulsoap library. Switch
autocreation of tags from all titles to True.
2009-07-26 12:38:36 +09:00
Damien Elmes
fe99ff7518 add supermemo importer from Petr Michalec 2009-07-09 23:03:23 +09:00
Damien Elmes
34879181d2 use .anki ext in unit tests 2009-06-25 14:57:14 +09:00
Damien Elmes
3d81181323 bulk media support -> local media copy, always send media table 2009-06-19 11:50:31 +09:00
Damien Elmes
e62967ecb1 switch to python csv 2009-06-18 05:21:47 +09:00
Damien Elmes
2d32e1aaa1 strip all chinese/japanese support out in favour of plugins 2009-06-10 22:58:28 +09:00
Damien Elmes
05ad863e18 remove print statement from tests 2009-06-06 01:12:26 +09:00
Damien Elmes
8a19bd4c57 implement full sync uploading 2009-05-31 01:23:31 +09:00
Damien Elmes
df0e4d2446 ensure tags are synced properly in one way sync 2009-05-21 02:11:33 +09:00
Damien Elmes
6a836e5680 fix attachOld test 2009-04-11 01:08:04 +09:00
Damien Elmes
c7f9cec657 add deck vars 2009-04-07 11:55:08 +09:00
Damien Elmes
36825006d0 new search interface, support negating tags, use tag: not t: 2009-04-06 11:41:50 +09:00
Damien Elmes
95b8d655e6 remove shared cache mode, it's not needed 2009-03-18 22:45:43 +09:00
Damien Elmes
af176921df fix reviewHistory unit test 2009-03-15 02:12:14 +09:00
Damien Elmes
77a6488f6d when importing, tag cards as new, add unit test 2009-02-14 03:03:42 +09:00
Damien Elmes
231b5fe9e7 only use failedcardmax with 'soon' failed card setting, fix tag unit test 2009-02-10 13:22:45 +09:00
Damien Elmes
d44c3792e9 model changing support 2009-02-04 20:43:54 +09:00
Damien Elmes
ff4cc7b0af add importing tag support, fix audio 2009-01-17 22:36:14 +09:00
Damien Elmes
75d6123dc3 identify temp files as anki, quiet lame 2009-01-17 16:29:45 +09:00
Damien Elmes
dd5e7c45b4 make sure field & card models are not duplicated 2009-01-14 15:35:16 +09:00
Damien Elmes
93332079b5 add model copy support 2009-01-14 15:28:27 +09:00
Damien Elmes
7c764763d2 sqlalchemy 0.5 compat 2009-01-07 11:37:01 +09:00
Damien Elmes
9765fdae73 support media for memory backed files 2009-01-04 07:40:32 +09:00
Damien Elmes
c973c1eb4f new decks now default to in-memory storage until saveas
- undo needs fixing
- media support needs to be changed to work with in-memory db
2009-01-04 07:13:30 +09:00
Damien Elmes
4a22f5b6e7 fix a unit test now that back is not required/unique 2009-01-04 05:41:28 +09:00
Damien Elmes
8c9f883e68 dupe fact on add to avoid session issues 2008-12-07 11:38:35 +09:00
Damien Elmes
6726888537 fix unit tests 2008-12-03 19:44:55 +09:00
Damien Elmes
21b59408cd refactor features to use hooks, update stdmodels, update findTags()
- remove description from fields, cards and models
- remove features and use field names instead
2008-12-03 19:22:15 +09:00
Damien Elmes
e1d3f791f5 do need to rebuild counts on export 2008-11-21 15:46:17 +09:00
Damien Elmes
cdd2be3548 fix unit test, badstatusline error 2008-11-14 14:03:47 +09:00
Damien Elmes
e9dc034b9a add refs to relativeDelay again 2008-11-08 20:05:39 +09:00
Damien Elmes
b2d0e5d3df wip 2008-11-07 18:44:49 +09:00
Damien Elmes
e25feed0af support 4am rollover 2008-10-12 04:02:33 +09:00
Damien Elmes
e69522f120 ensure order of received cards 2008-10-06 18:41:50 +09:00
Damien Elmes
472eb4581a public decks wip 2008-10-04 14:48:23 +09:00
Damien Elmes
5da3a0f5d3 initial commit from hg 2008-09-27 23:50:03 +09:00