Commit graph

1589 commits

Author SHA1 Message Date
RumovZ
42f55fc30a Unconditionally import static media 2022-04-15 12:13:37 +02:00
RumovZ
7af0b08375 Fix parent deck gathering 2022-04-15 11:25:48 +02:00
RumovZ
f0cc027db6 Merge remote-tracking branch 'upstream/HEAD' into apkg 2022-04-15 08:57:07 +02:00
RumovZ
8ccadd96e6
Store last position when scheduling as review (#1800) 2022-04-14 18:53:58 +10:00
RumovZ
4c79a1d969 Merge branch 'main' into apkg 2022-04-13 09:50:27 +02:00
RumovZ
71e6292f8d Maybe upgrade scheduler of apkg 2022-04-11 09:10:08 +02:00
RumovZ
251bfc4920 Factor out media importing 2022-04-11 08:44:18 +02:00
RumovZ
fe878dcdc8 Factor out note importing 2022-04-11 08:28:10 +02:00
RumovZ
a7278836d4 Factor out card importing
Also handle missing parents .
2022-04-10 16:07:35 +02:00
RumovZ
a402879e72 Refactor card and revlog importing 2022-04-10 11:03:46 +02:00
RumovZ
8348240f80 Factor out card importing 2022-04-10 10:36:42 +02:00
RumovZ
e1899152be Fix importing cards/revlog
Card ids are manually uniquified.
2022-04-10 09:22:41 +02:00
Damien Elmes
51a0641bba Sort field change without field change should mark schema modified
Closes #1789
2022-04-10 08:52:55 +10:00
RumovZ
126a92c239 Handle card due dates and original due/did 2022-04-09 23:42:05 +02:00
RumovZ
a528106af0 Keep source ids of imported deck configs (or skip) 2022-04-09 15:52:23 +02:00
RumovZ
7798b78c7d Wrap apkg import in transaction 2022-04-09 15:35:16 +02:00
RumovZ
1ba5444d7d Make adding notetype with id undoable 2022-04-09 12:31:23 +02:00
RumovZ
2a15ba5404 Try to keep source ids of imported notes 2022-04-09 11:40:36 +02:00
RumovZ
5a76d2211a Keep source ids of imported revlog (or skip) 2022-04-09 10:17:28 +02:00
RumovZ
a0604a2e51 Keep source id of imported cards (or skip) 2022-04-09 09:49:36 +02:00
RumovZ
4a6767b1fc
Implicitly group when joining searches (#1759)
* Implicitly group when joining searches

* Allow joining search types directly

* Test search joining

* Add comment for future selves (dae)

* Add one more assert that shows nested grouping (dae)

* Join user searches without grouping again

* Flatten a few clauses in custom study (dae)
2022-04-09 13:22:27 +10:00
Abdo
964f0a5763
Add relative overdueness to review order (#1757)
* Add relative overdueness to review order

* Add test for relative overdue
2022-04-09 13:20:09 +10:00
RumovZ
726438d1c5 Add roundtrip test for apkg (stub) 2022-04-08 22:09:45 +02:00
RumovZ
fef4a6d6fe Test new functions in text.rs 2022-04-08 22:06:54 +02:00
RumovZ
44d727a693 Fix search_cards_of_notes_into_table() 2022-04-08 19:15:20 +02:00
RumovZ
d6134748f2 Fix signature of import_apkg() 2022-04-08 18:57:01 +02:00
RumovZ
468c0286f9 Use dyn instead of generic for media_fn
Otherwise, would have to pass None with type annotation in the default
case.
2022-04-08 18:46:40 +02:00
RumovZ
08791e24fc Add import_cards(), import_revlog() 2022-04-08 18:12:37 +02:00
RumovZ
ffdd8b741e Add import_deck_configs() 2022-04-08 10:52:12 +02:00
RumovZ
7520afd9c5 decks_configs → deck_configs 2022-04-08 10:41:33 +02:00
RumovZ
5cf1705784 Add import_decks() 2022-04-08 10:34:49 +02:00
RumovZ
48bc6627b1 Note id, not guid of conflicting notes 2022-04-07 21:08:17 +02:00
RumovZ
94a6cdd6ed Add notes immediately instaed of preparing 2022-04-07 20:49:42 +02:00
RumovZ
b9c19273fc Move target_col into Context 2022-04-07 19:04:24 +02:00
RumovZ
9527322231 Add notetypes immediately instaed of preparing 2022-04-07 18:58:11 +02:00
RumovZ
5bfd47e415 Add trait to keep down cow boilerplate 2022-04-07 16:01:01 +02:00
RumovZ
cd4865dd18 Handle encoding in replace_media_refs() 2022-04-07 12:51:26 +02:00
RumovZ
7583a7e6b3 Prepare media based on checksums
- Ensure all existing media files are hashed.
- Hash incoming files during preparation to detect conflicts.
- Uniquify names of conflicting files with hash (not notetype id).
- Mark media files as used while importing notes.
- Finally copy used media.
2022-04-07 12:45:02 +02:00
RumovZ
a0085e7fd4 Add SafeMediaEntry for deserialized MediaEntries 2022-04-06 23:21:32 +02:00
RumovZ
efde7c7acc Refactor import-export/package
- Move media and meta code into appropriate modules.
- Normalize/check for normalization when deserializing media entries.
2022-04-06 18:02:02 +02:00
RumovZ
80dc3ae99e Fix due dates in days for apkg export 2022-04-06 12:31:29 +02:00
RumovZ
6836da07ec Start on apkg importing on backend 2022-04-05 18:15:51 +02:00
Damien Elmes
4673fb5fe4 Colpkg import now marks collection as modified
Addresses a corner case where a backup is imported into an
unchanged collection, resulting in the sync indicator showing a full
sync is required, which doesn't go away as syncing thinks no changes
are required.

An alternative way to solve this would be to reverse the order of checks
in the syncing code. It would have the advantage of retaining the
modification time of the backup, but any action like clicking on a deck
would cause it to be updated anyway, so I'm not sure that buys us much.
2022-04-03 16:07:39 +10:00
Damien Elmes
d90608198f Don't rely on frontend to cap time taken in v3 2022-04-02 20:06:23 +10:00
RumovZ
fce797cb47 search_notes_cards_into_table →
search_cards_of_notes_into_table
2022-03-31 18:23:18 +02:00
RumovZ
4aa5ee5fb4 Ignore ascii case when filtering system tags 2022-03-31 18:20:11 +02:00
RumovZ
fbc21da913 ExportData → ExchangeData 2022-03-31 12:53:36 +02:00
RumovZ
71670a065d Use schedule_as_new() to reset cards 2022-03-31 10:39:52 +02:00
RumovZ
bd14ccf2a3 Merge remote-tracking branch 'upstream/HEAD' into apkg 2022-03-31 10:28:16 +02:00
RumovZ
97c9dd4c18 Use temporary tables for gathering
export_apkg() now accepts a search instead of a deck id. Decks are
gathered according to the matched notes' cards.
2022-03-31 10:24:09 +02:00