From 74773d8e8a517787f7c3f8087171d8546eb55be9 Mon Sep 17 00:00:00 2001 From: Damien Elmes Date: Sat, 5 May 2012 18:22:54 +0900 Subject: [PATCH] canonicalize deck name prior to rename --- anki/decks.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/anki/decks.py b/anki/decks.py index 88784e65a..346bd4fb8 100644 --- a/anki/decks.py +++ b/anki/decks.py @@ -195,6 +195,8 @@ class DeckManager(object): # make sure target node doesn't already exist if newName in self.allNames(): raise DeckRenameError(_("That deck already exists.")) + # ensure we have parents + newName = self._ensureParents(newName) # rename children for grp in self.all(): if grp['name'].startswith(g['name'] + "::"): @@ -204,8 +206,6 @@ class DeckManager(object): # adjust name and save g['name'] = newName self.save(g) - # finally, ensure we have parents - self._ensureParents(newName) def renameForDragAndDrop(self, draggedDeckDid, ontoDeckDid): draggedDeck = self.get(draggedDeckDid) @@ -242,6 +242,8 @@ class DeckManager(object): "Ensure parents exist, and return name with case matching parents." s = "" path = self._path(name) + if len(path) < 2: + return name for p in path[:-1]: if not s: s += p