diff --git a/anki/sched.py b/anki/sched.py index 0f5b582aa..369543c44 100644 --- a/anki/sched.py +++ b/anki/sched.py @@ -123,7 +123,7 @@ sum(case when queue = 2 and due <= ? then 1 else 0 end), sum(case when queue = 0 then 1 else 0 end) from cards group by gid""", self.today): gids[gid] = [all, rev, new] - return [[name]+gids[gid] for (gid, name) in + return [[name, gid]+gids[gid] for (gid, name) in self.deck.db.execute( "select id, name from groups order by name")] @@ -140,6 +140,7 @@ from cards group by gid""", self.today): return grp[0][0] for (head, tail) in itertools.groupby(grps, key=key): tail = list(tail) + gid = None all = 0 rev = 0 new = 0 @@ -147,9 +148,10 @@ from cards group by gid""", self.today): for c in tail: if len(c[0]) == 1: # current node - all += c[1] - rev += c[2] - new += c[3] + gid = c[1] + all += c[2] + rev += c[3] + new += c[4] else: # set new string to tail c[0] = c[0][1] @@ -157,10 +159,10 @@ from cards group by gid""", self.today): children = self._groupChildren(children) # tally up children counts for ch in children: - all += ch[1] - rev += ch[2] - new += ch[3] - tree.append((head, all, rev, new, children)) + all += ch[2] + rev += ch[3] + new += ch[4] + tree.append((head, gid, all, rev, new, children)) return tuple(tree) # Getting the next card diff --git a/tests/test_sched.py b/tests/test_sched.py index 0e87128db..2c83ed967 100644 --- a/tests/test_sched.py +++ b/tests/test_sched.py @@ -621,24 +621,27 @@ def test_groupCounts(): assert d.sched.counts() == (3, 0, 1) assert len(d.groups()) == 4 cnts = d.sched.groupCounts() - assert cnts[0] == ["Default Group", 1, 0, 1] - assert cnts[1] == ["Default Group::1", 1, 1, 0] - assert cnts[2] == ["foo::bar", 1, 0, 1] - assert cnts[3] == ["foo::baz", 1, 0, 1] + assert cnts[0] == ["Default Group", 1, 1, 0, 1] + assert cnts[1] == ["Default Group::1", 2, 1, 1, 0] + assert cnts[2] == ["foo::bar", 3, 1, 0, 1] + assert cnts[3] == ["foo::baz", 4, 1, 0, 1] tree = d.sched.groupCountTree() assert tree[0][0] == "Default Group" # sum of child and parent - assert tree[0][1] == 2 - assert tree[0][2] == 1 + assert tree[0][1] == 1 + assert tree[0][2] == 2 assert tree[0][3] == 1 + assert tree[0][4] == 1 # child count is just review - assert tree[0][4][0][0] == "1" - assert tree[0][4][0][1] == 1 - assert tree[0][4][0][2] == 1 - assert tree[0][4][0][3] == 0 + assert tree[0][5][0][0] == "1" + assert tree[0][5][0][1] == 2 + assert tree[0][5][0][2] == 1 + assert tree[0][5][0][3] == 1 + assert tree[0][5][0][4] == 0 # event if parent group didn't exist, it should have been created with a - # counts summary. + # counts summary, with an empty gid assert tree[1][0] == "foo" - assert tree[1][1] == 2 - assert tree[1][2] == 0 - assert tree[1][3] == 2 + assert tree[1][1] == None + assert tree[1][2] == 2 + assert tree[1][3] == 0 + assert tree[1][4] == 2