Commit graph

2260 commits

Author SHA1 Message Date
Damien Elmes
c415c437de check bs version 2012-04-22 04:51:09 +09:00
Damien Elmes
cdffab235c add option to dump db args 2012-04-21 08:57:08 +09:00
Damien Elmes
f16335ee7f use a smaller range for random numbers
Using 2**32 is the technically superior solution, since it minimizes the chance of multiple notes sharing a due # (which has implicates for sibiling spacing), but the large numbers are confusing to users.
2012-04-21 08:56:56 +09:00
Damien Elmes
b4cf7e39b5 i18n empty cards msg 2012-04-21 07:25:41 +09:00
Damien Elmes
9fab2834da cloze generation needs to use provided fields, not field 0 2012-04-21 07:25:35 +09:00
Damien Elmes
7c51a7bb16 update sort field when field moved 2012-04-21 06:40:20 +09:00
Damien Elmes
c2df347909 catch attempt to delete last template 2012-04-20 22:37:31 +09:00
Damien Elmes
4b3e1f0d2b accept a string did in remDyn() 2012-04-20 02:19:00 +09:00
Damien Elmes
625a77f7f8 strip \n in csv tags: 2012-04-20 02:17:44 +09:00
Damien Elmes
a3407020cb split empty card removal into separate report 2012-04-19 11:14:57 +09:00
Damien Elmes
fe0e227325 don't upgrade clozes while iterating 2012-04-19 09:58:12 +09:00
Damien Elmes
5cbe93b63d more cloze work
- upgrade old decks
- specify the field in the cloze, so the user can have an id in the first
  field
2012-04-19 08:32:19 +09:00
Damien Elmes
41fa9a9896 cloze refactor wip 2012-04-19 07:14:03 +09:00
Damien Elmes
20ecd7359d when resetting lrn reps, need to choose between lrn/lapse 2012-04-19 05:53:24 +09:00
Damien Elmes
f963a31d9c must set factor when cards are rescheduled as a review 2012-04-19 04:40:43 +09:00
Damien Elmes
336b1e7c58 fix bugs with daily counts
- When we reset() the deck, we need to update the daily counts for all decks,
  not just the selected ones, or the deck list is inaccurate
- We don't want to save the decks at that time, or simply opening Anki on
  another machine will cause a conflict with all decks
