Damien Elmes
1c2b403348
apply selective groups to learning queue too
...
originally the plan was to get the user to "forget learning cards" or "remove
final drill" when switching between categories, but that's cumbersome and not
intuitive
2011-04-28 09:24:04 +09:00
Damien Elmes
2243b691cc
add full search to ignore formatting
2011-04-28 09:24:03 +09:00
Damien Elmes
0fdb966766
wrap clozes in a classed span instead of bold
2011-04-28 09:24:03 +09:00
Damien Elmes
03d00228aa
support stripping context of cloze
2011-04-28 09:24:03 +09:00
Damien Elmes
e8d6714130
make sure the failed card count reflects the cutoff
2011-04-28 09:24:03 +09:00
Damien Elmes
d51cd5a433
find & replace
2011-04-28 09:24:03 +09:00
Damien Elmes
98a63285e1
port changeModel()
2011-04-28 09:24:02 +09:00
Damien Elmes
d7b86da811
canonify tags after bulk update
2011-04-28 09:24:02 +09:00
Damien Elmes
93d80678f9
_fields -> fields
2011-04-28 09:24:02 +09:00
Damien Elmes
d611299715
make sure add/delTags() is limited to provided ids
2011-04-28 09:24:02 +09:00
Damien Elmes
8c1c729544
fix card state negation
2011-04-28 09:24:02 +09:00
Damien Elmes
13a484ea36
allow user to abort schema mod
2011-04-28 09:24:02 +09:00
Damien Elmes
2a225b1fae
use the sort property set in the deck
2011-04-28 09:24:02 +09:00
Damien Elmes
d089deae5a
add the ability to reverse sort order
2011-04-28 09:24:02 +09:00
Damien Elmes
d6116a5377
model and group searching
2011-04-28 09:24:02 +09:00
Damien Elmes
efe6177c7a
refactor ordering
2011-04-28 09:24:02 +09:00
Damien Elmes
291bd399b7
field searching
...
dropped support for field:foo, as you can type 'foo:' instead to accomplish
the same thing
2011-04-28 09:24:01 +09:00
Damien Elmes
57938927e7
users can pass a number for template ordinal; makes show:one obsolete
2011-04-28 09:24:01 +09:00
Damien Elmes
94d4e319ae
fids and template searches
2011-04-28 09:24:01 +09:00
Damien Elmes
de81f0238a
template moving
2011-04-28 09:24:01 +09:00
Damien Elmes
84d2f32685
move graph code into stats.py; remove old deck stats
2011-04-28 09:24:00 +09:00
Damien Elmes
4be8b9d38c
fix zerodiv and other errors
2011-04-28 09:24:00 +09:00
Damien Elmes
11f3de525f
groupConf() takes gcid, not gid
2011-04-28 09:23:59 +09:00
Damien Elmes
692fba2ea3
use the deck's groups instead of holding on to a private copy
2011-04-28 09:23:59 +09:00
Damien Elmes
77ee8f1385
ditch useGroups
2011-04-28 09:23:59 +09:00
Damien Elmes
f75e2af195
use a single group setting
2011-04-28 09:23:59 +09:00
Damien Elmes
73625e5751
include the gid in the tree so we can tell which groups are real
2011-04-28 09:23:59 +09:00
Damien Elmes
fc96e12a0a
add some randomness to lrn interval
2011-04-28 09:23:59 +09:00
Damien Elmes
495b058618
include total count in with rev+due
2011-04-28 09:23:59 +09:00
Damien Elmes
2a1355eb16
make the group tree part of the scheduler instead
2011-04-28 09:23:59 +09:00
Damien Elmes
728715ff84
counts by group
2011-04-28 09:23:59 +09:00
Damien Elmes
2d00163323
tree grouping; add column to groups so they can remember tags
2011-04-28 09:23:59 +09:00
Damien Elmes
e547b0586a
simplify undo
...
The undo code was using triggers and a temporary table to write out all changed rows before making a change. This made for powerful undo/redo support, but had some problems:
- creating the tables and triggers wasn't cheap, especially on mobile devices
- likewise, every data modification required writing into two separate databases, almost doubling the amount of writes required
- it was possible to leave the DB in an inconsistent state if an undoable operation is followed by a non-undoable operation that references the undoable operation, and the user then rolls back the undoable operation.
To address these issues, we simplify undo by integrating it with the autosave changes:
- .save() can be passed a name to mark a rollback point. If the user undoes the change, any changes since the last save are lost
- autosaves happen every 5 minutes, and are pushed back on a .save(), so the maximum work a user can lose is 5 minutes.
- reviews are handled separately, so we can let the user undo multiple reviews at once
- if necessary, special cases could be added for other operations like marking
This means that if a user does two damaging operations in a row they won't be able to restore the first one, but such an event is both unlikely, and is also covered by the backups made each time a deck is opened.
2011-04-28 09:23:59 +09:00
Damien Elmes
63efc4dbaa
remove the separate timeGraph()
2011-04-28 09:23:58 +09:00
Damien Elmes
40706f3493
break reps graph into separate graphs; exclude cumulative line from stack
2011-04-28 09:23:58 +09:00
Damien Elmes
9c1e0befc6
bundle js libs; include them in report(); fix some graph ids
2011-04-28 09:23:58 +09:00
Damien Elmes
6ec2500eb8
reps & time graphs
2011-04-28 09:23:58 +09:00
Damien Elmes
60ef1ec49f
eases graph
2011-04-28 09:23:58 +09:00
Damien Elmes
7d5d72adf8
add intervals, boxing in weeks for now
2011-04-28 09:23:58 +09:00
Damien Elmes
89fa08c548
due and cumulative due graphs ported
2011-04-28 09:23:58 +09:00
Damien Elmes
2ca9568196
initial graph code reorganization
2011-04-28 09:23:58 +09:00
Damien Elmes
cc9f5b8d86
stripMedia->strip
2011-04-28 09:23:58 +09:00
Damien Elmes
3c40854583
fix collapsing; make sure learning cards are put back on the heap
2011-04-28 09:23:57 +09:00
Damien Elmes
942bf43b52
fix stats
...
they're running now, but need to be sanity checked to make sure they're doing the right thing
2011-04-28 09:23:57 +09:00
Damien Elmes
63d1448d1e
only bump lrn count when cramming if card not immediately graduated
2011-04-28 09:23:57 +09:00
Damien Elmes
464eb2b684
make sure cramming works if there are no selected groups
2011-04-28 09:23:57 +09:00
Damien Elmes
31427f0133
fix lapse card scheduling
...
- make sure we set a timestamp due time, and put the card back in the queue
- add a unit test for it
2011-04-28 09:23:57 +09:00
Damien Elmes
e407697fb9
fix interval calculation for lapsed cards in learning queue
2011-04-28 09:23:57 +09:00
Damien Elmes
1d91e459ec
wrap the q/a in the card template div
2011-04-28 09:23:57 +09:00
Damien Elmes
9d52196949
add a bgclass helper func
2011-04-28 09:23:57 +09:00