mirror of
https://github.com/ankitects/anki.git
synced 2025-09-24 16:56:36 -04:00
include the gid in the tree so we can tell which groups are real
This commit is contained in:
parent
fc96e12a0a
commit
73625e5751
2 changed files with 27 additions and 22 deletions
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Reference in a new issue