From 62b44df78ea3a5bbf30f5dd2bbafdfb63005629e Mon Sep 17 00:00:00 2001 From: Damien Elmes Date: Sun, 22 Apr 2012 08:01:17 +0900 Subject: [PATCH] when renaming a field, support cloze: as well --- anki/models.py | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/anki/models.py b/anki/models.py index d1179775f..5f0a2f8ef 100644 --- a/anki/models.py +++ b/anki/models.py @@ -264,16 +264,15 @@ select id from cards where nid in (select id from notes where mid = ?)""", def renameField(self, m, field, newName): self.col.modSchema() + pat = "({{|[:#^/])%s(}})" for t in m['tmpls']: - types = ("{{%s}}", "{{text:%s}}", "{{#%s}}", - "{{^%s}}", "{{/%s}}") - for type in types: - for fmt in ('qfmt', 'afmt'): - if newName: - repl = type%newName - else: - repl = "" - t[fmt] = t[fmt].replace(type%field['name'], repl) + for fmt in ('qfmt', 'afmt'): + if newName: + t[fmt] = re.sub( + pat % field['name'], "\\1%s\\2" % newName, t[fmt]) + else: + t[fmt] = re.sub( + pat % field['name'], "", t[fmt]) field['name'] = newName self.save(m)