mirror of
https://github.com/ankitects/anki.git
synced 2025-11-06 20:57:13 -05:00
fix deck syncing problems
- delete only the decks with graves, not any children - make sure we log the deletion even if the deck didn't exist
This commit is contained in:
parent
f9ed0d657c
commit
b89dde97a8
2 changed files with 9 additions and 5 deletions
|
|
@ -114,20 +114,24 @@ class DeckManager(object):
|
||||||
self.maybeAddToActive()
|
self.maybeAddToActive()
|
||||||
return int(id)
|
return int(id)
|
||||||
|
|
||||||
def rem(self, did, cardsToo=False):
|
def rem(self, did, cardsToo=False, childrenToo=True):
|
||||||
"Remove the deck. If cardsToo, delete any cards inside."
|
"Remove the deck. If cardsToo, delete any cards inside."
|
||||||
assert str(did) != '1'
|
assert str(did) != '1'
|
||||||
|
# log the removal regardless of whether we have the deck or not
|
||||||
|
self.col._logRem([did], REM_DECK)
|
||||||
|
# do nothing else if doesn't exist
|
||||||
if not str(did) in self.decks:
|
if not str(did) in self.decks:
|
||||||
return
|
return
|
||||||
# delete children first
|
# delete children first
|
||||||
for name, id in self.children(did):
|
if childrenToo:
|
||||||
self.rem(id, cardsToo)
|
# we don't want to delete children when syncing
|
||||||
|
for name, id in self.children(did):
|
||||||
|
self.rem(id, cardsToo)
|
||||||
# delete cards too?
|
# delete cards too?
|
||||||
if cardsToo:
|
if cardsToo:
|
||||||
self.col.remCards(self.cids(did))
|
self.col.remCards(self.cids(did))
|
||||||
# delete the deck and add a grave
|
# delete the deck and add a grave
|
||||||
del self.decks[str(did)]
|
del self.decks[str(did)]
|
||||||
self.col._logRem([did], REM_DECK)
|
|
||||||
# ensure we have an active deck
|
# ensure we have an active deck
|
||||||
if did in self.active():
|
if did in self.active():
|
||||||
self.select(int(self.decks.keys()[0]))
|
self.select(int(self.decks.keys()[0]))
|
||||||
|
|
|
||||||
|
|
@ -263,7 +263,7 @@ from notes where %s""" % d)
|
||||||
self.col.remCards(graves['cards'])
|
self.col.remCards(graves['cards'])
|
||||||
# and decks
|
# and decks
|
||||||
for oid in graves['decks']:
|
for oid in graves['decks']:
|
||||||
self.col.decks.rem(oid)
|
self.col.decks.rem(oid, childrenToo=False)
|
||||||
self.col.server = wasServer
|
self.col.server = wasServer
|
||||||
|
|
||||||
# Models
|
# Models
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue