Commit graph

42528 commits

Author SHA1 Message Date
Ankush Menat
e342f7bd9c perf: index status and report names
Two commonly used fields to filter by
2023-07-01 18:29:38 +05:30
Ankush Menat
2e8ea02028 fix: Expire stalled reports
Mark any report that take more than 60 minutes as failed
2023-07-01 18:27:25 +05:30
Ankush Menat
4ece3da47d test: publish_progress ui test 2023-07-01 18:06:34 +05:30
Ankush Menat
5850176066 fix: Stop running prepared reports when report is deleted 2023-07-01 18:05:30 +05:30
Ankush Menat
f72643781d feat: "Started" status in prepared reports 2023-07-01 17:44:55 +05:30
Ankush Menat
869f219418 fix: dont export prepared_report and letterhead 2023-07-01 17:17:35 +05:30
Ankush Menat
b81aff3237 test: simplify prepared report tests 2023-07-01 17:11:24 +05:30
Ankush Menat
9137765803 fix: halve prepared report threshold
Users can still enable/disable on their own after last refactor.
2023-07-01 16:58:18 +05:30
Ankush Menat
28763aadf8
Merge pull request #21527 from ankush/socketio_refactor
refactor!: `frappe.realtime`
2023-07-01 13:15:41 +05:30
Ankush Menat
ab44a9cca8 test: socketio tests
- conflict check (moved from form)
- list view updates
- custom event subscribe and recieve
2023-07-01 12:43:53 +05:30
Ankush Menat
be8d2b9de0 perf: lazy websocket connection on website
Establishing 1 connection for every website visit is too much.

Only after calling frappe.realtime.on(...) for ANY event, we will
establish a websocket connection.

This is used for handful of things:
- Discussion component
- File upload

Socketio was initially added here: https://github.com/frappe/frappe/pull/6866 this use case no longer exists.

Rarely anywhere website uses realtime.
2023-07-01 12:43:53 +05:30
Ankush Menat
e4ec6e65ee fix: socketio namespace on website 2023-07-01 12:43:53 +05:30
Ankush Menat
bdaed29ef2 refactor: move handlers to separate file 2023-07-01 12:43:47 +05:30
Ankush Menat
d59e499418 refactor!: Use SocketIO namespaces for multitenancy 2023-07-01 10:53:34 +05:30
Ankush Menat
dad1d57b90 chore: move redis sub setup 2023-07-01 10:53:34 +05:30
Ankush Menat
d13cb116bc refactor: use existing redis client 2023-07-01 10:53:34 +05:30
Ankush Menat
7320d2d020 refactor: move middleware out 2023-07-01 10:53:34 +05:30
Ankush Menat
164840c32e refactor: explicitly import socketio 2023-07-01 10:53:34 +05:30
Ankush Menat
5e4e60b509 refactor: Split socketio in multiple logical files 2023-07-01 10:53:34 +05:30
Ankush Menat
b2366bf8a6 fix: accurately handle socket close/loss event 2023-07-01 10:53:34 +05:30
Ankush Menat
4ea6f3d672 perf: dont send doc view updates to self 2023-07-01 10:53:34 +05:30
Ankush Menat
c3a37421d6 chore: remove typing code 2023-07-01 10:53:34 +05:30
Ankush Menat
43ec9fe2cc refactor: simplify open doc checks 2023-07-01 10:53:34 +05:30
Ankush Menat
7591f3fd62 refactor: merge frappe.realtime and frappe.socketio
frappe.realtime should be the api which encapsulates socketio.
2023-07-01 10:53:34 +05:30
Ankush Menat
73f388628f refactor: Convert socketio client to class 2023-07-01 10:53:34 +05:30
Ankush Menat
0ea7f77dd1 perf: Remove socketio reconnect attempts
It works just fine without it. This sends duplicate events.
2023-07-01 10:53:34 +05:30
Ankush Menat
d772365d5d fix: dont query if unknown_users are empty 2023-07-01 10:53:34 +05:30
Ankush Menat
38f04be747 fix: remove hacky logic for doc open and doc close
How and why is this so complicated?
- If doc is opned - send doc open event
- If doc gets closed - send doc close event.