2012-04-19 02:45:46 +09:00
Damien Elmes
609e165c95 use deck of existing cards if all use same deck 2012-04-18 05:24:02 +09:00
Damien Elmes
c0b1fb9c5f allow "a:" to be translated to "a :" in French 2012-04-18 04:21:58 +09:00
Damien Elmes
cbdd152f36 factor langDir into separate func 2012-04-18 03:19:47 +09:00
Damien Elmes
a0578f73d1 add option to revert to default deck 2012-04-18 02:03:57 +09:00
Damien Elmes
35f89bfea7 collapse relearning to 2 buttons if single step 2012-04-18 01:59:51 +09:00
Damien Elmes
44d62d6a41 fix remEmptyCards filter arg order 2012-04-18 01:59:38 +09:00
Damien Elmes
55812bef86 remove cards from cram decks and the relearning queue on suspend 2012-04-17 22:53:48 +09:00
Damien Elmes
1b6cf2bef8 when a card is in an invalid deck, report that in its name 2012-04-17 22:22:04 +09:00
Damien Elmes
2ad98f063a ignore cram decks when deleting options groups 2012-04-17 20:37:17 +09:00
Damien Elmes
d429519929 return check db status 2012-04-17 20:16:41 +09:00
Damien Elmes
fbefb8a906 remove is:recent 2012-04-17 18:31:46 +09:00
Damien Elmes
2149502a77 fix translation of queue order labels 2012-04-17 17:53:02 +09:00
Damien Elmes
29cb76de8f add check for broken review due #s 2012-04-12 17:30:14 +09:00
Damien Elmes
0da5b36d20 default to a single 10 minute delay for lapses 2012-04-12 01:01:47 +09:00
Damien Elmes
5ac1ec2067 when shifting cards on reschedule, only shift new cards 2012-04-12 00:37:22 +09:00
Damien Elmes
4f8053b165 make sure to export deck creation date on apkg export 2012-04-12 00:34:40 +09:00
Damien Elmes
875a417346 fix exporting of models into apkg 2012-04-12 00:15:56 +09:00
Damien Elmes
2f2a483a49 when queue cleared, force current audio to stop 2012-04-11 20:17:56 +09:00
Damien Elmes
dd9d9f4223 update position on integrity check 2012-04-11 18:10:49 +09:00
Damien Elmes
8a6e9945b2 use human-readable # when generating new cards 2012-04-11 18:09:13 +09:00
Damien Elmes
1077c71c2e don't throw error in half-complete field filter 2012-04-08 21:39:04 +09:00
Damien Elmes
71645aacb5 fix field deletion issues thanks to illforyou 2012-04-08 20:18:46 +09:00
Damien Elmes
74700ff4f5 add browser selection js 2012-04-08 13:27:03 +09:00
Damien Elmes
ad661add7c ignore sound: tags when rendering furigana 2012-04-08 09:27:50 +09:00
Damien Elmes
fdb69b2ca9 fix c.q(reload=True) 2012-04-08 09:27:00 +09:00
Damien Elmes
cb1e4d4645 check for missing parents on sync 2012-04-08 09:06:33 +09:00
Damien Elmes
6e8f2f5993 when creating child decks, inherit case from parents 2012-04-08 08:45:36 +09:00
Damien Elmes
e5bf86c40e add furigana to decks on upgrade 2012-04-07 18:28:31 +09:00
Damien Elmes
5d3e31ca5d integrate furigana field modifiers 2012-04-07 17:31:19 +09:00
Damien Elmes
bbac32b477 ensure lapsed reviews are scheduled for tomorrow on graduate 2012-04-07 14:28:41 +09:00
Damien Elmes
2f75e99671 ntype -> note 2012-04-07 13:53:55 +09:00
Damien Elmes
2ba5f80cf1 fix field searching and negated field searching 2012-04-07 13:53:03 +09:00
Damien Elmes
e3f64c0f07 if there's no LastRepetition element, don't try import learning data 2012-04-06 19:38:32 +09:00
Damien Elmes
6e7ea8e25b fix apkg exporting 2012-04-06 19:28:36 +09:00
Damien Elmes
37b89cdac3 fix importing non-latin tags 2012-04-06 19:01:05 +09:00
Damien Elmes
c1242740ac fix importing of multiline fields 2012-04-06 18:13:21 +09:00
Damien Elmes
13049339ac add check for first field 2012-04-06 13:35:46 +09:00
Damien Elmes
aa559431b6 on upgrade all cards of a note should share the same due # 2012-04-06 12:45:01 +09:00
Damien Elmes
5c59f6a558 fix illegal check thanks to kostas 2012-04-05 03:50:03 +09:00
Damien Elmes
7553573304 fix earlier cram fix 2012-03-30 02:42:54 +09:00
Damien Elmes
73bdad9d70 model:foo is ntype:foo in searches now 2012-03-30 00:03:39 +09:00
Damien Elmes
07c3297a9a don't include suspended cards in cram 2012-03-30 00:03:30 +09:00
Damien Elmes
0317e63cfb remove init docstring; documented in addons.html now 2012-03-28 06:55:23 +09:00
Damien Elmes
245be4c166 obsolete col attrs 2012-03-28 06:40:15 +09:00
Damien Elmes
f7fe1c6590 fix tag:none 2012-03-27 11:18:16 +09:00
Damien Elmes
d8ec8d0389 another rev scheduling bug 2012-03-27 09:15:39 +09:00
Damien Elmes
c62dd41f77 bug in rev scheduling 2012-03-27 05:22:47 +09:00
Damien Elmes
b413b1562a when updating, preserve unmapped fields 2012-03-25 02:07:20 +09:00
Damien Elmes
5dc69ecd47 when reconnecting media, update cwd 2012-03-25 01:44:52 +09:00
Damien Elmes
83f49246e3 fix due date in card stats 2012-03-25 00:44:23 +09:00
Damien Elmes
cebcce4a34 race condition in sound code 2012-03-25 00:32:59 +09:00
Damien Elmes
7d3698e2c7 don't play audio files more than once 2012-03-24 23:58:37 +09:00
Damien Elmes
eb8326c605 failure mult should only be applied to reviews 2012-03-24 23:58:24 +09:00
Damien Elmes
4b77d1a08d separate max timer and show timer options 2012-03-24 19:56:05 +09:00
Damien Elmes
ccb0c08c9c another find&replace bug 2012-03-24 19:03:14 +09:00
Damien Elmes
ce86670c76 find&replace should ignore notes without provided field 2012-03-24 04:06:51 +09:00
Damien Elmes
933bee43a0 use the first hint occurrence for any subsequent clozes 2012-03-22 15:51:36 +09:00
Damien Elmes
47a61abebb accidentally used mod time instead of creation time for anki1 id 2012-03-20 06:01:25 +09:00
Damien Elmes
8fd1756eb4 remove deck overriding in text file import 2012-03-20 05:43:55 +09:00
Damien Elmes
e41c7738d3 Revert "make importing with an explicit deck work again"
This reverts commit f177083bcb.
2012-03-20 05:42:17 +09:00
Damien Elmes
f177083bcb make importing with an explicit deck work again
This change was necessary as we moved away from note decks. However, now that
I think about it, decks may not be a terribly useful thing to specify
per-line in a text file. Committing in case the code is needed later, but I
will revert in the next commit.
2012-03-20 05:41:58 +09:00
Damien Elmes
f57f386b59 add deck and tags as default extra fields 2012-03-20 04:53:00 +09:00
Damien Elmes
f1140cf886 fix inverted deck search case 2012-03-20 02:49:06 +09:00
Damien Elmes
51b70a5787 genCards() on model change 2012-03-20 02:46:45 +09:00
Damien Elmes
5c5341b5e5 make sure we don't modify the active decks during scheduling 2012-03-20 00:37:39 +09:00
Damien Elmes
e9a87b9fd9 apply failure multiplier in cram mode 2012-03-20 00:03:52 +09:00
Damien Elmes
7c712274d8 deck: searches should find it both original and current deck 2012-03-19 22:53:40 +09:00
Damien Elmes
820308e45e fix args in addSearchFieldToken 2012-03-19 21:50:09 +09:00
Damien Elmes
28b396895a must make sure to save odid on sched flush 2012-03-19 20:35:25 +09:00
Damien Elmes
f4151d5d83 fix disabling of answer timer 2012-03-16 20:13:25 +09:00
Damien Elmes
62117453ff timeboxing 2012-03-16 19:56:10 +09:00
Damien Elmes
4c369ba6af make sure daysLate() works with review cards in a cram deck 2012-03-16 19:08:13 +09:00
Damien Elmes
b5cafd370f ignore thumbs.db in media sync 2012-03-16 17:11:13 +09:00
Damien Elmes
ef386d8698 anki.cram no longer exists 2012-03-14 00:26:10 +09:00
Damien Elmes
b35b105750 don't clobber decks on upgrade 2012-03-13 23:18:45 +09:00
Damien Elmes
1529c6ae5e higher default leech threshold 2012-03-13 22:33:01 +09:00
Damien Elmes
17891edb72 card rescheduling needs to bump mod time and usn 2012-03-13 22:28:25 +09:00
Damien Elmes
056e146696 revCardOrderLabels is obsolete 2012-03-13 22:22:06 +09:00
Damien Elmes
f73cbcef51 check httplib2 version 2012-03-13 22:15:44 +09:00
Damien Elmes
1f95045621 store media folder as unicode so we can log updated files in unicode 2012-03-13 22:12:21 +09:00
Damien Elmes
0843db03fd when graphing deck life, period = first day 2012-03-13 22:02:46 +09:00
Damien Elmes
acd0316a14 more cram orderings, clear out before rebuild 2012-03-13 21:40:31 +09:00
Damien Elmes
81f2a5318f show lapses in card stats 2012-03-13 21:31:30 +09:00
Damien Elmes
dc85212bfe remove review order options
As cram decks provide a more efficient way of ordering reviews, we can limit
normal reviews to just due order.
2012-03-13 19:25:28 +09:00
Damien Elmes
81c07158e9 make sure reviews are due when cramming 2012-03-13 19:16:39 +09:00
Damien Elmes
60dd0b426c store order as an index 2012-03-13 18:12:06 +09:00
Damien Elmes
d5dbfa3243 new/rev limits in tree shouldn't be applied for dyn decks 2012-03-12 23:27:12 +09:00
Damien Elmes
5019e46fbf display due cards in review mode by default 2012-03-12 15:51:03 +09:00
Damien Elmes
f4acae6c1c add shift paramater in case we make card resched. in cram optional 2012-03-12 15:49:10 +09:00
Damien Elmes
09ca65624a select the dyn deck as it's created 2012-03-12 14:56:06 +09:00
Damien Elmes
d8a9a5ea1f card.timeLimit() 2012-03-12 14:04:22 +09:00
Damien Elmes
b9cc9bf0b2 deck upgrade 2012-03-12 13:49:32 +09:00
Damien Elmes
f4e962aa58 make sure we move reviews back to original deck 2012-03-12 12:33:46 +09:00
Damien Elmes
324861a946 or on bury 2012-03-12 12:17:57 +09:00
Damien Elmes
ea64e4da1b don't need to removeFailed() when suspending 2012-03-12 12:16:37 +09:00
Damien Elmes
dc589a5c15 rescheduling ignores dynamic decks 2012-03-12 12:08:46 +09:00
Damien Elmes
8030b2c969 use type not queue for rev sib. spacing, fix cram case 2012-03-11 14:52:12 +09:00
Damien Elmes
4a12ec62c1 log cram reps separately; fix std rev reps 2012-03-11 14:06:59 +09:00
Damien Elmes
da07e15a87 generalize into 'dynamic decks'
- search and limits are embedded in the deck
- decks can be refreshed
- they have the option to treat due reviews normally rather than cram them
- some options are inherited from the original deck, others taken from the
  dynamic deck
