Damien Elmes
aecce5a516
fix mtime being bumped in .reset()
2020-06-01 13:57:10 +10:00
evandrocoan
ef5c38dbc6
Added super().__repr__() to new __repr__() calls
2020-05-31 19:39:19 -03:00
evandrocoan
1e216e47ed
Added __repr__ functions to common objects
2020-05-31 19:39:19 -03:00
Damien Elmes
38508c3ad7
use keyword args for calls with more than one argument
2020-05-24 09:12:47 +10:00
Damien Elmes
6710e3d528
add some more newtypes to the RPC defs
2020-05-23 16:58:01 +10:00
Damien Elmes
7550e6241c
migrate decks and dconf methods
2020-05-23 15:09:16 +10:00
Damien Elmes
081a61a438
more methods
2020-05-23 14:01:36 +10:00
Damien Elmes
175afa9fee
migrate more methods to service
2020-05-22 22:09:33 +10:00
Damien Elmes
0bf4fe400a
fix deletion of decks; allow deleting cards from default
...
https://anki.tenderapp.com/discussions/beta-testing/1967-2126-189-g7384df8f-crash-at-note-types-fields-save#comment_48353232
2020-05-22 11:24:56 +10:00
Damien Elmes
9baa8530d5
move deck/notetype update hooks to gui
...
We need to migrate away from firing hooks in libanki, since libanki
methods may be running on a background thread, and hook consumers
typically expect the code to run in the main thread. We could document
it, but it would frequently be forgotten about, and could lead to
crashes.
https://anki.tenderapp.com/discussions/ankidesktop/41748-qobject-cannot-create-children-for-a-parent-that-is-in-a-different-thread-when-hitting-the-save-button-on-clayoutpy-window
2020-05-22 10:47:14 +10:00
Damien Elmes
50fdf9b03d
storage->collection
2020-05-20 17:58:28 +10:00
Damien Elmes
69537bb748
minor tidyups in decks.py
2020-05-17 20:13:29 +10:00
Damien Elmes
7daa417dc8
fix renaming corner cases and decks.update()
...
- .update() should update a single deck and preserve usn by default,
as that's what existing code expects
- decks are automatically renamed when they conflict with an existing
name
2020-05-17 19:07:15 +10:00
Damien Elmes
df48fa8cf7
handle deletion of default deck in backend; use + instead of _
2020-05-17 15:22:19 +10:00
Damien Elmes
252eb3a444
fix shared deck conf warning
2020-05-17 14:37:59 +10:00
Damien Elmes
b9b837e7bd
update before_upload()
2020-05-17 14:13:21 +10:00
Damien Elmes
5590b22683
speed up children() and add deck_and_child_ids()
2020-05-16 15:40:07 +10:00
Damien Elmes
bd1ce123af
formatting
2020-05-16 14:59:47 +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
8eada2b57d
add find_deck_in_tree()
2020-05-16 13:05:20 +10:00
Damien Elmes
4d5908dc20
remove unused default(Dynamic)Deck
2020-05-15 21:47:33 +10:00
Damien Elmes
964a69e54e
handle default deck and filtered deck suppression in the backend
2020-05-15 21:21:10 +10:00
Damien Elmes
68fdd651e5
remove dconf cache
2020-05-12 21:13:33 +10:00
Damien Elmes
5fb5338d97
add missing decks in backend
...
- need to compare parents with unicode case folding
- duplicate check enforced by the DB
2020-05-12 21:13:33 +10:00
Damien Elmes
a88bc1e836
speed up browser load by rendering deck tree in Rust and skipping counts
2020-05-12 21:13:33 +10:00
Damien Elmes
f592672fa9
add separate decks table, and start on moving deck handling to Rust
...
The Python tests are passing, but there are still a number of issues
to work through, and the table/protobuf schema is not yet finalized.
2020-05-12 21:13:33 +10:00
Damien Elmes
94d369db18
if conf points to an invalid configuration, fall back on default
2020-04-30 11:45:13 +10:00
Damien Elmes
7f2610568a
Revert "remove unused decks.count()"
...
This reverts commit c79b6835bf
.
c79b6835bf
2020-04-13 19:26:12 +10:00
Damien Elmes
c79b6835bf
remove unused decks.count()
2020-04-10 10:25:31 +10:00
Damien Elmes
4c7210b430
(de)serialize decks in backend
2020-04-09 12:41:59 +10:00
Arthur Milchior
64bb71e5bd
immediate_parent
2020-04-06 23:56:24 +02:00
Arthur Milchior
285e9280cf
immediate_parent_path
2020-04-06 23:55:17 +02:00
Arthur Milchior
bda2935de1
_basename to basename, since it's not private in use
2020-04-06 23:51:50 +02:00
Arthur Milchior
5315b717c0
_basename used where possible
2020-04-06 23:51:42 +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
Arthur Milchior
5d55c4cda2
Sort decks according to their paths
...
Currently it's sorted alphabetically. Because of this, "A::B" appears
between "A9" and "AA" in list of decks.
2020-04-06 22:49:25 +02:00
Arthur Milchior
77741977a1
make _path static
2020-04-06 22:45:30 +02:00
Damien Elmes
676f4e74a8
store config in separate DB table
...
- mtime is tracked on each key individually, which will allow
merging of config changes when syncing in the future
- added col.(get|set|remove)_config()
- in order to support existing code that was mutating returned
values (eg col.conf["something"]["another"] = 5), the returned list/dict
will be automatically wrapped so that when the value is dropped, it
will save the mutated item back to the DB if it's changed. Code that
is fetching lists/dicts from the config like so:
col.conf["foo"]["bar"] = baz
col.setMod()
will continue to work in most case, but should be gradually updated to:
conf = col.get_config("foo")
conf["bar"] = baz
col.set_config("foo", conf)
2020-04-06 15:39:47 +10:00
Arthur Milchior
7365b93c1a
Remove useless recursion in DeckManager.rem
...
For any deck the children of it's children are its children. So
applying rem to children of children is useless and actually slightly
costly for deep subdecks
2020-04-05 11:33:23 +02:00
Damien Elmes
ac4284b2de
update tag handling
...
- tag list stored in a separate DB table
- non-wildcard searches now do full unicode case folding
(eg tag:masse matches 'Maße')
- wildcard matches do simple unicode case folding
- some functions haven't been updated yet, so ascii folding will
continue to be used in some operations
2020-04-03 19:34:46 +10:00
Damien Elmes
333d0735ff
preserve mtime/usn when syncing deck config, and add snake_case names
2020-04-03 19:34:46 +10:00
Damien Elmes
d5f6d8b476
set col mod explicitly in decks.select()
2020-04-03 19:34:46 +10:00
Damien Elmes
c57801c168
tolerate string values in deck["conf"]
2020-04-01 19:36:40 +10:00
Damien Elmes
d342955830
remove defaultConf
2020-04-01 17:36:46 +10: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
004cc2b5f8
move deck conf handling to backend
2020-03-30 14:39:46 +10:00
Damien Elmes
862e2b48f0
add col.weakref() and fix more reference cycles in pylib
2020-03-05 09:47:47 +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