diff --git a/anki/groups.py b/anki/groups.py index b59358059..712ab23fb 100644 --- a/anki/groups.py +++ b/anki/groups.py @@ -137,6 +137,9 @@ class GroupManager(object): assert gid != 1 if not str(gid) in self.groups: return + # delete children first + for name, id in self.children(gid): + self.rem(id, cardsToo) # delete cards too? if cardsToo: self.deck.remCards(self.cids(gid)) @@ -264,12 +267,18 @@ usn=?,mod=? where id in %s""" % ids2str(cids), # current group self.deck.conf['curGroup'] = gid # and active groups (current + all children) + actv = self.children(gid) + actv.sort() + self.deck.conf['activeGroups'] = [gid] + [a[1] for a in actv] + + def children(self, gid): + "All children of gid, as (name, id)." + name = self.get(gid)['name'] actv = [] for g in self.all(): if g['name'].startswith(name + "::"): actv.append((g['name'], g['id'])) - actv.sort() - self.deck.conf['activeGroups'] = [gid] + [a[1] for a in actv] + return actv def parents(self, gid): "All parents of gid." diff --git a/anki/importing/anki2.py b/anki/importing/anki2.py index 5541e6646..98f41e91e 100644 --- a/anki/importing/anki2.py +++ b/anki/importing/anki2.py @@ -111,6 +111,8 @@ class Anki2Importer(Importer): return dmid # need to add to local and update index m = self.dst.models._add(self.src.models.get(mid)) + # need to save so the css is updated + self.dst.models.save(m) h = self.dst.models.scmhash(m) mid = int(m['id']) self._dstModels[mid] = h