Commit graph

74 commits

Author SHA1 Message Date
Damien Elmes
54670580ad add option to limit deck tree counts to a particular node 2020-05-17 08:38:49 +10:00
Damien Elmes
8b57a61746 use deck tree for new/review count calculation
- wins back the performance lost by the decks and dconf not being
in memory, and the overhead of serializing data for DB calls
- card counts are no longer capped to 1000
- learn counts are currently still calculated separately - can't merge
v1 counts without changing the existing behaviour
- partially rendering the tree may yield more savings
2020-05-16 20:28:03 +10:00
Damien Elmes
5590b22683 speed up children() and add deck_and_child_ids() 2020-05-16 15:40:07 +10:00
Damien Elmes
2efda14200 rework and merge updateCutoff
- the old "mutate but don't save" approach to resetting the "done today"
counts no longer works, and was inefficient anyway - now we just check
the day when returning the count
- remove separate implementation for v1 scheduler

This is a stop-gap solution - a bigger refactor will need to wait
until the deck/note type changes have stabilized.
2020-05-16 15:14:16 +10:00
Damien Elmes
1cddd6d23e only update active when selecting deck/resetting
We were previously doing this every time a card was answered.
2020-05-16 14:57:46 +10:00
Damien Elmes
24dd116f91 update unit tests to use deck_due_tree() 2020-05-16 12:10:40 +10:00
Damien Elmes
f2086fc2e3 switch to new deck tree in deck browser
Saves us having to look up collapsed/filtered as we render, and gives
us type completion.
2020-05-16 10:52:14 +10:00
Damien Elmes
769bf04f75 remove unused deckDueList() and associated tree code
The progress bar add-ons appear to be the only active users of it;
they can switch their old code from iterating over the list to
simply locating the selected deck in deckDueTree(), as its counts should
summarize all the child decks.
2020-05-15 18:37:12 +10:00
Damien Elmes
9317cee9ba handle scheduling preferences in the backend 2020-05-12 21:13:34 +10:00
Damien Elmes
ea4f150455 fetch timing_today() params in backend 2020-05-12 21:13:34 +10:00
Damien Elmes
eee0d7e92f switch server back into a bool and rely on config 2020-05-12 21:13:34 +10:00
Damien Elmes
238441f2d9 use the backend for the deck due tree
- approx 3x faster on a large test deck
- counts are no longer capped to 1000 in the tree
2020-05-12 21:13:33 +10:00
Arthur Milchior
64bb71e5bd immediate_parent 2020-04-06 23:56:24 +02:00
Arthur Milchior
69a9425cd0 replace _path by path (because it's not private here) 2020-04-06 23:50:43 +02:00
Arthur Milchior
266c2022b5 uses _path where possible 2020-04-06 23:50:37 +02:00
Damien Elmes
fa2965d39a add a temporary cache to bring deck list performance back 2020-03-30 20:27:53 +10:00
Damien Elmes
35c03af520 split deck config into separate SQL table
- on collection load, the schema is upgraded to 12
- on collection close, the changes are reversed so older clients
can continue to open the collection
- in the future, we could potentially skip the reversal except
when exporting/doing a full sync
- the same approach should work for decks, note types and tags in the
future too
- the deck list code needs updating to cache the deck confs for the
life of the call
2020-03-30 20:01:16 +10:00
Damien Elmes
966eb666f0 fix v2 timing being returned for v1 users 2020-03-23 13:53:09 +10:00
Damien Elmes
cd9ceebd59 simplify how the local offset is passed around
- no need to store it in conf
- move local_minutes_west() call to collection
2020-03-23 13:52:52 +10:00
Damien Elmes
75b7ebb156 add back new_timezone_enabled(), as it's used in the prefs screen 2020-03-23 07:40:50 +10:00
zjosua
0b94eee97e Fill _lrnQueue with tuples, not lists 2020-03-22 11:49:40 +01:00
Damien Elmes
6c6817563e fix sync error introduced by 69d8cdd9ed 2020-03-22 17:32:34 +10:00
Damien Elmes
69d8cdd9ed use backend for v1 and v2 cutoff calculations
this should also fix the CI failures, which were happening because
the datetime module wasn't matching the shifted time.time()
2020-03-22 14:28:26 +10:00
Damien Elmes
5debd3e0f8 add the ability to provide a custom sort order; use backend for find 2020-03-21 07:55:21 +10:00
Damien Elmes
d0d6aa1433 drop usage of flushSched() 2020-03-20 21:15:23 +10:00
Damien Elmes
818401e464 remove remaining db kwargs 2020-03-20 21:15:23 +10:00
Damien Elmes
77cf7dd4b7 tweak db type hints 2020-03-20 21:15:23 +10:00
Damien Elmes
f4d4078537 drop named sql arguments 2020-03-20 21:15:23 +10:00
Damien Elmes
862e2b48f0 add col.weakref() and fix more reference cycles in pylib 2020-03-05 09:47:47 +10:00
Arthur Milchior
0c9de3b19c hooks for limit new/rev for a single deck 2020-03-04 16:11:13 +01:00
Arthur Milchior
c4b2ab96a6 single return in sched2 _deckRevLimitSingle 2020-03-04 16:07:15 +01:00
Damien Elmes
e95eea68ec remove a few more common methods 2020-03-04 21:33:44 +10:00
Damien Elmes
1c09d80558 add some type hints that were only in the v1 scheduler 2020-03-04 12:10:38 +10:00
Damien Elmes
ffe6ecf44c use weakref for backrefs so collection doesn't need to be garbage collected 2020-03-03 21:25:32 +10:00
Arthur Milchior
ab9999dbc9 countsIdx return a queue type.
I missed this constant before
2020-03-01 13:00:36 +01:00
Alan Du
7c971837ff Add some more types 2020-02-27 21:27:59 -05:00
Alan Du
2879dc1158 Type pylib/anki/schedv2.py 2020-02-27 19:27:32 -05:00
Damien Elmes
972aee5f7a add next learning due time + remaining count to congrats screen
https://anki.tenderapp.com/discussions/ankidesktop/38000-v2-scheduler-learning-cards
2020-02-21 19:54:50 +10:00
Damien Elmes
99c07cfdcb move answer_button_time to the backend, split sched into separate module 2020-02-21 15:29:38 +10:00
Damien Elmes
232a8625bf move answer button labels into fluent 2020-02-21 15:29:38 +10:00
Damien Elmes
ef7b0b1e82 don't error when fuzz is 0
https://anki.tenderapp.com/discussions/ankidesktop/38956-bug-report-sched2-anki2120
2020-02-18 11:00:26 +10:00
Arthur Milchior
35c8f21eb6 Reformatting through black 2020-02-04 08:47:36 -08:00
Arthur Milchior
957f0c8e8b QUEUE and TYPE day learn, relearn 2020-02-04 08:47:36 -08:00
Arthur Milchior
7b7b71c0e1 QUEUE_TYPE_PREVIEW 2020-02-04 08:47:36 -08:00
Arthur Milchior
45bf763238 QUEUE_TYPE_REV and CARD_TYPE_REV 2020-02-04 08:47:36 -08:00
Arthur Milchior
7d4506afdb QUEUE_TYPE_SUSPENDED 2020-02-04 08:47:36 -08:00
Arthur Milchior
9fc3f17f5c QUEUE_TYPE_SIBLING_BURIED 2020-02-04 08:47:36 -08:00
Arthur Milchior
4a21911d74 QUEUE_USER_BURIED 2020-02-04 08:47:36 -08:00
Arthur Milchior
69436643fe CARD_TYPE_LRN and QUEUE_TYPE_LRN 2020-02-04 08:47:35 -08:00
Arthur Milchior
a1cc0787d2 QUEUE_TYPE_NEW and CARD_TYPE_NEW 2020-02-03 02:24:37 -08:00