Damien Elmes
e737eb3088
is_stale() doesn't need to be passed deck
...
Deck changes will trigger a queue rebuild via requires_study_queue_rebuild()
2021-05-12 09:44:10 +10:00
Damien Elmes
49a1580566
use new API for test scheduler
...
Avoids duplicate work, and is a step towards allowing the next
states to be modified by third-party code.
Also:
- fixed incorrect underlined count, due to reviews being labeled as
learning cards
- fixed reviewer not refreshing when undoing a test review, by splitting
up backend queue rebuilding from frontend reviewer refresh
- moved answering into a CollectionOp
2021-05-11 13:06:03 +10:00
Damien Elmes
6775002709
better leech tag handling for test scheduler
2021-05-10 14:58:04 +10:00
Damien Elmes
3736e63a57
expose step counter and undone op changes in hook
2021-05-08 17:51:36 +10:00
Damien Elmes
e9e1edc64d
move action names out of undo.ftl into actions.ftl
2021-05-08 17:11:54 +10:00
Damien Elmes
dfba66faa9
update Rust deps
2021-05-07 18:22:27 +10:00
Damien Elmes
d878de54c0
default to the v2 scheduler in new collections
...
ported from 53d9433d94
2021-05-06 19:09:28 +10:00
Damien Elmes
be994f4102
add support for custom undo steps, and merging multiple actions
...
Allows add-on authors to define their own label for a group of undoable
operations. For example:
def mark_and_bury(
*,
parent: QWidget,
card_id: CardId,
) -> CollectionOp[OpChanges]:
def op(col: Collection) -> OpChanges:
target = col.add_custom_undo_entry("Mark and Bury")
col.sched.bury_cards([card_id])
card = col.get_card(card_id)
col.tags.bulk_add(note_ids=[card.nid], tags="marked")
return col.merge_undo_entries(target)
return CollectionOp(parent, op)
The .add_custom_undo_entry() is for adding your own custom actions.
When extending a standard Anki action, instead store `target =
col.undo_status().last_step` after executing the standard operation.
This started out as a bigger refactor that required a separate
.commit_undoable() call to be run after each operation, instead of
having each operation return changes directly. But that proved to be
somewhat cumbersome in unit tests, and ran the risk of unexpected
behaviour if the caller invoked an operation without remembering to
finalize it.
2021-05-06 16:39:06 +10:00
Damien Elmes
0fb745cdb9
add a valid, empty file so the check action works in Rust Analyzer
2021-05-05 15:53:27 +10:00
Damien Elmes
abab4826bb
support undo for (renamed) unbury_deck() action
2021-04-30 20:03:20 +10:00
Damien Elmes
d0f3007fad
remove some unneeded transactions from tests
2021-04-30 19:18:02 +10:00
Damien Elmes
449e3cc79d
fix invalid outer transaction in clear_unused_tags()
2021-04-30 19:09:02 +10:00
Damien Elmes
cfb2a382b1
empty/restore media trash shouldn't clear undo
2021-04-30 19:07:30 +10:00
Damien Elmes
9a46ad6352
undoing of notetype fields
...
- fix stale cache issue
- update add cards screen in response to op changes
2021-04-30 17:15:59 +10:00
Damien Elmes
ea758f0092
update GUI to allow notetype addition undo
...
- backend now updates current notetype as part of addition
- frontend no longer implicitly adds, so we can assign a new name and
add in a single operation
2021-04-30 15:58:08 +10:00
Damien Elmes
2ff8c20686
update backend to support undoing of notetype changes
2021-04-30 12:54:59 +10:00
Damien Elmes
9d604f1ad0
make it more ergonomic to search directly via nodes in Rust
2021-04-30 11:37:55 +10:00
Damien Elmes
2902b64e82
move note/card removal for notetype out of storage layer
2021-04-29 19:44:09 +10:00
Damien Elmes
57eab0e33d
make config prefix removal undoable
2021-04-29 19:16:02 +10:00
Damien Elmes
610f0b5254
use aux var when retrieving last deck for notetype
...
The adding case was already covered by defaults_for_adding(), but we
the code was using the old variable when adding new cards to an existing
note.
2021-04-29 19:15:27 +10:00
Damien Elmes
b160c2d85c
move pub functions to top of notetype/mod.rs
2021-04-29 15:32:59 +10:00
Damien Elmes
86cf8949ea
move pub functions to top of notes/mod.rs
2021-04-29 14:08:15 +10:00
Damien Elmes
07b5c35e90
confirm deletion is requiring a full sync
2021-04-28 22:21:16 +10:00
Damien Elmes
b22e851137
add some unit tests to deck config updating
2021-04-28 22:00:39 +10:00
Damien Elmes
a95cbb8515
DeckConfId -> DeckConfigId
2021-04-28 21:09:26 +10:00
Damien Elmes
1df86b28e8
sort deck on config update; fix id not being updated after deletion
2021-04-28 21:08:09 +10:00
Damien Elmes
92e4de16cf
report pinned package issues upstream
2021-04-27 23:11:22 +10:00
Damien Elmes
cf2613e869
update Rust deps
...
- tokio 1.0
- updated reqwest, thanks to Rumo
- other minor dep updates
the reqwest build file has been split into two, as it was awkward
to manually update the combined file, and the platform gate is now
on the target in rslib/
2021-04-27 22:18:12 +10:00
Damien Elmes
f6a1a35113
update translations
2021-04-25 22:06:05 +10:00
Damien Elmes
30f5269304
hook new deck config screen up behind an env var
2021-04-22 10:59:16 +10:00
Damien Elmes
fd81700679
deckconf -> deckconfig
2021-04-20 21:54:24 +10:00
Damien Elmes
b448afdc57
change detection needs to ignore collection mtime bump
2021-04-20 19:52:47 +10:00
Damien Elmes
42d5d8071d
check if deck changed before saving
2021-04-20 19:50:31 +10:00
Damien Elmes
4d1cedc8b2
implement deck config updating
2021-04-20 14:57:44 +10:00
Damien Elmes
4d4603c078
remove some imports duplicated by prelude
2021-04-19 18:22:43 +10:00
Damien Elmes
2cc23ce2bc
Merge pull request #1138 from RumovZ/introduced
...
Add search keyword for "first review in x days"
2021-04-19 18:22:15 +10:00
RumovZ
cac507b979
Use arg name instead of repeating it in format!()
2021-04-19 08:58:33 +02:00
RumovZ
194d251004
Use timestamp adding for writing cutoff
2021-04-19 08:44:13 +02:00
RumovZ
11cd1d9a26
Add sql condition for speedup in write_introduced
2021-04-19 08:43:32 +02:00
RumovZ
3cecc7157b
Add sidebar filter "first review today"
2021-04-18 13:27:10 +02:00
RumovZ
e274ff26ab
Add sqlwriter test for introduced
2021-04-18 12:32:02 +02:00
RumovZ
699437df0f
Add cutoff_in_secs_from_days() helper method
2021-04-18 12:25:44 +02:00
RumovZ
5ec2e11de3
Add search keyword introduced
...
Filters for cards that had their first review within the last x days.
2021-04-18 12:14:18 +02:00
Damien Elmes
64ebc32b3d
tidy up Rust imports
...
rustfmt can do this automatically, but only when run with a nightly
toolchain, so it needs to be manually done for now - see rslib/rusfmt.toml
2021-04-18 18:38:54 +10:00
Damien Elmes
262b50445c
start on making deck config and schema/mod changes undoable
...
+ move timestamps into a struct in a separate file for convenience
2021-04-18 17:33:12 +10:00
Damien Elmes
76eb119870
add schema change prompt to removal, tweak return struct
2021-04-18 17:33:12 +10:00
RumovZ
fece39ca74
Maybe normalize name when preparing deck update
2021-04-18 09:16:43 +02:00
RumovZ
5e3e194289
Remove redundant imports
2021-04-18 08:43:46 +02:00
Damien Elmes
e71f7714ad
as_str() -> as_native_str()
2021-04-18 09:33:39 +10:00
Damien Elmes
1acc679e8f
hide NativeName inner value, and require explicit accessors
2021-04-18 09:29:35 +10:00