diff --git a/proto/anki/notetypes.proto b/proto/anki/notetypes.proto index f143956ce..f1a717752 100644 --- a/proto/anki/notetypes.proto +++ b/proto/anki/notetypes.proto @@ -210,6 +210,7 @@ message ChangeNotetypeRequest { int64 new_notetype_id = 5; int64 current_schema = 6; string old_notetype_name = 7; + bool is_cloze = 8; } message ChangeNotetypeInfo { diff --git a/pylib/anki/models.py b/pylib/anki/models.py index 1277ed8af..9005f296c 100644 --- a/pylib/anki/models.py +++ b/pylib/anki/models.py @@ -422,11 +422,8 @@ and notes.mid = ? and cards.ord = ?""", self.col.mod_schema(check=True) assert fmap field_map = self._convert_legacy_map(fmap, len(newModel["flds"])) - if ( - not cmap - or newModel["type"] == MODEL_CLOZE - or notetype["type"] == MODEL_CLOZE - ): + is_cloze = newModel["type"] == MODEL_CLOZE or notetype["type"] == MODEL_CLOZE + if not cmap or is_cloze: template_map = [] else: template_map = self._convert_legacy_map(cmap, len(newModel["tmpls"])) @@ -439,6 +436,7 @@ and notes.mid = ? and cards.ord = ?""", old_notetype_id=notetype["id"], new_notetype_id=newModel["id"], current_schema=self.col.db.scalar("select scm from col"), + is_cloze=is_cloze, ) def _convert_legacy_map( diff --git a/rslib/src/notetype/service.rs b/rslib/src/notetype/service.rs index fd1dcf18b..290bf8b43 100644 --- a/rslib/src/notetype/service.rs +++ b/rslib/src/notetype/service.rs @@ -283,6 +283,7 @@ impl From for anki_proto::notetypes::ChangeNotetypeRequest .into_iter() .map(|idx| idx.map(|v| v as i32).unwrap_or(-1)) .collect(), + is_cloze: i.new_templates.is_none(), new_templates: i .new_templates .unwrap_or_default() diff --git a/ts/change-notetype/StickyHeader.svelte b/ts/change-notetype/StickyHeader.svelte index 7feab789c..de6adfe88 100644 --- a/ts/change-notetype/StickyHeader.svelte +++ b/ts/change-notetype/StickyHeader.svelte @@ -25,7 +25,8 @@ License: GNU AGPL, version 3 or later; http://www.gnu.org/licenses/agpl.html ? tr.changeNotetypeFields() : tr.changeNotetypeTemplates(); - $: unused = $info.unusedItems(ctx); + $: unused = + $info.isCloze && ctx === MapContext.Template ? [] : $info.unusedItems(ctx); 0) { this.templates = negativeOneToNull(templates); }