2012-03-10 19:41:37 +09:00
Damien Elmes
f6b2e69669 remove did from notes, use model did instead 2012-03-09 09:12:27 +09:00
Damien Elmes
ffaf7ffc66 removing cram decks, estimates, failure handling 2012-03-09 06:56:07 +09:00
Damien Elmes
01404fafaa start of cram refactor 2012-03-08 16:47:22 +09:00
Damien Elmes
a2312f9a1f change cards table schema
In preparation for cramming:

- add odid for storing old deck on a per-card basis
- rename edue to odue
- at the moment note.did still exists, but in the future we may ignore it and
  use model.did instead
2012-03-08 11:28:12 +09:00
Damien Elmes
528224895c make sure we bump usn of revlog import 2012-03-08 08:32:24 +09:00
Damien Elmes
88b2b3ab85 we must bump usn when importing anki1 dconf 2012-03-08 08:25:05 +09:00
Damien Elmes
c92ab5dd19 allow due to be negative so we can reflect overdue cards 2012-03-07 07:11:30 +09:00
Damien Elmes
d1e04b908d log total imported 2012-03-07 07:08:02 +09:00
Damien Elmes
972526d265 update supermemo importer; fix factor 2012-03-07 06:58:06 +09:00
Damien Elmes
beef571d95 include _, remove some old unittest support files 2012-03-07 06:10:18 +09:00
Damien Elmes
e175dcd2d8 log total notes imported 2012-03-07 06:02:16 +09:00
Damien Elmes
869d665c22 gui integration for mnemosyne 2012-03-07 05:54:57 +09:00
Damien Elmes
1d29c7bcc0 foreign card importing; mnemosyne 2.0 importer 2012-03-07 05:45:52 +09:00
Damien Elmes
66534db987 make the cloze hint a prefix 2012-03-07 03:27:04 +09:00
Damien Elmes
d60a3f8e25 ensure nextPos is not null 2012-03-06 16:21:51 +09:00
Damien Elmes
a99101d95c initMapping(); csv tweaks 2012-02-29 13:33:55 +09:00
Damien Elmes
44dea8211e don't strip leading whitespace 2012-02-29 12:51:00 +09:00
Damien Elmes
099ba71bb0 fix updating 2012-02-29 12:49:42 +09:00
Damien Elmes
7189e57e80 csv importing basics 2012-02-29 12:39:35 +09:00
Damien Elmes
54b8ee059f media importing 2012-02-26 08:13:48 +09:00
Damien Elmes
d7c58f8142 start of packaged deck importing 2012-02-26 06:49:38 +09:00
Damien Elmes
620f16c876 fix forgetCards() bug 2012-02-26 04:30:56 +09:00
Damien Elmes
afbe1a4a64 export card count, remove temp files, check media exists 2012-02-26 03:52:31 +09:00
Damien Elmes
e8aea4d713 fix exporters(), tags need stripping 2012-02-26 03:10:04 +09:00
Damien Elmes
cd5dfa2116 deck and packaged deck export 2012-02-26 01:45:39 +09:00
Damien Elmes
8539c081b3 start porting export code 2012-02-25 22:10:57 +09:00
Damien Elmes
2859f9c39d add children argument to decks.cids() 2012-02-25 22:10:42 +09:00
Damien Elmes
05782f9080 fix graphs 2012-02-24 22:32:00 +09:00
Damien Elmes
3823151d6f make sure changes during upgrade don't have side effects 2012-02-24 22:29:04 +09:00
Damien Elmes
3d94e9a386 split jquery libraries up 2012-02-24 20:55:03 +09:00
Damien Elmes
056dd4d68e remove some dead code thanks to richard 2012-02-24 20:40:17 +09:00
Damien Elmes
d06dccad32 deck list counts should be reps not cards, to match study screen 2012-02-14 12:27:17 +09:00
Damien Elmes
f6f6649062 return the restored card when undoing a review 2012-02-13 12:51:15 +09:00
Damien Elmes
030e5498b3 "this deck" 2012-02-13 12:31:35 +09:00
Damien Elmes
bde4420fb0 don't throw an error on unclosed conditional tags 2012-02-13 12:26:07 +09:00
Damien Elmes
abf6e3fa13 don't fall over if cwd doesn't exist 2012-02-13 12:16:52 +09:00
Damien Elmes
b89dde97a8 fix deck syncing problems
- delete only the decks with graves, not any children
- make sure we log the deletion even if the deck didn't exist
2012-02-02 09:52:07 +09:00
Damien Elmes
f9ed0d657c remove notes field from cloze 2012-01-30 07:45:52 +09:00
Damien Elmes
1800f30776 correctly detect when we don't have a deck conf 2012-01-30 07:31:15 +09:00
Damien Elmes
665fe9c280 allow upgrade of devel-version decks 2012-01-30 06:26:30 +09:00
Damien Elmes
38ec009378 same with card upgrade 2012-01-30 06:24:51 +09:00
Damien Elmes
34ba8e18f1 improve duplicate handling of note ids on upgrade 2012-01-30 06:19:49 +09:00
Damien Elmes
057b13e0af fix due # rewriting and correctly set nextPos 2012-01-30 05:42:03 +09:00
Damien Elmes
3dc9454cd7 revert to the previous cwd rather than assuming a particular path layout 2012-01-30 05:32:18 +09:00
Damien Elmes
63b5e862b3 Merge branch 'master' of https://github.com/tarix/libanki 2012-01-30 05:28:01 +09:00
mikem
f3847daae4 fix for FileIO exception when deleting a profile from windows 2012-01-29 19:15:12 +09:00
Damien Elmes
3c995017fe force save after sync 2012-01-26 08:07:27 +09:00
Damien Elmes
58935afba7 when undoing, update daily limits 2012-01-24 23:38:58 +09:00
Damien Elmes
be8bec5bc4 fix ordinal problems rather than aborting upgrade 2012-01-24 23:10:37 +09:00
Damien Elmes
92ee7597a9 make sure we zero the queue when clearing it 2012-01-24 22:59:52 +09:00
Damien Elmes
302541e0c0 fix some audio issues
- add a pause between feeding mplayer multiple files, as it loses some of them
  otherwise
