Soham Kulkarni
e1aa789acf
Merge pull request #32971 from sokumon/newsletter-removal
...
refactor: seperate newsletter into app
2025-06-27 11:59:02 +05:30
Ankush Menat
1a1dc0a62c
fix: more bad migrations and sanity test ( #33112 )
...
* test: prevent unnecessary migrations
* fix: Avoid resyncing JSON repeatedly
* fix: Varchar not nullable defaults should be casted
* fix: force cast to float before
Bad default values cause it to break.
2025-06-26 10:31:55 +00:00
sokumon
2b8d21d483
fix: add utm utils back
2025-06-24 18:43:28 +05:30
sokumon
793bd6387f
fix: global search text, remove hooks
2025-06-18 16:23:36 +05:30
sokumon
6be013804d
fix: remove tests utils and workspace card
2025-06-18 16:23:36 +05:30
Faris Ansari
e6c939c606
fix: revert get_all change
...
get_all doesn't use get_query
2025-06-18 16:15:25 +05:30
Faris Ansari
ae3f216255
chore: update sql function usage
2025-06-18 16:15:25 +05:30
Faris Ansari
b2e081d076
chore: update sql function usage
2025-06-18 16:15:25 +05:30
Faris Ansari
f2a0724f9a
feat: add back sql functions support with json syntax
...
```
fields=['user_type', {'COUNT': 'name', 'as': 'total'}]
fields=[{"IFNULL": ["first_name", "'Unknown'"], "as": "safe_name"}]
```
2025-06-18 16:15:25 +05:30
Faris Ansari
840e7991ce
fix: dont allow partial backticks
...
- add tests
2025-06-18 16:14:32 +05:30
Faris Ansari
3f65806a0b
fix: harden group by and order by inputs
...
- only field, link_field.field, child_field.field allowed
- dont allow backticks
- add permlevel check
- add tests
2025-06-18 16:10:52 +05:30
Faris Ansari
420e891d96
feat: remove support for sql functions in fields
2025-06-18 16:10:52 +05:30
Faris Ansari
9a84f20436
feat: add support for nested AND and OR conditions
2025-06-18 16:10:52 +05:30
Faris Ansari
b2a37f86b3
fix: filtering should only be allowed on permitted fields
2025-06-18 16:00:22 +05:30
Faris Ansari
f77a940582
fix: check permlevel for fields like "link_field.fieldname"
2025-06-18 16:00:22 +05:30
Faris Ansari
63afc0601b
fix: restrict child table access if user has only "select" on parent
2025-06-18 16:00:22 +05:30
Faris Ansari
a9fb29fb8e
test: test for invalid inputs in fields, filters, group_by, order_by
...
- comment out invalid tests
2025-06-18 16:00:22 +05:30
Faris Ansari
39a65a1300
test: enable server script temporarily
2025-06-18 15:56:11 +05:30
Faris Ansari
601df8268f
test: simpler assertions
2025-06-18 15:56:11 +05:30
Faris Ansari
a94c143314
fix: add support for permission query conditions
2025-06-18 15:56:11 +05:30
Faris Ansari
3ab0e8756f
test: mandatory field
2025-06-18 15:56:11 +05:30
Faris Ansari
f3af0c582c
test: fix test_api_v2
2025-06-18 15:56:11 +05:30
Faris Ansari
ccca6bffab
test: add permissions tests for qb.get_query
2025-06-18 15:56:11 +05:30
Sagar Vora
b3e1eda4c8
feat: global frappe.in_test flag ( #32960 )
...
* feat: global `frappe.in_test` flag
* feat: helper utility to toggle `frappe.in_test`
* fix: use `toggle_test_mode` util
* fix: use `frappe.in_test`
* chore: add comment explaining global `in_test`
* chore: ignore commit replacing flag usage
* test: temporarily disable `frappe.in_test`
this worked earlier because flag was set in werkzeug.local which was separate for API test client
* test: add comment explaining change
2025-06-17 19:19:31 +05:30
Sagar Vora
b7fb654688
chore: use frappe._dev_server
2025-06-17 14:26:17 +05:30
Ankush Menat
fe03ceb35e
fix: don't apply strict user permission on local document ( #32798 )
2025-06-13 05:59:30 +00:00
Ankush Menat
7b8eb5d1b6
feat: MariaDB 11.8 support ( #32289 )
...
* ci: Switch to MariaDB 11.8
* ci: Use mariadb's latest client libraries
Co-Authored-By: Sagar Vora <sagar@resilient.tech>
---------
Co-authored-by: Sagar Vora <sagar@resilient.tech>
2025-06-12 10:11:24 +00:00
Ankush Menat
44681433c9
fix: for_update for lazy loaded documents ( #32897 )
...
* fix: Support for_update on lazy documents
* fix: Pop for_update from arguments
* fix: Don't init empty child tables
2025-06-11 10:02:36 +00:00
Ankush Menat
899a2cfc49
test: Add test for update, set ( #32895 )
2025-06-11 09:05:44 +00:00
Ankush Menat
728aa3ccb8
test: ensure that lazy methods are in-sync
2025-06-11 10:26:13 +05:30
Ankush Menat
893a87df86
fix: append and extend without touching attributes
2025-06-11 10:07:48 +05:30
Ankush Menat
5c886ef091
test: test internal implementation of LazyChildTable
2025-06-11 09:55:45 +05:30
Ankush Menat
4d7348d3c0
refactor: avoid code duplication
2025-06-11 09:55:36 +05:30
Ankush Menat
3e4e944ae9
fix: dont db_update what hasn't changed
2025-06-11 09:55:01 +05:30
Ankush Menat
022dbf444d
fix: make doc.save work and empty tables
2025-06-11 09:55:01 +05:30
Ankush Menat
eb77ddab69
feat: Lazy loaded documents
...
https://docs.python.org/3/howto/descriptor.html#invocation-from-an-instance
After first invokation, object's __dict__ will be used... then we can
assume rest of the code works as expected (?)
2025-06-11 09:55:01 +05:30
Ankush Menat
e4bc7f361b
Revert: DocRef ( #32866 )
...
- Hardly used anywhere
- Too many hardcoded `__value__` calls without which it's not usable.
- Another type to worry about
2025-06-10 05:20:56 +00:00
Ankush Menat
22827056ce
fix: Assert type of link field values
2025-06-10 10:10:51 +05:30
Sagar Vora
db3354f111
Merge pull request #32859 from sagarvora/try-fin
...
fix: always restore old user
2025-06-09 16:11:52 +00:00
Sagar Vora
1d5aa7a4a5
fix: always restore old user
2025-06-09 21:30:21 +05:30
Ankush Menat
f9ff807e4c
refactor: Rename get_settings -> get_single_value ( #32840 )
...
Not all single doctypes are settings, so this is better. Implicit
caching is fine, same is done for `db` APIs on singles. We *should* aim
for 100% correctness of caching implementation, especially for singles.
Thanks to @netchampfaris for the suggestion.
2025-06-09 04:20:29 +00:00
Ankush Menat
caf415f13e
feat: get_settings ( #32821 )
...
* feat: get_settings
get_cached_value doesn't work well with singles because you either need
to pass `None` or repeat doctype name... both are awekward and easy to
shoot yourself in foot with.
* refactor: Use cached settings
2025-06-06 18:34:17 +05:30
Ankush Menat
47a47a9b5d
refactor!: Change internal datastructure of db.value_cache
...
It's now a defaultdictionary of `[doctype][name/filters][fieldname]`
This allows us to implement granular clearing and improve usage of this cache.
2025-06-05 14:46:03 +05:30
Ankush Menat
ddbaf09125
fix: Standard field falsy comparisons in db_query ( #32791 )
...
Extends the fix to standard fields. e0f63a928f
2025-06-05 09:55:05 +05:30
Ankush Menat
c249e75fe4
fix(db_query): allow filtering name: None ( #32644 )
...
This doesn't make any sense, but ig it might get introduced via indirect
calls, so better to handle this in code explicitly.
closes https://github.com/frappe/frappe/issues/32643
2025-05-23 10:02:14 +05:30
Soham Kulkarni
f4edb51d30
Merge pull request #32228 from sokumon/note-issue
...
fix(Note): make note show up only on login
2025-05-21 19:52:49 +05:30
Ankush Menat
6d32ffcc6c
perf: optimize != operator when field can be null
2025-05-02 12:11:27 +05:30
Ankush Menat
42f1d1b460
fix(db_query): double-escaped value ( #32376 )
2025-05-02 11:09:11 +05:30
Akhil Narang
8d42b4d3d6
Merge pull request #32268 from akhilnarang/drop-example-email-address-creation
...
fix: don't create example email domains and email accounts
2025-04-29 12:50:29 +05:30
Ankush Menat
2dfb96f91c
fix: handle snapshot isolation errors better ( #32318 )
...
* 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
2025-04-28 06:18:38 +00:00