mirror of
https://github.com/ankitects/anki.git
synced 2025-09-18 22:12:21 -04:00
immediate_parent
This commit is contained in:
parent
285e9280cf
commit
64bb71e5bd
3 changed files with 13 additions and 22 deletions
|
@ -306,6 +306,12 @@ class DeckManager:
|
||||||
def immediate_parent_path(cls, name: str) -> Any:
|
def immediate_parent_path(cls, name: str) -> Any:
|
||||||
return cls._path(name)[:-1]
|
return cls._path(name)[:-1]
|
||||||
|
|
||||||
|
@classmethod
|
||||||
|
def immediate_parent(cls, name: str) -> Any:
|
||||||
|
pp = cls.immediate_parent_path(name)
|
||||||
|
if pp:
|
||||||
|
return "::".join(pp)
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def key(cls, deck: Dict[str, Any]) -> List[str]:
|
def key(cls, deck: Dict[str, Any]) -> List[str]:
|
||||||
return cls.path(deck["name"])
|
return cls.path(deck["name"])
|
||||||
|
@ -485,7 +491,7 @@ class DeckManager:
|
||||||
|
|
||||||
# immediate parent must exist
|
# immediate parent must exist
|
||||||
if "::" in deck["name"]:
|
if "::" in deck["name"]:
|
||||||
immediateParent = "::".join(self.immediate_parent_path(deck["name"]))
|
immediateParent = self.immediate_parent(deck["name"])
|
||||||
if immediateParent not in names:
|
if immediateParent not in names:
|
||||||
self.col.log("fix deck with missing parent", deck["name"])
|
self.col.log("fix deck with missing parent", deck["name"])
|
||||||
self._ensureParents(deck["name"])
|
self._ensureParents(deck["name"])
|
||||||
|
@ -588,9 +594,8 @@ class DeckManager:
|
||||||
childMap[deck["id"]] = node
|
childMap[deck["id"]] = node
|
||||||
|
|
||||||
# add note to immediate parent
|
# add note to immediate parent
|
||||||
immediate_parent_path = self.immediate_parent_path(deck["name"])
|
immediateParent = self.immediate_parent(deck["name"])
|
||||||
if immediate_parent_path:
|
if immediateParent is not None:
|
||||||
immediateParent = "::".join(immediate_parent_path)
|
|
||||||
pid = nameMap[immediateParent]["id"]
|
pid = nameMap[immediateParent]["id"]
|
||||||
childMap[pid][deck["id"]] = node
|
childMap[pid][deck["id"]] = node
|
||||||
|
|
||||||
|
|
|
@ -153,18 +153,11 @@ class Scheduler(V2):
|
||||||
lims: Dict[str, List[int]] = {}
|
lims: Dict[str, List[int]] = {}
|
||||||
data = []
|
data = []
|
||||||
|
|
||||||
def parent(name):
|
|
||||||
parts = DeckManager.path(name)
|
|
||||||
if len(parts) < 2:
|
|
||||||
return None
|
|
||||||
parts = parts[:-1]
|
|
||||||
return "::".join(parts)
|
|
||||||
|
|
||||||
for deck in decks:
|
for deck in decks:
|
||||||
p = parent(deck["name"])
|
p = DeckManager.immediate_parent(deck["name"])
|
||||||
# new
|
# new
|
||||||
nlim = self._deckNewLimitSingle(deck)
|
nlim = self._deckNewLimitSingle(deck)
|
||||||
if p:
|
if p is not None:
|
||||||
nlim = min(nlim, lims[p][0])
|
nlim = min(nlim, lims[p][0])
|
||||||
new = self._newForDeck(deck["id"], nlim)
|
new = self._newForDeck(deck["id"], nlim)
|
||||||
# learning
|
# learning
|
||||||
|
|
|
@ -240,19 +240,12 @@ order by due"""
|
||||||
lims: Dict[str, List[int]] = {}
|
lims: Dict[str, List[int]] = {}
|
||||||
data = []
|
data = []
|
||||||
|
|
||||||
def parent(name):
|
|
||||||
parts = DeckManager.path(name)
|
|
||||||
if len(parts) < 2:
|
|
||||||
return None
|
|
||||||
parts = parts[:-1]
|
|
||||||
return "::".join(parts)
|
|
||||||
|
|
||||||
childMap = self.col.decks.childMap()
|
childMap = self.col.decks.childMap()
|
||||||
for deck in decks:
|
for deck in decks:
|
||||||
p = parent(deck["name"])
|
p = DeckManager.immediate_parent(deck["name"])
|
||||||
# new
|
# new
|
||||||
nlim = self._deckNewLimitSingle(deck)
|
nlim = self._deckNewLimitSingle(deck)
|
||||||
if p:
|
if p is not None:
|
||||||
nlim = min(nlim, lims[p][0])
|
nlim = min(nlim, lims[p][0])
|
||||||
new = self._newForDeck(deck["id"], nlim)
|
new = self._newForDeck(deck["id"], nlim)
|
||||||
# learning
|
# learning
|
||||||
|
|
Loading…
Reference in a new issue