- in order to do the above, we use mplayerEvt only as a flag and don't make
  the main thread wait anymore
- use a different temporary name for each audio file on windows so we can
  queue up multiple files at a time
2012-01-24 22:57:39 +09:00
Damien Elmes
2a76c8f4f0 reload card after suspending it in leech handler
this fixes the issue with display of due time in browser after an unsuspend
2012-01-24 01:24:46 +09:00
Damien Elmes
4f1bcb9356 fix is:recent 2012-01-24 01:04:49 +09:00
Damien Elmes
766e153840 try to avoid showing the same card twice in a row 2012-01-24 00:43:44 +09:00
Damien Elmes
87a996cdce add flag fields for conditional templates 2012-01-23 23:57:33 +09:00
Damien Elmes
d9a19f3e5e fix parent limits on review screen counts 2012-01-23 22:10:03 +09:00
Damien Elmes
245d844616 fix deck list/review screen due count mismatch by fixing .parents() 2012-01-23 21:46:14 +09:00
Kieran Clancy
1c2b6b746f add hooks for arbitrary field modifiers 2012-01-22 13:24:30 +10:30
nobnago
262e04ed4f fixes wrong rev queue order 2012-01-17 22:07:42 +01:00
Damien Elmes
1ad65bfb5f Merge branch 'master' of https://github.com/aaronharsh/libanki 2012-01-17 11:21:30 +09:00
Aaron Harsh
54fe8bb96f libanki support for drag-and-drop changes of deck hierarchy in deckbrowser 2012-01-15 20:55:29 -08:00
Aaron Harsh
bb7faa5692 Bundle jquery-ui, to be used for drag-and-drop support in deckbrowser 2012-01-15 20:43:52 -08:00
Damien Elmes
89445afc94 remove unused sendHome() for now 2012-01-16 10:15:03 +09:00
Damien Elmes
8ac1587b12 add per-deck due counts back to scheduler 2012-01-16 09:55:44 +09:00
Damien Elmes
12c0c64841 translation dict 2012-01-11 17:25:36 +09:00
Damien Elmes
6f88deab52 add reminder about leading whitespace 2012-01-11 14:47:06 +09:00
Damien Elmes
ebeef6b2e6 remove obsolete lastrowid assignment 2011-12-21 09:53:21 +09:00
Damien Elmes
265b6b990d base62() should not be locale-dependent 2011-12-20 20:28:56 +09:00
Damien Elmes
e0b7bca155 did could be a string 2011-12-20 19:38:55 +09:00
Damien Elmes
2012d0de39 don't try and replace nbsp 2011-12-20 12:47:56 +09:00
Damien Elmes
3449abe8a0 fix upgrading of decks with extra media fields 2011-12-20 12:40:18 +09:00
Damien Elmes
7b53facc4c add integrity check back to fixIntegrity 2011-12-18 12:32:44 +09:00
Damien Elmes
fca4ef7c00 strip superfluous spans from 1.2 upgrade 2011-12-18 07:23:26 +09:00
Damien Elmes
e610eeeb42 tweak template upgrading, replace repeated spaces with non-breaking ones 2011-12-17 22:01:50 +09:00
Damien Elmes
9e35e4acf2 template and cloze changes
While writing the documentation I realized that the default templates were
somewhat overwhelming. So I've moved the default settings into the card css,
and moved the css into a separate attribute which gets combined with the
question and answer templates.

