From 1ea9fb3d4a6d4d2cf6ffdff6285cea3bbcc37cae Mon Sep 17 00:00:00 2001 From: "Soren I. Bjornstad" Date: Sun, 10 Aug 2014 14:32:10 -0500 Subject: [PATCH] don't allow nesting things under filtered decks when manually renaming 5e74976 fixed it for drag and drop, but realized it was still possible to do so by using the rename function manually. --- anki/decks.py | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/anki/decks.py b/anki/decks.py index b7940abda..b939bd5e8 100644 --- a/anki/decks.py +++ b/anki/decks.py @@ -233,6 +233,11 @@ class DeckManager(object): raise DeckRenameError(_("That deck already exists.")) # ensure we have parents newName = self._ensureParents(newName) + # make sure we're not nesting under a filtered deck + if '::' in newName: + newParent = '::'.join(newName.split('::')[:-1]) + if self.byName(newParent)['dyn']: + raise DeckRenameError(_("A filtered deck cannot have subdecks.")) # rename children for grp in self.all(): if grp['name'].startswith(g['name'] + "::"): @@ -266,8 +271,6 @@ class DeckManager(object): or self._isParent(ontoDeckName, draggedDeckName) \ or self._isAncestor(draggedDeckName, ontoDeckName): return False - elif self.byName(ontoDeckName)['dyn']: - raise DeckRenameError(_("A filtered deck cannot have subdecks.")) else: return True