Henrik Giesel
82a4e0abe8
Don't import now unused INITIAL_EASE_FACTOR_THOUSANDS
2021-01-08 19:32:36 +01:00
Henrik Giesel
caa536a753
Reset ease to 0 for after rescheduling cards as new
2021-01-08 18:15:24 +01:00
Damien Elmes
fe4da25e15
fix reposition not honoring provided order, and add unit test
2021-01-08 20:38:49 +10:00
Damien Elmes
dad4c76089
no need to log card resets when exporting
2021-01-05 11:11:37 +10:00
Damien Elmes
dee0a2fc18
fix reposition not being applied in browser sort order
...
https://forums.ankiweb.net/t/reposition-function-not-working/5817
Also changed id->cid in the non-sorting case, as otherwise when
using all_searched_cards() on a sorted list, the results will be wrong.
2020-12-16 10:58:46 +10:00
Damien Elmes
76acf04dc0
update schema to fix default initial ease in deck configs
...
Closes #766
- changes the on-disk representation from % to a multiplier,
eg 250 -> 2.5, as this is consistent with the other options
- resets deck configs at or below 1.3 to 2.5
- for any cards that were using a reset deck config, reset their
current factor if it's at or below 2.0x. The cutoff is arbitrary,
and just intended to make sure we catch cards the user has rated
Easy on multiple times. The existing due dates are left alone.
2020-09-22 08:16:39 +10:00
Damien Elmes
755a58b96c
fix incorrect SQL in previous change
2020-09-19 12:27:00 +10:00
Damien Elmes
8bde6749b1
sched_timing_today() needs a default rollover hour
...
When unset it was reverting to the V1 code.
https://forums.ankiweb.net/t/daily-counts-are-reset-on-sync/3441/16
2020-09-18 19:13:47 +10:00
Damien Elmes
56ceb6ba76
set_deck()
2020-09-03 17:42:46 +10:00
Damien Elmes
97778bec43
log 0 day interval as 1 day
...
Allows distinguishing it from resetting to new, and is treated as
a one day delay when answering anyway.
2020-09-03 16:00:06 +10:00
Damien Elmes
b65174a026
move card sorting and resetting to backend
2020-09-03 15:54:15 +10:00
Damien Elmes
ce49ca9401
log manual reschedule, but ignore the log entry in the stats
2020-09-02 17:56:23 +10:00
Damien Elmes
39212a38aa
move reschedCards() to backend
2020-09-02 17:56:23 +10:00
Damien Elmes
8f9037cf0f
move filtered deck empty/fill to backend
...
emptying of individual card ids still to be done
2020-09-02 17:56:23 +10:00
Damien Elmes
a834df60ce
rename some card+note fields in backend
2020-09-01 10:24:38 +10:00
Damien Elmes
d3dede057a
move bury/suspend into backend
2020-09-01 10:24:38 +10:00
Damien Elmes
ccfa989c62
move unbury/unsuspend routines into backend
2020-09-01 10:24:38 +10:00
Damien Elmes
e5685254c6
reimplement congrats screen in Rust+Typescript
2020-09-01 10:24:38 +10:00
Damien Elmes
4662a9fe1a
check if we need to unbury at the start of the sync process
...
https://forums.ankiweb.net/t/bug-buried-cards-in-filtered-decks-not-being-unburied-next-day/2541/24
2020-08-28 21:09:07 +10:00
Damien Elmes
7bcec00ef4
fix some clippy lints
2020-08-26 19:02:56 +10:00
Damien Elmes
19541c4a9d
fix deck tree with a day delta, and support arbitrary timestamps
2020-07-06 19:16:03 +10:00
Damien Elmes
e231895cc2
fix v2 scheduler cutoff being used if previously activated
2020-06-23 12:46:40 +09:00
Damien Elmes
b51f03085e
migrate card stats to backend
...
Currently this renders the HTML directly like the previous Python
implementation - doing it in JS would probably make more sense in the
future.
2020-06-15 17:22:16 +10:00
Damien Elmes
fee6cdff22
support generating a due tree for a different date
2020-06-05 09:38:31 +10:00
Damien Elmes
f2594b071e
fix cutoff adjustment test in other timezones
2020-05-18 14:08:02 +10:00
Damien Elmes
9317cee9ba
handle scheduling preferences in the backend
2020-05-12 21:13:34 +10:00
Damien Elmes
ea4f150455
fetch timing_today() params in backend
2020-05-12 21:13:34 +10:00
Damien Elmes
2c7900989c
fix default rollover
2020-05-12 21:13:34 +10:00
Damien Elmes
676f4e74a8
store config in separate DB table
...
- mtime is tracked on each key individually, which will allow
merging of config changes when syncing in the future
- added col.(get|set|remove)_config()
- in order to support existing code that was mutating returned
values (eg col.conf["something"]["another"] = 5), the returned list/dict
will be automatically wrapped so that when the value is dropped, it
will save the mutated item back to the DB if it's changed. Code that
is fetching lists/dicts from the config like so:
col.conf["foo"]["bar"] = baz
col.setMod()
will continue to work in most case, but should be gradually updated to:
conf = col.get_config("foo")
conf["bar"] = baz
col.set_config("foo", conf)
2020-04-06 15:39:47 +10:00
Damien Elmes
546f4b44fc
FString -> TR
2020-04-01 18:16:43 +10:00
Damien Elmes
25ff4642ec
accept now_mins_west for v2 legacy timing as well
2020-03-22 17:33:14 +10:00
Damien Elmes
69d8cdd9ed
use backend for v1 and v2 cutoff calculations
...
this should also fix the CI failures, which were happening because
the datetime module wasn't matching the shifted time.time()
2020-03-22 14:28:26 +10:00
Damien Elmes
2beccd377b
add v1 and v2 legacy timing code
2020-03-20 21:15:23 +10:00
Damien Elmes
ba4fe71eba
make logging explicit, and support logging to a file
2020-02-29 20:44:01 +10:00
Damien Elmes
4781ed4d70
fix display of years
2020-02-28 17:14:35 +10:00
Damien Elmes
fbbbbd6a7d
tweak rounding
...
- avoid rounding minutes
- round the seconds taken in the card info screen
- provide different precise and imprecise modes, since we need
to display seconds to multiple decimals in some areas
2020-02-25 17:29:06 +10:00
Damien Elmes
b1a192b384
cap answer buttons to 1 decimal place
...
we can switch to NUMBER() instead in the future, but will need
to update all the translations at the same time
2020-02-25 13:24:29 +10:00
Damien Elmes
c58b4158a7
use Fluent's number formatting; don't show trailing zeros
...
We can add NUMBER() in the future for more control, but this will
do for the time being.
2020-02-25 13:22:41 +10:00
Damien Elmes
4430c67069
rework Fluent handling
...
- all .ftl files for a language are concatenated into a single file
at build time
- all languages are included in the binary
- external ftl files placed in the ftl folder can override the
built-in definitions
- constants are automatically generated for each string key
- dropped the separate StringsGroup enum
2020-02-23 13:22:50 +10:00
Damien Elmes
972aee5f7a
add next learning due time + remaining count to congrats screen
...
https://anki.tenderapp.com/discussions/ankidesktop/38000-v2-scheduler-learning-cards
2020-02-21 19:54:50 +10:00
Damien Elmes
49fe080636
add studied_today(), move to statistics.ftl
2020-02-21 18:01:15 +10:00
Damien Elmes
71e7568904
remove unused import
2020-02-21 15:29:38 +10:00
Damien Elmes
d69a98a0d4
add 'studied-today' to Fluent
...
The string has been constructed in parts so the old translations
could be preserved
2020-02-21 15:29:38 +10:00
Damien Elmes
2fc15d0d3a
add non-abbreviated timespan translation; update existing short=True calls
...
- drop the '5m3s' special casing done in the card stats screen, and
just use decimals
- change alignment of the review log so that the non-abbreviated
spans are easier to read
2020-02-21 15:29:38 +10:00
Damien Elmes
99c07cfdcb
move answer_button_time to the backend, split sched into separate module
2020-02-21 15:29:38 +10:00