Commit graph

1893 commits

Author SHA1 Message Date
David Arnold
e5ea601882
test: amend to consistently specify the test env's root db user 2024-01-18 12:25:58 +01:00
Ankush Menat
c177431557
perf: Document objects without circular references (#17080)
* perf: `Document` objects without circular references

Circular references are usuallly considered bad for GC, avoiding them
since they don't seem to be necessary.

* fix: explicitly convert to weakref
2024-01-17 17:22:55 +05:30
Ankush Menat
c0cf13b8e8 Revert "fix: search_link fails when txt contains parentheses (#22892)"
This reverts commit 642e9f4ec1.
2024-01-17 12:44:20 +05:30
Sambasiva Suda
642e9f4ec1
fix: search_link fails when txt contains parentheses (#22892)
* fix: search_link fails when txt contains parentheses

* fix: updating regex to replace number params also

* chore: replacing regex with sqlparse

* chore: not including fields like count(1) in asterisk_fields

* fix: owner/module not identified as column

* chore: lint fix and removing exception

* refactor: better function name

---------

Co-authored-by: Ankush Menat <ankush@frappe.io>
2024-01-16 21:36:45 +05:30
Ankush Menat
484049c5ae
fix: simultenous sessions ux (#24387)
* fix: set 2 as simultaneous_sessions by default

* fix: Correct offset for simultaneous_sessions

* refactor: use freeze_time instead of patching

* chore: misleading docstring

* test: set lower simultaneous_sessions for test
2024-01-16 13:36:05 +00:00
Akhil Narang
9b18289b33
fix: postgres uses double quotes for identifiers, especially if case-sensitive
(single quotes would force it to lowercase)

Also unconditionally create a new user while running tests - we're gonna be dropping the test site

Don't pass a `None` value to bench cli

Signed-off-by: Akhil Narang <me@akhilnarang.dev>
2024-01-16 12:35:01 +05:30
Akhil Narang
265c0b0e01
fix(drop-site): set db root credentials in frappe.flags like how new-site is done
Signed-off-by: Akhil Narang <me@akhilnarang.dev>
2024-01-16 12:35:01 +05:30
Akhil Narang
1e6eeba9b7
fix: add in missing logic, add in a test for creating a site with a specific user
Signed-off-by: Akhil Narang <me@akhilnarang.dev>
2024-01-16 12:35:01 +05:30
Ankush Menat
a2525e545a
perf: Unbuffered cursors for large result sets (#24365)
If you're reading 1000s of rows from MySQL, the default behaviour is to
read all of them in memory at once.

One of the use case for reading large rows is reporting where a lot of
data is read and then processed in Python. The read row is hoever not
used again but still consumes memory until entire function exits.

SSCursor (Server Side Cursor) allows fetching one row at a time.

Note: This is slower than fetching everything at once AND has risk of
connection loss. So, don't use this as a crutch. If possible rewrite
code so processing is done in SQL.
2024-01-16 11:00:12 +05:30
Ankush Menat
d5d9b12472
test: flaky server tests (#24301)
* Revert "fix(test_recorder): get the correct request (#24143)"

This reverts commit 745080c56e.

* test: disable recording before running assertions

* test: Dont set emails in test for broken email setup
2024-01-15 08:09:46 +00:00
Ankush Menat
03b6d8a4b0 test: add perf test for references 2024-01-15 12:32:07 +05:30
Ankush Menat
588157df74 feat: frappe.db.sql results as iterator
- Also avoid self.last_result that holds on to large result set reference.
2024-01-15 12:32:02 +05:30
barredterra
b5c48255e1 test: check latest github release 2024-01-14 16:46:34 +01:00
Ankush Menat
e45e313bfb
feat: Skip locked rows while selecting (#24298) 2024-01-13 09:49:27 +05:30
Ankush Menat
5ef8577cff
fix!: Stricter requirement for permission hooks (#24253)
BREAKING CHANGE:

before: `has_permission` hooks need to explicitly return "False" to block a user.

after: `has_permission` hook need to explicitly return "True" (or truthy) value to allow user. They will be blocked otherwise.

Why? Everything related to permission should be block by default and allow if some checks pass.
2024-01-11 01:35:08 +05:30
Ankush Menat
98b62e8220 fix: add _lt to extractors 2024-01-10 21:47:55 +05:30
Ankush Menat
1f6201b4af feat: lazy global translated strings 2024-01-10 21:28:01 +05:30
Ankush Menat
f246f37762 fix: language variants support 2024-01-10 18:27:57 +05:30
Ankush Menat
9620a3c596 Merge branch 'develop' into po-translation 2024-01-10 16:17:47 +05:30
Akhil Narang
745080c56e
fix(test_recorder): get the correct request (#24143)
Signed-off-by: Akhil Narang <me@akhilnarang.dev>
2024-01-06 09:42:53 +05:30
Ankush Menat
3916398f1a
fix(recorder): Normalize IN in SQL queries (#24132) 2024-01-04 19:08:59 +05:30
Ankush Menat
022be815dd
Merge pull request #24118 from ankush/imap_failure_messages
fix: Broken IMAP account disabling logic
2024-01-04 18:56:52 +05:30
Ankush Menat
cc2bb85484 fix: correct arg type
assign_to expects a list of strings of users not a single string.
2024-01-04 18:39:15 +05:30
Raffael Meyer
edac879d7e
refactor!: remove unused parameter from rebuild_tree, add type hints (#24123)
* refactor!: remove unused parameter from rebuild_tree, add type hints

* fix: remove parent_field parameter from backend calls
2024-01-04 18:13:12 +05:30
Hussain Nagaria
b9fef7eb8d test: base class update on has web view update 2023-12-29 22:02:38 +05:30
barredterra
a53e819022 fix: move extract_javascript to extractors folder and use it
instead of babels js extractor
2023-12-28 17:00:46 +01:00
barredterra
e70c3092da test: add cases for js parser 2023-12-28 17:00:38 +01:00
Ankush Menat
4a8fb6c43c style: format 2023-12-28 19:16:11 +05:30
mergify[bot]
a9bb994f15
fix!: deterministic fixture import order (#22210)
* feat: #20753 fixture export prefix and fixture import order

(cherry picked from commit 6a9c56a568e4ccf181fe9cb4153d0b9e4f02ac3d)

* refactor: clarify prefix logic, see c4866921df (r1196249038)

(cherry picked from commit cd2519e71e5545bd4c706369df3ea05843a0bfd9)

* style: format

* refactor: conditionally sort documents when importing

* refactor: simplify code

* feat: Unittest as requested in https://github.com/frappe/frappe/pull/22210#discussion_r1331587501

---------

Co-authored-by: To Finke <tom.finke@webterra.de>
Co-authored-by: Ankush Menat <ankush@frappe.io>
2023-12-28 14:24:45 +05:30
Akhil Narang
70bb2f45bb
Merge pull request #23590 from GursheenK/treeview-filters 2023-12-27 19:03:05 +05:30
barredterra
483fa15c8f fix: clear translation cache
- Cache was not getting cleared, since it's user-specific
- Remove unused implementation from gettext
2023-12-26 23:17:31 +01:00
Akhil Narang
9bf818eb4a
chore: add in some tests for backup
Signed-off-by: Akhil Narang <me@akhilnarang.dev>
2023-12-26 11:09:08 +05:30
Ankush Menat
4d68a46b10
fix: Set default child table fields on save (#23913)
We set defaults on creation of new doc but when you append a new child
doc on existing document it doesn't seem to set the defaults.

This seems like a bug and not a deliberate choice.
2023-12-22 08:02:36 +00:00
Akhil Narang
ff4dca3e16
fix(redirect): make the status codes a select field instead of int
Drop mandatory, assume sane defaults
The current implementation broke old users of redirects like helpdesk app

Signed-off-by: Akhil Narang <me@akhilnarang.dev>
2023-12-22 12:25:41 +05:30
Ankush Menat
36451b6951
Merge pull request #23765 from akhilnarang/http-307-redirect
feat: allow setting a custom http status code for redirects
2023-12-21 13:53:51 +05:30
Ankush Menat
0fd6f5eed7
Merge pull request #23827 from frappe/api-docs
docs: add Python API missing docstrings / type hints
2023-12-21 12:13:05 +05:30
Akhil Narang
2224d86c94
refactor: cache status code as well
Signed-off-by: Akhil Narang <me@akhilnarang.dev>
2023-12-20 17:47:16 +05:30
Akhil Narang
c8816a8b6a
fix(tests): fix redirect tests by adding new field + add another test scenario
Signed-off-by: Akhil Narang <me@akhilnarang.dev>
2023-12-20 17:36:42 +05:30
Ankush Menat
052a2527dd
Merge pull request #23874 from ankush/del_check_links
fix: don't allow deleting original doc if amendment exists
2023-12-20 14:13:41 +05:30
Ankush Menat
02f3fd8470 test: retry flaky password_strength test thrice 2023-12-20 13:57:48 +05:30
Ankush Menat
b51a479fc2 fix: don't allow deleting original doc if amendment exists 2023-12-20 13:11:34 +05:30
Ankush Menat
5ecacd0cd7
Merge pull request #23865 from ankush/no_virtual_select_star
fix: skip virtual fields in perm level checks during DB Query
2023-12-20 12:15:48 +05:30
Ankush Menat
5deabdde21 fix: skip virtual fields in perm level checks during DB Query
DB Query can't access virtual fields so it should ignore all virtual
fields.
2023-12-20 12:00:08 +05:30
Akhil Narang
178b699466
Merge pull request #23432 from marination/doc-connections
fix: Treat Document Links entries as all non-std fields
2023-12-19 16:05:58 +05:30
Hussain Nagaria
8d2137c265 docs: consistent doc strings 2023-12-18 18:27:39 +05:30
Suraj Shetty
2564d0e939
Merge pull request #23512 from GursheenK/include-filter-values-in-exported-report-excel 2023-12-18 12:40:37 +05:30
Ankush Menat
40e48c9ac4
feat: describe-database-table to get stats about a table (#23813)
* feat: `describe-database-table` to get stats about a table

This provides description of table, indexes, total row count in machine
parseable format.

Towards https://github.com/frappe/press/issues/1265

* Update test_commands.py
2023-12-15 17:53:11 +05:30
Gursheen Anand
796e958910 test: treeview for disabled records 2023-12-15 15:00:36 +05:30
Ankush Menat
b7c2989823
feat: add-database-index command to add and persist custom indexes (#23787) 2023-12-14 15:16:49 +00:00
Ankush Menat
687752359d
perf: Primary key is never nullable (#23788)
People ususally write queries like these...

```
frappe.get_all(doctype, {"name": ("in", list_of_docs))
```

Ocassionally, the `list_of_docs` is empty because it's dynamically
generated and in this case we end up doing full table scan to find... nothing!
2023-12-14 15:01:19 +00:00