Also:
- Detect cloze references directly rather than the conditional wrapper
- Add the cloze css to the template
2011-12-17 19:42:30 +09:00
Damien Elmes
619a58216a don't require fields in cloze del model; remove extra brackets in cloze hints 2011-12-17 15:02:15 +09:00
Damien Elmes
60643b5b1f human-readable positions for new cards 2011-12-17 08:37:05 +09:00
Damien Elmes
4496782e5b desc was in wrong location 2011-12-17 08:36:51 +09:00
Damien Elmes
3957f07afb add media[] for future use 2011-12-16 10:04:19 +09:00
Damien Elmes
5129913f25 fix audio playing on win32 2011-12-16 08:49:27 +09:00
Damien Elmes
1986394e56 don't allow quotes in deck names 2011-12-15 17:29:00 +09:00
Damien Elmes
91f81e9142 timer flag and desc 2011-12-15 14:54:44 +09:00
Damien Elmes
a55088ead4 don't need to cache model anymore 2011-12-15 14:54:32 +09:00
Damien Elmes
5a24074a93 make header and field() public 2011-12-15 14:00:16 +09:00
Damien Elmes
a9c46b5ccb include subdecks when restricting to deck 2011-12-15 11:57:55 +09:00
Damien Elmes
9187255630 don't include (shared) in shared deck models 2011-12-15 11:53:41 +09:00
Damien Elmes
19435068bb break removals into separate sync step 2011-12-14 11:42:19 +09:00
Damien Elmes
2c0b3f7c0a more usn fixes 2011-12-14 10:27:20 +09:00
Damien Elmes
819bc326e0 make sure we set usn correctly on card gen; work even if no existing cards 2011-12-14 10:22:09 +09:00
Damien Elmes
47a170898a set default deck on upgrade; append old deck name to model 2011-12-14 10:20:56 +09:00
Damien Elmes
5333165c8d set conf name too on upgrade 2011-12-13 14:00:32 +09:00
Damien Elmes
dc89e34410 fix deck conf syncing 2011-12-13 13:58:31 +09:00
Damien Elmes
bacbea13e0 conf() -> confForDid(); add getConf() 2011-12-13 13:56:05 +09:00
Damien Elmes
0448175d10 when estimating interval, return ideal, not adjusted 2011-12-13 12:20:30 +09:00
Damien Elmes
00becd01eb add async flag 2011-12-13 12:15:32 +09:00
Damien Elmes
ba0f6f36cc don't create media db on server 2011-12-13 12:15:13 +09:00
Damien Elmes
5c5181f063 don't switch journal mode back on server 2011-12-13 12:15:03 +09:00
Damien Elmes
a697c292b5 when echo on, log call time too 2011-12-13 12:14:36 +09:00
Damien Elmes
0a677fee56 sync tweaks 2011-12-13 10:44:50 +09:00
Damien Elmes
8ede57b024 should init schema on collection creation 2011-12-13 09:33:11 +09:00
Damien Elmes
aeb38ab65d create a separate conf group for each imported deck 2011-12-13 04:42:12 +09:00
Damien Elmes
c1d9b62549 make sure we adjust due time on reviews when importing 2011-12-13 04:20:29 +09:00
Damien Elmes
35a10744a6 'open' was a silly choice 2011-12-12 02:25:16 +09:00
Damien Elmes
1114fc084a rename special field templates 2011-12-12 01:39:57 +09:00
Damien Elmes
428b6a0520 don't prompt when no cards to remove; don't autodel on indiv. note edits 2011-12-12 00:02:43 +09:00
Damien Elmes
0b96e8a1a9 per-fact empty card deletion, and delete hook 2011-12-11 23:48:24 +09:00
Damien Elmes
8be0e6cccd make sure we add + delete cards after template changes 2011-12-11 23:35:59 +09:00
Damien Elmes
9bcfc9e1d4 use devnull instead of reader thread; fix cleanup code
thanks to robert siemer for the devnull idea
2011-12-11 03:34:51 +09:00
Damien Elmes
0a279f6a26 remove clozectx, add styling to stdmodels 2011-12-11 02:33:27 +09:00
Damien Elmes
918bfa2e62 move some prefs into collection 2011-12-10 23:48:36 +09:00
Damien Elmes
4428c04774 new order is now a deck property 2011-12-10 22:45:44 +09:00
Damien Elmes
1e48ce9b99 fix randomizeCards() call 2011-12-10 04:35:29 +09:00
Damien Elmes
45c218f807 add restore to default option 2011-12-10 04:17:53 +09:00
Damien Elmes
78494283c2 store forgetting index as %, fix card sorting 2011-12-10 04:11:43 +09:00
Damien Elmes
0161ebd9f1 fix rev order and add placeholder in ints[] 2011-12-10 01:07:39 +09:00
Damien Elmes
46443762c0 add the ability to create a new deck conf from existing one 2011-12-10 00:47:04 +09:00
Damien Elmes
20ffbd57a7 don't need relearn flag, can infer from empty delays list 2011-12-09 08:36:00 +09:00
Damien Elmes
451962d4a8 drop the special config for top level decks
New/rev card mixing, collapse time and the timeboxing limit are now a
collection property. I appreciate how it could be useful to have those
settings per top-level deck in some cases, but having some settings inherited
from the top level deck makes for a confusing UI.
2011-12-09 07:55:40 +09:00
Damien Elmes
8c9c3489e5 fetch reviews in subdecks incrementally like new cards
- allows separate review order for different decks
- makes new card and rev card handling consistent
- for users who find it confusing to have cards from different decks mixed in
  and thus click on each deck in turn, they can now just select the parent
  deck and have it work as expected