No need to rememeber last doc and do weird logic on top of it.
2023-07-01 10:53:34 +05:30
Ankush Menat
fbcc594986 fix: Correctly update form viewers
People who stopped viewing forms weren't removed, even though event was
sent.
2023-07-01 10:53:34 +05:30
Ankush Menat
3511f82dc2 refactor: dont rely on docinfo for form viewers 2023-07-01 10:53:34 +05:30
Ankush Menat
94f182384c refactor: move viewers to form
it's attached to form but managed by toolbar, needlessly convoluted
code.
2023-07-01 10:53:34 +05:30
Ankush Menat
de5d1e0fe1 refactor: Consolidate doc viewer code
It's spread accross 3 different JS files.
It should be responsibility of 1 class.
2023-07-01 10:53:34 +05:30
Ankush Menat
97c1106aca refactor!: Remove doc typer code
- This hasn't worked since v13 refactor and no one has noticed.
- Needs better implementation.
2023-07-01 10:53:34 +05:30
Ankush Menat
441495b561
refactor!: Drop support for currentsite.txt (#21536)
* refactor!: Drop currentsite.txt

- `bench use` will continue to work.
- Instead of txt file use common_site_config to set default site using `default_site` key.
- `FRAPPE_SITE` environment variable also works

* fix(DX): warn if non-empty currentsite.txt is present
2023-06-30 17:57:40 +05:30
Ankush Menat
f5e75c2fef
Merge pull request #21397 from cogk/fix-test_never_render
fix(test): Fix test_never_render to get path as string, exclude .pyc files from served files
2023-06-30 16:44:51 +05:30
Corentin Flr
4ccfd1e8fa
Merge branch 'frappe:develop' into fix-test_never_render 2023-06-30 11:52:33 +02:00
Corentin Flr
69d0060bdf
chore: format code 2023-06-30 11:52:29 +02:00
Suraj Shetty
f057bb3381
Merge pull request #21520 from barredterra/group-by-style 2023-06-30 14:02:07 +05:30
Smit Vora
c6a46e6812
fix: correct condition check for dynamic filters (#21530)
Co-authored-by: Sagar Vora <sagar@resilient.tech>
2023-06-30 13:35:01 +05:30
Ankush Menat
810185d531
Merge pull request #21526 from ankush/namespace_all_jobs
refactor: Namespace all RQ jobs
2023-06-29 18:34:23 +05:30
Ankush Menat
a52485cc53 feat: RQ jobs can show count 2023-06-29 18:06:52 +05:30
Ankush Menat
31d05b466a perf: Email queue dedup using job id instead of name 2023-06-29 18:05:09 +05:30
Ankush Menat
d57c552e26 feat: frappe.enqueue with deduplication
use deduplicate=True and set job_id for automatic and mostly sane job deduplication.
2023-06-29 18:05:07 +05:30
Ankush Menat
3ae2d19073 perf: efficient RQ jobs filters
Assuming site's job start with site prefix it's much easier to filter
jobs by looking at job IDs instead of fetching entire job in memory.
2023-06-29 17:31:10 +05:30
Ankush Menat
1092eef7bd perf: faster pending jobs check 2023-06-29 17:31:06 +05:30
Ankush Menat
1668ba7d9e feat: Namespace all RQ jobs to site 2023-06-29 16:35:10 +05:30
Raffael Meyer
6e1a1bf0b8
Merge branch 'develop' into group-by-style 2023-06-29 09:05:05 +02:00
Shariq Ansari
74633305c1
Merge pull request #21425 from shariquerik/log-webhook-error
fix: log errors while getting headers and data
2023-06-29 04:52:51 +05:30
Suraj Shetty
38760f9f57
Merge pull request #21519 from ankush/perf_share_reads 2023-06-28 21:48:00 +05:30
barredterra
85145c2c11 fix: styling of group by button 2023-06-28 17:22:40 +02:00