Damien Elmes
370fc00afd
handle older clients not setting 'done' key when false
2021-01-24 09:05:17 +10:00
Damien Elmes
2a875ffc55
Merge pull request #934 from hgiesel/graphprefs
...
Add GraphsPreferences API to graphs for setting persistent preferences
2021-01-23 21:24:41 +10:00
Damien Elmes
37ca8afaf6
minor wording tweak: GraphsPreferences -> GraphPreferences
2021-01-23 20:47:45 +10:00
Damien Elmes
bdc5c619f7
handle decks/notetypes with a duplicate name being sent in a sync
...
Typically caused by older clients, but could happen if the user added
the same name on different devices without syncing.
Also add an inactive test that was used to try track down this issue
and might be useful in the future.
2021-01-23 12:59:24 +10:00
Henrik Giesel
de71123ab4
Rename GraphsPreferencesOut to simply GraphsPreferences
2021-01-22 19:39:03 +01:00
Henrik Giesel
ebd3ca8a8f
Set calendar labels to emptyColour
2021-01-22 18:15:16 +01:00
Henrik Giesel
834f2de99b
Make cardCountsSeparateInactive settable
2021-01-22 18:03:58 +01:00
Henrik Giesel
aebaa04652
Uniformly rename firstWeekday to firstDayOfWeek
2021-01-22 16:53:33 +01:00
Henrik Giesel
054c30a695
Add non-functioning logic for settings graphs preferences
2021-01-22 13:14:35 +01:00
Henrik Giesel
665a13e378
Add GraphsPreferences endpoint to backend
2021-01-22 13:13:48 +01:00
Damien Elmes
99d732799c
(de)serialize Weekday directly
...
Re: discussion in https://github.com/ankitects/anki/pull/934
2021-01-22 12:12:57 +10:00
Damien Elmes
a77aa6b65a
handle non-chunked graves from AnkiDroid
2021-01-22 10:00:25 +10:00
Damien Elmes
ce50b1cddf
add missing file header
2021-01-21 10:31:34 +10:00
Damien Elmes
44cde24679
fix context in rated: search error message
2021-01-19 18:33:10 +10:00
Damien Elmes
d273ebb756
more parsing error tweaks
...
The majority of the error checking can now be delegated to routines
like parse_f32(), parse_negative_i32() and so on, instead of creating
specific error messages for each type.
2021-01-19 15:50:26 +10:00
Damien Elmes
0b83efb63e
simplify write_props() and associated translations
...
This is a work in progress; see associated PR discussion to follow.
2021-01-19 12:40:16 +10:00
Damien Elmes
a4ec467284
have register_tag mutate the tag if it changes it, instead of copying
2021-01-19 12:37:51 +10:00
Damien Elmes
9edb002679
fix deck and tag normalization
...
The issue existed in the deck code as well; I've added a test for it.
2021-01-19 12:36:01 +10:00
Damien Elmes
09bea954a2
Merge pull request #929 from abdnh/tag-case
...
Make tags match their parents case
2021-01-19 11:56:03 +10:00
Damien Elmes
71f1d3b982
tweaks to the parent matching behaviour
...
- move logic out of the storage layer - its job is only to read
and write data from the DB
- avoid the Result within a Result
- return the preferred case as an option, so we can avoid a copy
in the unchanged case
- return a Cow when normalizing, so we can avoid copying in the
unchanged case
- add tags directly in clear_unused_tags(), so we avoid doing
lookups for every tag in the tag list
2021-01-19 11:52:24 +10:00
abdo
3159cf4ab6
Make tags match their parents case
...
https://github.com/ankitects/anki/pull/900/#issuecomment-762018745
2021-01-19 02:29:09 +03:00
Henrik Giesel
a5947e5c65
Satisfy formatter
2021-01-19 00:17:30 +01:00
Henrik Giesel
04e606bf4b
Add firstWeekday to GraphsOut
2021-01-18 23:10:53 +01:00
Damien Elmes
318cc01c73
Merge pull request #900 from abdnh/tagtree
...
Hierarchical tags
2021-01-18 16:36:22 +10:00
abdo
0ac97cf358
clear_tag() should be case-insensitive
2021-01-18 03:52:28 +03:00
Henrik Giesel
84c997fa4d
Adjust unit tests for new InvalidRatedEase
2021-01-18 00:05:20 +01:00
Henrik Giesel
bdc6494c79
Generalize InvalidRatedEase error for rated and prop:rated
2021-01-17 23:55:05 +01:00
Henrik Giesel
2b45ef22a5
Use explicit unreachable in rust pattern matching
2021-01-17 22:18:12 +01:00
Henrik Giesel
bc81165be4
Add resched to tags
2021-01-17 21:44:56 +01:00
Henrik Giesel
947260e4aa
Reintroduce false removed limits
2021-01-16 17:38:02 +01:00
Henrik Giesel
e7660113ce
Change argument order of write_rated to be more in line with the logic
2021-01-16 15:24:22 +01:00
Henrik Giesel
112e7f577e
Lift the 365 limit from rated/resched searches
2021-01-16 15:08:15 +01:00
Henrik Giesel
47542f97e5
Fix issues after rebasing
2021-01-16 13:07:35 +01:00
Henrik Giesel
908e0a375c
Being overly correct with the review ids
2021-01-16 12:45:02 +01:00
Henrik Giesel
8f3c63bf0b
Fix formatting
2021-01-16 12:45:02 +01:00
Henrik Giesel
88c75d73b6
Pass in the the negative offset day to write_rated
2021-01-16 12:44:59 +01:00
Henrik Giesel
3788cb8890
Port prop:rated to EaseKind
2021-01-16 12:44:03 +01:00
Henrik Giesel
b57d0da12a
Implement functioning prop:rated
2021-01-16 12:42:08 +01:00
Henrik Giesel
ce55dc4a75
Add nonfunctional "prop:rated" as possible search query
2021-01-16 12:42:06 +01:00
Damien Elmes
34245e6f72
use of 'self' in function name was confusing
2021-01-16 21:14:55 +10:00
Damien Elmes
9f964916ab
simplify unused tags and DB check
...
- backend routines should contain minimal logic, and should call
into a routine on the collection
- instead of copying the giant-string approach the Python code was taking,
we use a HashSet to keep track of seen tags as we loop through the
notes, which should be more efficient
2021-01-16 20:38:16 +10:00
Damien Elmes
d80a5c56e3
no need for separate all_tags_sorted()
...
tag is the primary key, so sqlite will give it back to us in
sorted order already.
2021-01-16 19:46:58 +10:00
Damien Elmes
d54acba81f
custom ord/partialeq is not required; fix clippy lint
2021-01-16 19:44:37 +10:00
Damien Elmes
a390a77815
handle missing parent names with varying case
...
Also convert to \x1f before sorting, so that numbers (with have a lower
ascii order than '::') don't mess up the sort.
2021-01-16 19:42:25 +10:00
Damien Elmes
6f7c68b661
add a (currently failing) test for duplicate parent names
2021-01-16 19:04:25 +10:00
Damien Elmes
9686cd99ec
search error tweaks
...
- use markdown instead of HTML, to make editing and translating easier
- use a shared prefix
- a few very minor wording tweaks
- we don't need to translate undocumented command errors
- share a string for positive number of days
- share a string for invalid property and state arguments, and avoid
listing them out
Related discussion: https://github.com/ankitects/anki/pull/922
2021-01-16 15:59:19 +10:00
RumovZ
5b03d1e2c8
Add resched error tests
2021-01-15 10:57:55 +01:00
RumovZ
cb4a103bb1
Merge branch 'master' into search-errors
...
Add error support for new resched node, update rated error.
2021-01-15 10:50:02 +01:00
RumovZ
c8f0961c6c
Include context in search error test
2021-01-15 09:09:54 +01:00
abdo
e018ea94b6
Merge branch 'master' of https://github.com/ankitects/anki into tagtree
2021-01-15 01:12:01 +03:00
RumovZ
182abfe66d
Encode HTML entities in search errors
2021-01-14 23:02:39 +01:00
RumovZ
2a2ac38a1b
Add search context for certain error kinds
2021-01-14 22:40:07 +01:00
RumovZ
5f05ca2548
Rename ParseErrorKind to SearchErrorKind
2021-01-14 22:00:52 +01:00
RumovZ
6af1852611
Add errorkind test
2021-01-14 19:10:12 +01:00
RumovZ
8f754e1525
Add FailKinds for unopened/unclosed groups
2021-01-14 19:09:31 +01:00
RumovZ
0b73110f82
Make AnkiError::SearchError work with ParseError
...
Use mock ftl strings for now.
2021-01-14 11:14:55 +01:00
RumovZ
4afb476f04
Fix text node parsers, add FailKind alias
2021-01-14 11:10:33 +01:00
abdo
831942c2e2
Fix unicode tag sorting
2021-01-14 07:04:55 +03:00
abdo
ee3c019804
Remove Default impl of Tag
2021-01-14 07:04:55 +03:00
abdo
9c1d7c522a
Refactor code for clearing unused tags and saving collapse state
2021-01-14 07:04:14 +03:00
RumovZ
6d9cfb85ab
Add pb message for dupe filter
2021-01-14 10:42:37 +10:00
RumovZ
d9bb20ac24
Expect backslashes to be escaped in dupe:
text
2021-01-14 10:42:37 +10:00
RumovZ
f4cfccfc0a
Fix writing dupe nodes
...
Rename comments and dupe functions on the backend accordingly to avoid
further confusion.
2021-01-14 10:42:37 +10:00
Damien Elmes
7d81d39be7
Merge pull request #918 from hgiesel/ratedflags
...
Introduce `resched:n` instead of `rated:n:0`
2021-01-14 10:19:10 +10:00
RumovZ
3aa15a7139
Optimise term parsers
2021-01-13 14:15:57 +01:00
RumovZ
447ff6931c
Move parse errors, add helper func for parse fail
2021-01-13 13:23:25 +01:00
Henrik Giesel
9f7170ac0f
Change "between 1 and 4" to "> 0"
2021-01-13 11:44:54 +01:00
Henrik Giesel
c0ec21b139
Rename EaseKind values
2021-01-13 11:41:48 +01:00
Damien Elmes
633034b24d
add local sync server frontend
2021-01-13 11:42:00 +10:00
abdo
72e8f9d640
Merge branch 'master' of https://github.com/ankitects/anki into tagtree
2021-01-12 23:31:58 +03:00
abdo
9a68d84483
Keep tags in human form and update the tags table structure
...
See https://github.com/ankitects/anki/pull/900#issuecomment-758284016
- Leave tag names alone and add the collapsed and config columns to the tags table.
- Update The DB check code to preserve the collapse state of used tags.
- Add a simple test for clearing tags and their children
2021-01-12 23:12:35 +03:00
RumovZ
b89381ac95
Fix top-level search errorkinds
2021-01-12 17:32:26 +01:00
Damien Elmes
fbd91b22f5
tidy up UTC offset handling/timing calculations
...
- use the TimestampSecs newtype instead of raw i64s
- use FixedOffset instead of a minutes_west offset
- check localOffset each time the timing is calculated, and set it
if it's stale - even for v1.
- check for and fix missing rollover when calculating timing
- stop explicitly passing localOffset in the sync/start call
2021-01-12 21:32:56 +10:00
RumovZ
d00c54aacf
Switch parser to custom erros and results
2021-01-12 10:43:12 +01:00
Damien Elmes
553908a856
add .clang-format so VS Code preserves formatting style on .proto save
2021-01-12 18:47:08 +10:00
Damien Elmes
31f941267c
move sync JSON into separate file; add enum wrapper
2021-01-12 18:47:08 +10:00
Damien Elmes
09dfa9ced6
allow normal sync tests to run offline
2021-01-12 18:47:08 +10:00
Damien Elmes
f6c1a91674
use '<=' when merging UnchunkableChanges
...
Prevents current tests from failing when testing locally, due the current
second not changing between syncs.
2021-01-12 18:47:08 +10:00
Henrik Giesel
81d851610e
Coerce resched:days as well
2021-01-11 17:25:42 +01:00
Henrik Giesel
5eb2c7b271
Satisfy rslib unit tests
2021-01-11 17:18:40 +01:00
Henrik Giesel
7a7152fe27
Remove EaseKind impl in favor of transforming to sql in function
2021-01-11 17:10:17 +01:00
Henrik Giesel
cbfe14ef4f
Introduce "resched:n" instead of 0 and a flag for "rated"
2021-01-11 16:40:30 +01:00
Henrik Giesel
7e58660aab
Modify default behavior of rated searches to exclude manual
2021-01-11 16:40:30 +01:00
Damien Elmes
9225c804db
update Rust deps; add async_trait
2021-01-11 19:19:45 +10:00
Damien Elmes
401d5dd9cc
Merge pull request #917 from hgiesel/querynozero3
...
Coerce added/edited:0 to 1, Constrain rated:n to 1-365
2021-01-11 16:24:12 +10:00
Henrik Giesel
0b955c3699
Fix formatting
2021-01-10 16:38:20 +01:00
Henrik Giesel
adf969d37f
Add a few rslib unit tests
2021-01-10 16:29:10 +01:00
Henrik Giesel
8f01887fe7
Remove coercion in write_rated
2021-01-10 16:23:53 +01:00
Henrik Giesel
87bc1e69b0
Coerce added/edited:0 to 1, constrain rated:n to 1 <= 365
2021-01-10 16:16:17 +01:00
Damien Elmes
5f70d718b8
favour readability over brevity in filter conversion
2021-01-10 09:19:33 +10:00
Damien Elmes
4ba4e8ca78
Merge pull request #913 from RumovZ/fix-write-template
...
Fix ordinal case in write_template
2021-01-10 08:58:00 +10:00
Damien Elmes
3f9604457d
Merge pull request #911 from RumovZ/backend-filters
...
Backend filters
2021-01-10 08:56:57 +10:00
Damien Elmes
4d471612ec
fix protobuf formatting adding carriage returns on Windows
2021-01-10 08:48:20 +10:00
RumovZ
0629f80aeb
Format backend.proto
2021-01-09 20:09:47 +01:00
RumovZ
f83553c82a
Merge branch 'master' into backend-filters
...
Adapt new formatting.
2021-01-09 19:03:43 +01:00
RumovZ
ca62f3ef80
Fix ordinal case in write_template
...
Internal card ordinals start at 0, so add 1 again when writing a
template search string from a parsed ordinal.
2021-01-09 17:30:12 +01:00
abdo
0b5bb711a1
Remove unused backend methods & formatting
2021-01-09 17:48:34 +03:00
abdo
5919d9273f
Fix tag collapse state not getting updated
2021-01-09 17:46:52 +03:00
abdo
97b4c2124c
sql formatting
2021-01-09 17:38:16 +03:00
abdo
f7f509c70d
Move tag collapse method to the backend
2021-01-09 17:10:16 +03:00