mirror of
https://github.com/ankitects/anki.git
synced 2025-09-24 00:36:38 -04:00
when creating child decks, inherit case from parents
This commit is contained in:
parent
e5bf86c40e
commit
6e8f2f5993
2 changed files with 20 additions and 3 deletions
|
@ -115,7 +115,7 @@ class DeckManager(object):
|
||||||
g = copy.deepcopy(type)
|
g = copy.deepcopy(type)
|
||||||
if "::" in name:
|
if "::" in name:
|
||||||
# not top level; ensure all parents exist
|
# not top level; ensure all parents exist
|
||||||
self._ensureParents(name)
|
name = self._ensureParents(name)
|
||||||
g['name'] = name
|
g['name'] = name
|
||||||
while 1:
|
while 1:
|
||||||
id = intTime(1000)
|
id = intTime(1000)
|
||||||
|
@ -230,13 +230,20 @@ class DeckManager(object):
|
||||||
return self._path(name)[-1]
|
return self._path(name)[-1]
|
||||||
|
|
||||||
def _ensureParents(self, name):
|
def _ensureParents(self, name):
|
||||||
|
"Ensure parents exist, and return name with case matching parents."
|
||||||
s = ""
|
s = ""
|
||||||
for p in self._path(name)[:-1]:
|
path = self._path(name)
|
||||||
|
for p in path[:-1]:
|
||||||
if not s:
|
if not s:
|
||||||
s += p
|
s += p
|
||||||
else:
|
else:
|
||||||
s += "::" + p
|
s += "::" + p
|
||||||
self.id(s)
|
# fetch or create
|
||||||
|
did = self.id(s)
|
||||||
|
# get original case
|
||||||
|
s = self.name(did)
|
||||||
|
name = s + "::" + path[-1]
|
||||||
|
return name
|
||||||
|
|
||||||
# Deck configurations
|
# Deck configurations
|
||||||
#############################################################
|
#############################################################
|
||||||
|
|
|
@ -30,6 +30,16 @@ def test_basic():
|
||||||
deck.decks.select(childId)
|
deck.decks.select(childId)
|
||||||
assert deck.decks.selected() == childId
|
assert deck.decks.selected() == childId
|
||||||
assert deck.decks.active() == [childId]
|
assert deck.decks.active() == [childId]
|
||||||
|
# parents with a different case should be handled correctly
|
||||||
|
deck.decks.id("ONE")
|
||||||
|
m = deck.models.current()
|
||||||
|
m['did'] = deck.decks.id("one::two")
|
||||||
|
deck.models.save(m)
|
||||||
|
n = deck.newNote()
|
||||||
|
n['Front'] = "abc"
|
||||||
|
deck.addNote(n)
|
||||||
|
# this will error if child and parent case don't match
|
||||||
|
deck.sched.deckDueList()
|
||||||
|
|
||||||
def test_remove():
|
def test_remove():
|
||||||
deck = getEmptyDeck()
|
deck = getEmptyDeck()
|
||||||
|
|
Loading…
Reference in a new issue