Commit graph

50434 commits

Author SHA1 Message Date
Akhil Narang
6461592b5d
Merge pull request #32192 from henriquefalconer/fix/field-level-permissions-filtering
fix: Field Level Permissions Not Applied Correctly in frappe.get_list
2025-08-01 16:35:08 +05:30
Akhil Narang
9a94e73489
feat: add in support for _inplacevar_ (#31921)
Signed-off-by: Akhil Narang <me@akhilnarang.dev>
2025-08-01 13:50:43 +05:30
Abdeali Chharchhodawala
2c3603c270
refactor: Enhance About dialog box (#28994)
* refactor: Add copy to clipboard button for Apps information

* refactor: Update about dialog to use consistent variable naming and improve readability

* refactor: Adjust button styling for copy apps info in about dialog

* refactor: Update YouTube icon in about dialog for improved visual consistency

* refactor: Add Instagram link to about dialog for enhanced social media presence

* refactor: Add forum link to about dialog for enhanced community engagement

* refactor: Enhance about dialog with improved app version tooltip and copy functionality

* refactor: make code flatter

* fix(style): update class names for app version elements in about dialog

* revert: Remove single app copy version

* feat: add copy functionality for app version in about dialog

* fix: remove unnecessary padding from copy apps info button in about dialog

* refactor: Wrap label in translation function

* refactor: remover `Apps Version` heading

* refactor: replace old twitter icon with new icon

* chore: make about dialog code readable

* refactor: remove `repl` function to append html in about dialog

* refactor: do not sort installed apps in about

* chore: Update copy version title

* refactor: update single app copied version info

* refactor: make version text retrieval easy

* refactor: simplify loop variable in version retrieval

* refactor: only show app_name and app_version in copied info

* fix: add link to Frappe Blogs in about section

* chore: Update label and link of social links in About

* refactor: use for each loop to get app versions

* fix: remove Frappe School link from about dialog
2025-08-01 13:49:33 +05:30
Akhil Narang
40e6241c1f
Merge pull request #28786 from gbm001/virtual_custom_link_fields
fix: Allow cancellation/rename of doctypes linked by a virtual custom field
2025-08-01 13:44:46 +05:30
Ejaaz Khan
30caea909f
Merge pull request #32483 from barredterra/notification-filters-ui
feat(Notification): add support for filters UI
2025-08-01 11:24:52 +05:30
Faris Ansari
7c49237913
Merge pull request #33502 from netchampfaris/sqlite-search-fixes
fix: wrap doc index update in try block
2025-08-01 00:37:44 +05:30
Faris Ansari
952ee8f22e fix: add support for like filter 2025-07-31 23:29:06 +05:30
Faris Ansari
d2ca1d63f4 fix: wrap doc index update in try block
failure in index update shouldn't affect document lifecycle
2025-07-31 23:02:52 +05:30
Akhil Narang
a8fc41a5ab
Merge pull request #33349 from zeel-codder/fix/redirects-setup-wizard
fix: prevent random redirect on setup wizard even after all apps setup is done
2025-07-31 22:42:19 +05:30
Akhil Narang
c5c5cd589a
Merge pull request #32868 from niraj2477/auto-repeat
Allow assigning documents via Auto Repeat
2025-07-31 17:49:50 +05:30
Akhil Narang
9355c76eca
fix(email_group): prevent StopIteration when running import on a doctype without email fields (#33418)
Signed-off-by: Akhil Narang <me@akhilnarang.dev>
2025-07-31 08:20:15 +00:00
Ejaaz Khan
39d8f46a8b
Merge pull request #33473 from frappe/l10n_develop
fix: sync translations from crowdin
2025-07-31 13:37:45 +05:30
Ejaaz Khan
20315bf030
Merge pull request #33446 from maverjk/patch-3
Update base_document.py to resolve error "AttributeError: 'NoneType' object has no attribute 'fieldtype'"
2025-07-31 12:19:53 +05:30
Ejaaz Khan
435b6d0144
Merge pull request #32143 from marination/list-view-buttons
fix: Render List row buttons as columns
2025-07-31 12:13:20 +05:30
Maverjk Carter
a9562f6182 fix: check if df exist before accessing its properties 2025-07-31 12:04:15 +05:30
Ejaaz Khan
e8a0a16677
Merge pull request #32937 from maheini/develop
fix: Add proper html skeleton to preview iframe
2025-07-31 11:46:09 +05:30
mergify[bot]
ddd7c96924
Merge branch 'develop' into develop 2025-07-31 05:26:30 +00:00
Soham Kulkarni
be60e286d4
fix(List View): make Toggle Sidebar work again (#33482)
* fix(List View): make Toggle Sidebar work again

* fix: remove shortcut key combination confusion
2025-07-30 19:23:54 +05:30
Bhushan Barbuddhe
7df795cf99
feat: Add hooks for custom SMS and OTP SMS sending (#33444)
* feat: add hook for custom SMS OTP sender (mobile_otp_sms_sender) in 2FA

* [ADD]: Hooks for send SMS

* [fix]: Hook changed to send token.

* chore: remove unnecessary comment
2025-07-30 16:47:12 +05:30
Raffael Meyer
192d769cc2
Merge branch 'develop' into notification-filters-ui 2025-07-29 21:50:12 +02:00
Soham Kulkarni
79018e8dab
Merge pull request #33440 from sokumon/restrict-workflow-actions
fix: restrict workflow actions in report view
2025-07-29 16:17:07 +05:30
Faris Ansari
d9cb5a247a
fix: better title boost logic (#33476) 2025-07-29 13:21:09 +05:30
RitvikSardana
7b71c3aeb7
Merge pull request #33389 from RitvikSardana/auto-append-email-account
feat: Auto append email account name to 'append_to' doctype
2025-07-29 13:03:48 +05:30
Ejaaz Khan
5ff2089592
Merge pull request #33022 from maasanto/web_template_enhancement
fix: remove Jinja placeholder for title on web template when it is not defined
2025-07-29 12:43:29 +05:30
Suhail
e51af704cd
fix(billing): better check for setup_complete (#33475)
Earlier we used to have 1 or 0, but now it returns `true` or `false`. Changing the code so that it can support both cases.
2025-07-29 06:49:42 +00:00
Faris Ansari
2676c9c2ec
feat: SQLite FTS5 search framework for Frappe apps (#33359)
- Abstract SQLiteSearch base class with full-text search
- Spelling correction, recency boosting, and custom scoring
- Supports search filtering and configurable document indexing
- hooks for auto-indexing
  - build index after migrate
  - build index (if not exists) every 15 mins
  - update doc index on_update
  - remove doc index on_trash
2025-07-29 11:18:56 +05:30
Ayush Chaudhari
761751f269
feat: App-Defined Workflow Tasks and Server Scripts on Transition (#33255)
* feat: add workflow task doctypes

* chore: add Workflow Task to Script Type of Server Scripts

* chore: add description for Workflow Tasks

* feat: fetch dotted paths and corresponding names from hooks

* fix: use Select field instead of Autocomplete

* feat: execute tasks in the background on state transition

* fix: throw error when task not found

* fix: naming for transition task set by user

* fix: child table views

* feat: support for server scripts

* chore: comments and description

* fix: change the casing of docevent options

* fix: change test casing

* feat: Add Workflow Transition field to webhooks

* fix: temporarily remove filter

* feat: add webhooks as workflow actions

* test: test execution of synchronous app-defined methods and server scripts

* chore: shorten the description and change the fieldname of the field 'execute_asynchronously' to 'asynchronous'

* test: server script executipn

* fix: add field to UI

* test: change customer to domain

* test: change Customer to Domain

* fix: patch for change in webhook fields

* chore: fetch only used fields in get_all

* fix: don't run test logic in application code 🙂

* test: separate tests for workflow tasks

* Revert "fix: patch for change in webhook fields"

This reverts commit 2e9c51c43ca2b3698991fbe75cc4032368ab174c.

* chore: break into smaller functions

* test: webhooks with workflow tasks

isolate mock responses to test_sync_tasks

* Revert "fix: change test casing"

This reverts commit e2bad96ed01dea0a26d002ea44a1e0175525ed31.

* Revert "fix: change the casing of docevent options"

This reverts commit ddfc81bf775fad74225f25815b8e3e7b255dc9eb.

* fix: webhook casing

* fix: type hint for doc
2025-07-29 11:01:44 +05:30
MochaMind
7ef0b3cab1 fix: Persian translations 2025-07-29 04:46:41 +05:30
MochaMind
fe7b324c7e fix: Swedish translations 2025-07-29 04:46:31 +05:30
Elton Lobo
6d1008933f
feat: add user invitation doctype & related public methods (#33308)
* feat: add user invitation doctype & related public methods

* style(user-invitation): execute formatters & add semgrep comments

* refactor(user-invitation): use `is` to compare `None` values

* fix(user-invitation): skip fetching `after_accept` for default app

* fix(user-invitation): translate email templates

* fix(user-invitaton): return pending invites from invite by email api

* refactor(user-invitation): improve code quality

* fix(user-invitation): translate all error messages

* refactor(user-invitation): improve security & readability

Improvements:
- move invite expiration check to `daily_maintenance`
- explicitly import all of the used packages
- specify methods for all security-critical endpoints
- improve error messages and give them suitable titles
- remove unnecessary utility functions
- make invitation key management secure
- translate all of the subjects of the sent emails
- use the `app_title` hook to create email titles
- commit the work done after each iteration of the background invitation
  expiry checker
- restructure code to improve readability
- use `user.reset_password` to generate the target link
- use clear long names to name identifiers
- add document states with relevant colors (User Invitation doctype)
- differ `sendmail` emails whenever possible
- send an email to the invitation creator instead of the invitee after
  the invite has expired
- remove `User Invitation Manager` role

* fix(user-invitation): use valid emails to test doctype & related code

* feat(user-invitation): support adding multiple roles

* refactor(user-invitation): mark relevant fields `set only once`

* feat(user-invitation): add `Cancelled` status

* test(user-invitation): correct broken tests

* test(user-invitation): form valid f-strings & run code formatter

* feat(user-invitation): make doctype usable from desk

* fix(user-invitation): remove delete permission from invitation doctype

* feat(user-invitation): pass user inserted info to `after_accept` hook

* refactor(user-invitation): improve custom action methods & errors

Improvements:
- trigger actions only when the invitation is in the `Pending` state
- use lowercase letters to start error messages
- handle cases where `user_invitation_hook` is not defined

* refactor(user-invitation): remove site name from email templates

* docs(user-invitation): add internal documentation

* feat(user-invitation): add 'get pending' & cancel invites apis

* fix(user-invitation): make invitation app specific

* refactor(user-invitation): avoid mixing function programming

* fix(user-invitation): make apis usable for app specific valid users

* fix(user-invitation): allow app specific invites

* feat(user-invitation): make list view & permission checks app specific

* refactor(user-invitation): convert class methods to static when possible

* feat(user-invitation): add `app_only_for` method to the doc

* fix(user-invitation): f-string syntax error in `get_permission_query_conditions`

* docs(user-invitation): add examples & improve the internal doc

* refactor: rename method name

static_ is unnecessary
only_for doesn't make sense in this context when arguments are not roles

* fix: Support POST request too

We dont follow REST semantics 100%, anything that modifies something
should ideally be doable with POST too.

* chore: cap

* fix: Avoid ignore_permissions as user arg

---------

Co-authored-by: Ankush Menat <ankush@frappe.io>
2025-07-28 16:25:53 +05:30
Akhil Narang
3c4dc61b7a
Merge pull request #33437 from vehbiu/develop
fix(utils): convert phone numbers passed into validate_phone_number to strings
2025-07-28 15:43:37 +05:30
Soham Kulkarni
64db88228f
refactor: seperate blogs into a seperate app (#32737)
* fix: remove doctypes,workspace blocks, files

* fix: minor python tests and UI tests

* fix: remove blog post from tests

* fix: remove blogger as role for tests

* fix: add check for if doctype exists

* fix: ui test

* fix: more cleanup

* fix: cleanup comments and fix test_query

* fix: resolve conflicts

* fix: add warning and handle comments
2025-07-28 14:35:02 +05:30
Rahul Agrawal
20e4815d81
fix: Default currency symbol in query report total row (#33429) 2025-07-28 11:41:44 +05:30
Raffael Meyer
4983c3fc34
fix: prevent logout due to empty "Password" field (#29158)
* fix: prevent logout due to empty "Password" field

* fix: validate_api_key_secret

- We don't want get decrypted password to raise a ValidationError
- If api_key, api_secret or doc_secret are empty, we want an AuthenticationError
2025-07-28 10:04:10 +05:30
Ejaaz Khan
5ae46feb13
Merge pull request #33438 from frappe/l10n_develop
fix: sync translations from crowdin
2025-07-27 18:01:37 +05:30
MochaMind
213ce53b0d fix: Persian translations 2025-07-27 04:06:20 +05:30
MochaMind
a8cd9f3c89 fix: Indonesian translations 2025-07-26 04:10:13 +05:30
marination
d0006d1fd7 fix: Cut long list view button labels with ellipsis and tooltip 2025-07-24 19:20:52 +02:00
Vehbi Unal
c6a2e6595a fix(utils): convert phone numbers passed into validate_phone_number to strings 2025-07-24 13:02:55 +00:00
marination
723a95c955 Merge branch 'develop' into list-view-buttons 2025-07-24 11:16:10 +02:00
sokumon
5877b980a5 fix: restrict workflow actions in report view 2025-07-24 10:17:17 +05:30
MochaMind
f08776b208 fix: Serbian (Cyrillic) translations 2025-07-24 03:23:15 +05:30
MochaMind
6174af9755 fix: Serbian (Latin) translations 2025-07-24 03:23:13 +05:30
Niraj Gautam
aca2801897
Parse html to text in export_query (#32794)
* fix: Parse html to text in export_query

* chore: Use xlsx data for csv content
2025-07-23 18:19:52 +05:30
mahsem
3efc476da9
fix: web_form_context_title_translation (#33173) 2025-07-23 18:14:33 +05:30
Raffael Meyer
93b4700899
fix: make labels in error message translatable (#33166) 2025-07-23 18:11:51 +05:30
Kitti U. @ Ecosoft
74683428cf
feat: Add hook on print pdf (#33387) 2025-07-23 10:45:39 +05:30
MochaMind
e7ad633b15
fix: sync translations from crowdin (#33423) 2025-07-22 21:59:18 +00:00
Raffael Meyer
6cb5f7287a
feat: allow user to change timezone (#33419) 2025-07-22 19:50:12 +02:00
MochaMind
0cdf9b2d05
fix: sync translations from crowdin (#33409) 2025-07-22 00:04:38 +02:00