If you rapidly move from a list view while it was being refreshed then
changed URL is applied on a page that MIGHT not be the list/report view.
This check ensures that same page is present before updating URL.
### BREAKING CHANGE
#### Datetime, Date and Time fields will always be cast to respective objects in `setattr`, this will ensure uniformity while accessing the values, no more `getdate`, `get_datetime`, `to_timedelta` wrapper.
- While importing data, the framework does check for `set_only_once`.
- In normal case scenarios, this will work flawlessly since most date fields might not be set_only_once.
- But in Subscription, the date field is set to `set_only_once` and in `after_insert`, `document.save` is called, and while doing so, `set_only_once` is checked [here](1944a547f9/frappe/model/document.py (L566)).
-This works fine if the data imported is in the correct format.
- If the date's data is not in the correct format, the framework throws an error.
- for eg `06-02-2022 00:00:00 != 06-02-2022`
- fixes [Issue/#15370](https://github.com/frappe/frappe/issues/15370)
> no-docs
Previously this was done in ERPNext but all currency formatting
functionality depends on this, hence moved to framework. Largely
rewritten from scratch.
### Issues
In the form timeline we show events like “{user} {created/viewed/edited} this {some_time_ago}”. If user is the current user, we used “You” instead of “Jon Doe”. This works in English, but in other languages it messes up the rest of the sentence.
Because of this, people added wrong translations of “You” that made the grammar work, but also made the message less clear.
Also, the _last viewed_ message used to link to **View Log**. That can be read by system managers only and doesn't hold additional information. So it's just a source of errors for users trying to click on it.
### Fixes
- don't mix up users and salutations. Always show user's full name.
- change the _last viewed_ message to work like the other two, remove link to **View Log**
### Demo
Logged an as Administrator:
English

German

* chore: warn about missing scheduler / doc events
* fix: pass list instead of filter
filter can only be iterated upon once
* refactor: many typehints in __init__.py
* ci: slightly faster patch test
This workflow doesn't seem to properly cache built versions :)
* ci: bump pyenv action to latest version
latest version has fix for tool cache
[skip ci]