- for users who want their cards mixed together randomly, they can keep the
  cards in a single deck
2011-12-09 04:02:43 +09:00
Damien Elmes
d94f6d2011 block illegal filename characters 2011-12-08 19:23:11 +09:00
Damien Elmes
95106908dd check sort field when searching
If the field they want to search is the one being used to sort, this saves us
having to go the full search route
2011-12-08 09:53:27 +09:00
Damien Elmes
08660f6bf8 test db integrity before upload 2011-12-08 01:06:33 +09:00
Damien Elmes
0ef3fe5d75 fix media unittest, turn of sync during upgrade 2011-12-07 23:23:58 +09:00
Damien Elmes
6356e6f06b make sure we mod deck on current deck change 2011-12-07 21:50:26 +09:00
Damien Elmes
dd7434a44d use a class instead of id to specify card styling 2011-12-07 20:04:47 +09:00
Damien Elmes
81c4d24b0e make sure we bump usn when uploading, or next sync sends data back 2011-12-07 19:59:11 +09:00
Damien Elmes
45ebbd14c8 fix revlog upgrading 2011-12-07 19:58:31 +09:00
Damien Elmes
8358c7e686 remove obsolete queue arg 2011-12-07 19:35:32 +09:00
Damien Elmes
6ce8c9b608 drop tags from sanity check
Since we rely on fixIntegrity() to garbage-collect tags and don't try to add
unused ones to the graves, after a check the tag counts will fall out of sync.
2011-12-07 18:33:43 +09:00
Damien Elmes
593e45a9bb decrease timeout to 30; httplib2 retries for us 2011-12-07 18:08:15 +09:00
Damien Elmes
4b190c3586 run all sync requests through one function 2011-12-07 17:57:07 +09:00
Damien Elmes
9b76a4669c compress zip, add media sanity check 2011-12-06 23:36:01 +09:00
Damien Elmes
fabec6e920 more sync resuming changes
The server now returns the next usn after every addFiles(), so an interrupted
upload doesn't cause the uploaded material to be sent back down.
2011-12-06 23:04:26 +09:00
Damien Elmes
be66c960a9 rework media syncing so we can resume 2011-12-06 22:18:41 +09:00
Damien Elmes
c0edcae238 fix some sync bugs
- don't send server graves graves back on the next sync
- make sure we update usns of models/tags/decks as well on upload
- don't die when updating decks after current deck deleted
- report counts when sanity check fails
2011-12-06 01:35:54 +09:00
Damien Elmes
52234f9d9a removeHook -> remHook 2011-12-06 00:12:36 +09:00
Damien Elmes
4a88885e83 default to compression level 6 2011-12-06 00:05:39 +09:00
Damien Elmes
594204a134 queue argument is obsolete 2011-12-06 00:05:14 +09:00
Damien Elmes
5a3d65ac61 send zips in 2.5MB increments 2011-12-05 22:06:23 +09:00
Damien Elmes
14f7c366d0 add base62 2011-12-05 22:06:09 +09:00
Damien Elmes
d52b2d4801 if counts() is passed a card, add the necessary count 2011-12-05 19:34:25 +09:00
Damien Elmes
8308c79fa6 minor refactor of count handling
- drop lrnCount; rename lrnRepCount to lrnCount
- on card fetch, decr count by card.left
- drop cardCounts(), rename repCounts() to just counts()
- fix lrn count bugs
2011-12-05 19:15:46 +09:00
Damien Elmes
e7101faff7 don't overcount learning reps by 1 2011-12-05 17:57:32 +09:00
Damien Elmes
41636f41f8 tweak sync error handling 2011-12-05 17:44:54 +09:00
Damien Elmes
0395047579 initial usn is 0, so distinguish between 0 and false 2011-12-05 15:27:06 +09:00
Damien Elmes
b33c2e99c0 return false, not 'continue', when not finished 2011-12-05 14:43:32 +09:00
Damien Elmes
b99dbb1466 don't .reset() on deck load by default anymore 2011-12-05 13:40:37 +09:00
Damien Elmes
e85603dae6 fix certs bundling 2011-12-04 19:09:47 +09:00
Damien Elmes
cca3b5cba6 scm ts should be ms too, fix unit tests 2011-12-04 17:52:01 +09:00
Damien Elmes
3b0334b04d add schema check to note save 2011-12-04 16:28:01 +09:00
Damien Elmes
1ec747dbb4 tweak sync hooks 2011-12-04 15:56:38 +09:00
Damien Elmes
6bad4cc8c2 fix sanity check 2011-12-04 15:23:43 +09:00
Damien Elmes
9d5357f7a6 after a save, revert to unmodified state; sync tweaks 2011-12-04 14:56:12 +09:00
Damien Elmes
cdb33cf6a8 don't bump mod time unless the db has actually been changed 2011-12-04 13:51:13 +09:00
Damien Elmes
0ff59b87e9 make sure we commit after media operations 2011-12-04 13:00:38 +09:00
Damien Elmes
457ee809f4 don't implicitly commit in context manager 2011-12-04 13:00:24 +09:00
Damien Elmes
8fff05618c check download before overwrite 2011-12-03 22:15:36 +09:00
Damien Elmes
6965a9c102 sync tweaks 2011-12-03 21:06:27 +09:00
Damien Elmes
d148a6cf1b bundle ssl certs; share con across all sync types 2011-12-03 16:38:45 +09:00
Damien Elmes
92352d4725 convert guid to base 91 string
Because JSON doesn't support 64 bit numbers, we need to either convert the 64
bit numbers to a string during transport, or store the ids as a string. At
base 91 a 64 bit number only takes an extra two bytes, and it means we can
dump DB results directly into JSON without having to apply any transformation.
2011-12-03 14:25:18 +09:00
Damien Elmes
1db4b41e23 use WAL mode if available; don't delete media in check 2011-12-02 22:44:00 +09:00
Damien Elmes
c961b5843a fix ivl estimation for new cards 2011-12-02 22:10:33 +09:00
Damien Elmes
8f1404642a always generate new cards on edit; don't delete 2011-12-02 21:52:33 +09:00
Damien Elmes
88da227ce1 don't make optimize/check force a full sync anymore 2011-12-02 21:52:10 +09:00
Damien Elmes
a0d910201d don't add two typeans fields on upgrade 2011-12-02 17:37:10 +09:00
Damien Elmes
dc73ba8e47 add #answerStart to default hr so we can scroll to answer 2011-12-02 17:25:40 +09:00
Damien Elmes
4a3b190453 fix bug in rev ivl adjustment that could lead to 0 day interval 2011-12-01 17:35:26 +09:00
Damien Elmes
320bb7c82f change stats alignment 2011-12-01 17:15:17 +09:00
Damien Elmes
e8f4d04420 fix hourly retention graph 2011-12-01 13:25:40 +09:00
Damien Elmes
74518264e0 raise an exception when an invalid sort type is passed 2011-11-30 12:34:49 +09:00
Damien Elmes
a1693a3691 field operations should mod the schema immediately 2011-11-30 10:57:42 +09:00
Damien Elmes
49c0a5dd82 add review count back 2011-11-29 17:12:08 +09:00
Damien Elmes
347bfbbff5 tweak stats layout 2011-11-29 16:48:18 +09:00
Damien Elmes
56ec1c6135 fix upgrading of revlog 2011-11-29 10:34:49 +09:00
Damien Elmes
3d1756df9b tweak stats 2011-11-29 10:18:37 +09:00
Damien Elmes
9dbb0b90d5 fix updateFieldCache() call 2011-11-28 21:30:47 +09:00
Damien Elmes
be3258b0a8 fix field limiting 2011-11-28 20:51:47 +09:00
Damien Elmes
73b80211c2 add current deck limit 2011-11-28 20:48:14 +09:00
Damien Elmes
8c1266ab2a less terse card state searches 2011-11-28 20:18:16 +09:00
Damien Elmes
67e4f0d1cc tweak find code 2011-11-28 20:04:39 +09:00
Damien Elmes
d903b50d5f upgrade tweaks 2011-11-28 19:14:10 +09:00
Damien Elmes
bd29318168 catch incorrect ordinals on upgrade 2011-11-28 16:57:58 +09:00
Damien Elmes
cd76706a2f make sure to remove inactive templates properly 2011-11-28 16:10:41 +09:00
Damien Elmes
0032dd39c9 return 0 count when media not copied 2011-11-28 16:05:48 +09:00
Damien Elmes
c0e2a0ba50 identify whether it's a dupe or empty 2011-11-28 16:05:37 +09:00
Damien Elmes
1235f8362a type answer is now a template replacement 2011-11-28 15:15:38 +09:00
Damien Elmes
223cc48052 don't wrap template in div; reference #card instead
We want the background color to fill the card area rather than only the size
of the card content, so we need to set the CSS for the outer container
instead.
2011-11-28 14:45:43 +09:00
Damien Elmes
ddd890ee75 more fixes for schema being accidentally modified on model add 2011-11-27 13:50:49 +09:00
Damien Elmes
478e4c9212 use the original id if available when importing 2011-11-26 12:06:17 +09:00
Damien Elmes
20c1799be5 add back the ability to show the entire collection stats 2011-11-26 10:28:42 +09:00
Damien Elmes
592078545e don't fail when upgrading an empty deck 2011-11-25 14:20:18 +09:00
Damien Elmes
39f3c84661 point out that old files are invalid too 2011-11-25 14:19:41 +09:00
Damien Elmes
faf2f061a8 log imported card/media counts 2011-11-25 14:13:14 +09:00
Damien Elmes
b5c0b1f2c7 drop required/unique field properties
Instead of having required and unique flags for every field, enforce both
requirements on the first field, and neither on the rest. This mirrors the
subject/body format people are used to in note-taking apps. The subject
defines the object being learnt, and the remaining fields represent properties
of that object.

