* fix: Avoid Snapshot violation
- Main thread created and "read" user
- Other thread modified something
- Main thread wants to delete or "write" to same row.
This violates snapshot isolation.
* fix: treat snapshot violation as deadlock for now
* test: handle snapshot violations
* Don't show repeatable events starting in the future for the past dates
[fix]
* Simplify logic & variables naming for better maintainability, reduce
unnecessary looping, data structures [perf]
* Use standard library when possible [refactor]
(cherry picked from commit 4570758b5fd02e724b8b044abdd1a3817bcef35b)
* Simplify logical flows based on flow of data & transactions
* Reduce indents
* Remove redundant blocks
* Make code less brittle in redirect_uri generation
* Add typing wherever valuable
* Check if sync is enabled before refreshing token & shit - reduce
deletion of event times like a 1000x
* Use cached settings to avoid reading the same thing while operating
on Events or Google Calendar syncs
* fix: logout to site login page if the site is on Frappe Cloud
* fix: check if the site user is logged in before rendering trial banner
* fix: show dropdown even if the site is not on trial plan
* refactor: don't expose communication secret in boot
* feat: show install app button for fc sites
* fix: remove auth from desk
we can simplify it and let user do auth in fc
* fix: install app button condition
* refactor: use `is_fc_site` method
* fix: return boolean value for `is_fc_site` function
* fix: add install app button in /apps page
* fix: don't generate otp for login to fc
* fix: remove install app option from desk
* fix: design changes for trial banner
* fix: add more details to the `current_site_info` endpoint
also don't render trial banner if trial end date is passed
* fix: don't route user to welcome page
always put them on the site's dashboard
* fix: override base_url when needed
also remove misleading class
* fix: show banner to normal user to contact system admin for plan upgrade
* refactor: redirect from /login instead of every /logout code
* fix: rename login to fc to manage billing
also move it above the divider
* refactor: separate out site-login url from login.py
Bugfix for events beeing synced as "Administrator" while beeing private. Now admin can select if events should be synced as public. Also This fix will sync events with their proper owners.
As per rfc6749 section-3.2.1, clients:
> MAY use the "client_id" request parameter to identify itself when
> sending requests to the token endpoint.
This patch allows to include client_id in BackendAppFlow, for servers
that require it.
The JSON request body is supposed to hold a jinja template which produces valid JSON. The JSON highlightng shows errors when applied to a jinja template.