Anki is a smart spaced repetition flashcard program
Find a file
RumovZ 14de8451dc
Merging Notetypes on Import (#2612)
* Remember original id when importing notetype

* Reuse notetypes with matching original id

* Add field and template ids

* Enable merging imported notetypes

* Fix test

Note should be updated if the incoming note's notetype is
remapped to the existing note's notetype.
On the other hand, it should be skipped if its notetype id is mapped
to some new notetype.

* Change field and template ids to i32

* Add merge notetypes flag to proto message

* Add dialog for apkg import

* Move HelpModal into components

* Generalize import dialog

* Move SettingTitle into components

* Add help modal to ImportAnkiPackagePage

* Move SwitchRow into components

* Fix backend method import

* Make testable in browser

* Fix broken modal

* Wrap in container and fix margins

* Update commented Anki version of new proto fields

* Check ids when comparing notetype schemas

* Add tooltip for merging notetypes.

* Allow updating notes regardless of mtime

* Gitignore yarn-error.log

* Allow updating notetypes regardless of mtime

* Fix apkg help carousel

* Use i64s for template and field ids

* Add option to omit importing scheduling info

* Restore last settings in apkg import dialog

* Display error when getting metadata in webview

* Update manual links for apkg importing

* Apply suggestions from code review

Co-authored-by: Damien Elmes <dae@users.noreply.github.com>

* Omit schduling -> Import all cards as new cards

* Tweak importing-update-notes-help

* UpdateCondition → ImportAnkiPackageUpdateCondition

* Load keyboard.ftl

* Skip updating dupes in 'update alwyas' case

* Explain more when merging notetypes is required

* "omit scheduling" → "with scheduling"

* Skip updating notetype dupes if 'update always'

* Merge duplicated notetypes from previous imports

* Fix rebase aftermath

* Fix panic when merging

* Clarify 'update notetypes' help

* Mention 'merge notetypes' in the log

* Add a test which covers the previously panicking path

* Use nested ftl messages to ensure consistency

* Make order of merged fields deterministic

* Rewrite test to trigger panic

* Update version comment on new fields
2023-09-09 09:00:55 +10:00
.buildkite Update n2 for Windows console fix; recommend it on Windows as well 2023-07-02 19:03:37 +10:00
.cargo Fix i18n build script not responding to env var changes 2023-07-04 17:17:41 +10:00
.config Drop workspace-hack in favor of workspace deps 2023-06-23 17:41:31 +10:00
.github/ISSUE_TEMPLATE Move away from Bazel (#2202) 2022-11-27 15:24:20 +10:00
.vscode.dist Move away from Bazel (#2202) 2022-11-27 15:24:20 +10:00
build Merging Notetypes on Import (#2612) 2023-09-09 09:00:55 +10:00
cargo Integrate the FSRS optimizer (#2633) 2023-09-05 18:45:05 +10:00
docs [Development] Specify extra directory as a designated ignored folder (#2593) 2023-07-27 22:27:07 +10:00
ftl Merging Notetypes on Import (#2612) 2023-09-09 09:00:55 +10:00
proto Merging Notetypes on Import (#2612) 2023-09-09 09:00:55 +10:00
pylib Merging Notetypes on Import (#2612) 2023-09-09 09:00:55 +10:00
python Update certifi for minor bug fix 2023-07-26 20:41:19 +10:00
qt Merging Notetypes on Import (#2612) 2023-09-09 09:00:55 +10:00
rslib Merging Notetypes on Import (#2612) 2023-09-09 09:00:55 +10:00
sass Add scss formatter 2023-07-03 09:44:38 +10:00
tools Revert "Revert "Pull in latest upstream n2 fixes"" 2023-08-31 08:31:43 +10:00
ts Merging Notetypes on Import (#2612) 2023-09-09 09:00:55 +10:00
.deny.toml Integrate the FSRS optimizer (#2633) 2023-09-05 18:45:05 +10:00
.dprint.json [Development] Specify extra directory as a designated ignored folder (#2593) 2023-07-27 22:27:07 +10:00
.eslintrc.js [Development] Specify extra directory as a designated ignored folder (#2593) 2023-07-27 22:27:07 +10:00
.gitattributes try again to improve GitHub's language stats 2021-01-20 13:20:45 +10:00
.gitignore Merging Notetypes on Import (#2612) 2023-09-09 09:00:55 +10:00
.gitmodules Exclude PyOxidizer from recursive checkout 2023-07-02 18:22:44 +10:00
.isort.cfg Move away from Bazel (#2202) 2022-11-27 15:24:20 +10:00
.mypy.ini Move away from Bazel (#2202) 2022-11-27 15:24:20 +10:00
.pylintrc Add ability to restore a notetype to its original configuration (#2472) 2023-04-18 14:07:51 +10:00
.rustfmt-empty.toml Move away from Bazel (#2202) 2022-11-27 15:24:20 +10:00
.rustfmt.toml Move ascii_percent_encoding into a separate repo 2023-04-12 08:45:23 +10:00
.version Change Anki's version scheme; bump to 23.09 (#2640) 2023-09-07 12:37:15 +10:00
Cargo.lock Update crate name 2023-09-05 19:08:51 +10:00
Cargo.toml Update crate name 2023-09-05 19:08:51 +10:00
check Add a shortcut to auto-format before running checks 2023-07-02 09:59:05 +10:00
CONTRIBUTORS Support AVIF (#2630) 2023-08-31 08:44:10 +10:00
LICENSE move aqt_data into source folder; implement wheel building 2020-11-04 12:14:03 +10:00
ninja Switch runner to release build 2023-07-02 10:31:07 +10:00
package.json Update to Svelte 4, and update most other JS deps (#2565) 2023-07-01 16:21:53 +10:00
pkgkey.asc add public key for release signing 2018-09-18 10:40:45 +10:00
README.md Add link to website in README 2023-05-31 13:49:19 +10:00
run Use 127.0.0.1 instead of localhost 2023-06-27 16:45:31 +10:00
run.bat Fix some Windows path issues 2023-07-02 18:22:44 +10:00
rust-toolchain.toml Update to Rust 1.72 2023-08-25 07:56:38 +10:00
SECURITY.md add SECURITY.md 2021-09-22 22:55:19 +10:00
yarn.lock Bump semver from 6.3.0 to 6.3.1 (#2572) 2023-07-12 21:16:10 +10:00

Anki

Build status

This repo contains the source code for the computer version of Anki.

If you'd like to try development builds of Anki but don't feel comfortable building the code, please see https://betas.ankiweb.net/

For more information on building, please see Development.