In the past, duplicate checking served two purposes: it quickly notified the
user that they're entering the same fact twice, and it notified the user if
they'd accidentally mistyped a secondary field. The former behaviour is
important for avoiding wasted effort, and so it should be done in real time.
The latter behaviour is not essential however - a typo is not wasted effort,
and it could be fixed in a periodic 'find duplicates' function. Given that
some users ended up with sluggish decks due to the overhead a large number of
facts * a large number of unique fields caused, this seems like a change for
the better.

This also means Anki will let you add notes as long as as the first field has
been filled out. Again, this is not a big deal: Anki is still checking to make
sure one or more cards will be generated, and the user can easily add any
missing fields later.

As a bonus, this change simplifies field configuration somewhat. As the card
layout and field dialogs are a popular point of confusion, the more they can
be simplified, the better.
2011-11-24 22:16:03 +09:00
Damien Elmes
daea038aa4 deckCounts -> deckDue 2011-11-24 17:04:26 +09:00
Damien Elmes
fae153c2af don't mod schema when adding new models 2011-11-24 16:33:40 +09:00
Damien Elmes
f7790275ce groups -> decks 2011-11-23 19:28:09 +09:00
Damien Elmes
279a942642 deck -> collection 2011-11-23 17:47:44 +09:00
Damien Elmes
6e4e8249fb facts -> notes 2011-11-23 12:37:21 +09:00
Damien Elmes
10e1c1b03e tweak tag handling 2011-11-23 11:39:33 +09:00
Damien Elmes
ffc096e308 the generated cards should note use msecs 2011-11-22 08:50:23 +09:00
Damien Elmes
4a601416bc keep typeAns as a field name
We have the fact loaded into memory anyway for the q/a display
2011-11-19 23:36:40 +09:00
Damien Elmes
7a5cee1d20 remove remaining CSS; more template properties into div 2011-11-18 08:25:56 +09:00
Damien Elmes
15e4b64162 new approach to hideQ
Instead of a separate option to hide question, embed the question into the
answer format by default. Users who don't want to see the question can remove
the question fields, and users who want a separator between the question and
answer (or not) can control it in HTML now.

