Closed L-M-Sherlock closed 1 week ago
Like https://github.com/open-spaced-repetition/fsrs4anki-helper/pull/455, this should force a one-way sync.
@user1823 nice catch. The last 90ed304 comment should solve it.
@user1823 could you help me improve the wording?
Can you first explain what is the actual purpose of this feature? Is it aimed at removing just the "Reschedule cards on change" entries with the other entries being removed only because we can't keep them?
Yes, it aims at removing the useless entires generated by "Reschedule cards on change". In extreme case, the percentage of this kind of useless entires will reach 25%.
@Expertium, I hope you can elaborate it: https://discord.com/channels/368267295601983490/1282005522513530952/1304016208080666634
In Anki 24.11+, we can distinguish between Reschedule cards on change
and Set due date
entries (only those entries which were created after the update). However, if we still have to use the same SQL query because the older entries are ambiguous, I am wondering what was the benefit of that change.
Probably we need to make it more configurable. I am thinking something along these lines:
type = 5
.@Expertium, WDYT? If you agree, can you help in designing the UI for this?
What I've always thought would be a good solution for this would be to delete any manual review that comes directly before another manual review. That way the set due dates/reschedules that were never reviewed would be cleared while still leaving any reschedules/manual sets that actually matter.
Example:
What I've always thought would be a good solution for this would be to delete any manual review that comes directly before another manual review.
Could you help write the SQL? Or implement it in another way?
DELETE FROM revlog as cur
WHERE cur.type >= 4
AND cur.factor <> 0
AND (
SELECT type
FROM revlog
WHERE id = (
SELECT min(id)
FROM revlog
WHERE id > cur.id
AND cid == cur.cid
)
) >= 4
This should work
Have a try:
Delete redundant manual revlog entries → force full sync? [yes] → remove revlog entries generated by "Set due date"? [no] → normal sync [y]. The yes/no dialogs should be in the other order, so that I'm locked into full syncing immediately after the full sync dialog.
Sorry, I'm confused. I think force full sync
is necessary. If it's unnecessary, I have to rewrite the dialog of force full sync
.
Yes, it is necessary.
But, move the full sync dialog AFTER you tell the user what this option does.
So, if not ask_one_way_sync(): return
comes just before revlog_ids = mw.col.db.list(
Preview:
Patch:
fsrs4anki-helper.ankiaddon.zip