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
Damien Elmes
c63b4085c6
add queueless counts; fix special field references on upgrade
2011-04-28 09:23:57 +09:00