Also, remove obsolete field CSS, and don't accidentally chomp a character on
upgrade.
2011-11-18 05:15:15 +09:00
Damien Elmes
c76c08069e change template replacement behaviour
Previously {{field}} wrapped the field in a span with the field's font
properties. This wasn't obvious, and caused frequent problems with people
trying to combine field and template text, or use field content in dictionary
links.

Now that AnkiWeb has a wizard for configuring the front & back layout, we can
just put the formatting in the template instead.
2011-11-18 02:50:47 +09:00
Damien Elmes
770f402905 don't allow template removal to orphan facts 2011-11-17 23:09:18 +09:00
Damien Elmes
a51307701d del -> rem for consistency 2011-11-17 22:55:03 +09:00
Damien Elmes
16ecfe4097 add forgetting index adj; thanks to adam mesha for the inspiration 2011-11-15 19:15:22 +09:00
Damien Elmes
58c56c433a apply review limit; fix finished msg 2011-11-15 04:05:44 +09:00
Damien Elmes
4a4f4797db update daily counts on reset instead of each review 2011-11-15 02:53:55 +09:00
Damien Elmes
0dfcfd9171 make sure conf name set on create 2011-11-14 23:33:05 +09:00
Damien Elmes
47f4b271dc mark recycled models for card generation; drop superfluous flagModels 2011-11-08 22:32:43 +09:00
Damien Elmes
357e5e7036 media.check() takes a list of files for ankiweb integration 2011-11-08 22:32:24 +09:00
Damien Elmes
01b297babc fix model gencards 2011-11-08 22:32:02 +09:00
Damien Elmes
37b3de23cf remove inactive templates that are unused on upgrade 2011-11-08 18:52:31 +09:00
Damien Elmes
795cdd7d3f remove the concept of non-active templates
The old template handling was too complicated, and generated frequent
questions on the forums. By dropping non-active templates we can do away with
the generate cards function, and advanced users can simulate the old behaviour
by using conditional field templates.
2011-11-08 18:06:19 +09:00
Damien Elmes
f8eefe5ee1 model deleting should use the string id 2011-11-07 18:38:48 +09:00
Damien Elmes
c6c6af4328 split remote sync tests into separate file 2011-11-07 16:21:29 +09:00
Damien Elmes
aef7626557 add fieldNames(); fix scmhash() 2011-11-07 14:27:15 +09:00
Damien Elmes
688a680b54 when importing, set the new group as current 2011-11-07 14:26:56 +09:00
Damien Elmes
cbdb283b20 refactor model copying 2011-10-31 11:34:03 +09:00
Damien Elmes
b1bf50c677 make sure to save after import 2011-10-30 19:04:52 +09:00
Damien Elmes
3bf0b253f2 handle bad field references and tags; don't create empty fields 2011-10-30 10:12:24 +09:00
Damien Elmes
e99e7baa3c need to keep latex in unicode until preamble concat 2011-10-29 21:36:29 +09:00
Damien Elmes
82f9d484da don't die on non-field references 2011-10-29 20:11:37 +09:00
Damien Elmes
0c03da52f5 fix latex rewriting 2011-10-29 17:15:13 +09:00
Damien Elmes
7a849fccc5 fix allMedia() and unit tests 2011-10-29 15:31:27 +09:00
Damien Elmes
ed7367d67f fix reporting of latex errors; catch some bad commands 2011-10-29 15:12:57 +09:00
Damien Elmes
6911ae839e on upgrade convert media references in template to separate field 2011-10-29 10:44:32 +09:00
Damien Elmes
ad81a564d1 don't leak fds in upgrade 2011-10-27 17:42:23 +09:00
Damien Elmes
caf46e948a speed up import when there are lots of duplicate ids 2011-10-26 15:37:18 +09:00
Damien Elmes
1edd724c3e raise an error on an invalid file import, so cmd line tools notice 2011-10-26 15:16:32 +09:00
Damien Elmes
37ea359931 add indices to upgrade check if missing 2011-10-26 12:19:12 +09:00
Damien Elmes
4668b1a210 on import make sure we update post; use static random range 2011-10-26 06:24:14 +09:00
Damien Elmes
c16cb6ee9b fix more bugs in group count tree 2011-10-24 01:28:43 +09:00