Releases: frappe/frappe
v15.86.0
What's Changed
- Multi-select checkbox fields on forms now maintain their normal size and include padding, so long option names no longer squash the checkboxes. (#34309)
- LDAP Settings now escapes special characters in LDAP search filters, allowing logins, group look-ups, and password resets to work with usernames that include characters like parentheses or asterisks. (#34316)
- Displays multiple selected values in link filters as a clear, comma-separated list instead of a squashed run-on string. (#34311)
- Fixes migration crashes that occurred when a custom fieldβs length was saved as text by converting the value to a number before comparison. (#34323)
- Prevents creating more than one Submission Queue entry for the same document and shows a notice linking to the already-queued job. (#34326)
- Allows entering full web addresses in Authorize URL, Access Token URL and API Endpoint fields of Social Login Key. The system no longer tacks these addresses onto the Base URL, so links work even when the OAuth provider uses another domain. (#34328)
- Fixes issue where columns in Kanban boards expand beyond their intended width when a card contains very long text. (#34358)
- Quick Entry dialogs now fetch and populate linked Datetime fields, which were previously left blank. (#34360)
- Fixes the Allow Incomplete checkbox in Web Form. Users can now save a form even with some required fields left blank instead of encountering an error. (#34361)
- Fixes truncation of long custom field Label values by increasing the limit to 255 characters. (#34362)
- Uses the linked partyβs name as the Address Title when creating a new Address, replacing the internal ID so shipping labels display the actual customer or lead name. (#34366)
- Clears cached automated actions for an app when it is uninstalled, so the removed app no longer runs its tasks afterward. (#34374)
- Web form list view now displays the correct labels for dropdown and selection fields instead of showing unformatted data. (#34216)
- Improves database query validation by parsing fields with
sqlparse
, preventing harmless filters from being mistakenly blocked. (#34400) - Static pages now only serve files stored inside an appβs βwwwβ folder, blocking requests for files located elsewhere. (#34404)
- Adds internal type hints to list page loading functions; behaviour of list views remains unchanged for users. (#34406)
- Stops automatic activation of two-factor authentication for the βAllβ role when you save System Settings without changing Enable Two Factor Auth. (#34411)
Full Changelog: v15.85.1...v15.86.0
Authors: @Sanket322, @akhilnarang, @barredterra, @UmakanthKaspa, @diptanilsaha, @chrishemmings, @Abdeali099, @ravibharathi656, @DHINESH00
Reviewers: @akhilnarang, @barredterra, @cogk, @iamejaaz, @ankush
AI content
For these release notes, we used an LLM (OpenAI o3) to review and summarise the code changes, along with the associated issue and PR descriptions. It may contain typical errors and inaccuracies. You can read the prompt here.
v14.99.2
What's Changed
- Multi-select checkbox fields on forms now maintain their normal size and include padding, so long option names no longer squash the checkboxes. (#34308)
- LDAP Settings now escapes special characters in LDAP search filters, allowing logins, group look-ups, and password resets to work with usernames that include characters like parentheses or asterisks. (#34315)
- Displays multiple selected values in link filters as a clear, comma-separated list instead of a squashed run-on string. (#34312)
- Uses the linked partyβs name as the Address Title when creating a new Address, replacing the internal ID so shipping labels display the actual customer or lead name. (#34365)
- Static pages now only serve files stored inside an appβs βwwwβ folder, blocking requests for files located elsewhere. (#34403)
- Improves database query validation by parsing fields with
sqlparse
, preventing harmless filters from being mistakenly blocked. (#34399) - Adds internal type hints to list page loading functions; behaviour of list views remains unchanged for users. (#34405)
- Stops automatic activation of two-factor authentication for the βAllβ role when you save System Settings without changing Enable Two Factor Auth. (#34410)
Full Changelog: v14.99.1...v14.99.2
Authors: @barredterra, @akhilnarang
Reviewers: @akhilnarang, @iamejaaz, @ankush
AI content
For these release notes, we used an LLM (OpenAI o3) to review and summarise the code changes, along with the associated issue and PR descriptions. It may contain typical errors and inaccuracies. You can read the prompt here.
v15.85.1
What's Changed
- Fixes migration crashes that occurred when a custom fieldβs length was saved as text by converting the value to a number before comparison. (#34324)
Full Changelog: v15.85.0...v15.85.1
Authors: @akhilnarang
AI content
For these release notes, we used an LLM (OpenAI o3) to review and summarise the code changes, along with the associated issue and PR descriptions. It may contain typical errors and inaccuracies. You can read the prompt here.
v15.85.0
What's Changed
- Limits the Name field when creating a new DocType to 61 characters, matching the backend cap and preventing save errors from overly long names. (#34228)
- Fixes merge failures during record renaming that occur when you lack delete permissions on the original record. (#34230)
- Fixes error that occurs when saving Notification filters using "Is Set" or "Not Set" on number fields. (#34147)
- Stops a record from advancing to the next workflow step if any mandatory fields are still empty, so required details must be filled first. (#34234)
- Fixes an error that blocked queries on any DocType whose name includes words like βUnionβ or βSelectβ, so those records now open, search, and report correctly. (#34171)
- Removes virtual fields from filter menus, preventing errors when you try to filter by information that isnβt stored in the database. (#34233)
- Replaces the label Group Node with Is Group in tree view dialogs and adjusts the prompt to "Select a group [Record Type] first," giving clearer instructions when creating sub-groups. (#34236)
- Formats percent values with the correct local decimal separators, matching the formatting of other numeric fields. (#34240)
- Adds support for including titles, messages, button labels, field labels, select options, and list column names from standard web forms in translation files, so these texts can now be translated. (#34245)
- Fixes the error that appears when closing a row in a non-editable child table, so linked pages now open immediately without needing a manual refresh. (#34272)
- Fixes issue where clicking "View List" in any tree view does not open the corresponding list view. (#34274)
- Prevents the multi-select dropdown from overflowing its container, so all options stay fully visible when you choose items. (#34279)
- Bulk approval now shows transactions as failed when an error occurs, instead of marking them as successful. (#34081)
- Sanitizes text entered in the global search bar, preventing injected scripts from running. (#34297)
- Sets a 64-character minimum for internal text fields, preventing rare βrow size too largeβ errors when records with many text inputs are saved. (#34251)
- Pressing Tab inside any table on a form now places the cursor directly in the first field of the next row, while Shift + Tab jumps to the previous row, so you can continue typing without extra clicks. (#34232)
- Escapes HTML characters when displaying File Name in File, so names containing symbols like < or > show correctly and do not break the page. (#34291)
New Contributors
Full Changelog: v15.84.0...v15.85.0
Authors: @buff0k, @barredterra, @akhilnarang, @AarDG10, @sokumon, @ShreyasTheNewbie, @Rl0007, @iamejaaz
Reviewers: @NagariaHussain, @akhilnarang, @sagarvora, @iamejaaz, @ankush
AI content
For these release notes, we used an LLM (OpenAI o3) to review and summarise the code changes, along with the associated issue and PR descriptions. It may contain typical errors and inaccuracies. You can read the prompt here.
v14.99.1
What's Changed
- Formats percent values with the correct local decimal separators, matching the formatting of other numeric fields. (#34239)
- Sanitizes text entered in the global search bar, preventing injected scripts from running. (#34296)
- Escapes HTML characters when displaying File Name in File, so names containing symbols like < or > show correctly and do not break the page. (#34290)
Full Changelog: v14.99.0...v14.99.1
Authors: @akhilnarang, @barredterra, @sokumon
Reviewers: @akhilnarang
AI content
For these release notes, we used an LLM (OpenAI o3) to review and summarise the code changes, along with the associated issue and PR descriptions. It may contain typical errors and inaccuracies. You can read the prompt here.
v15.84.0
What's Changed
- Fixes a validation error that sometimes blocks saving or uploading File attachments. (#34120)
- Users can now save changes to their private Workspace instead of being locked in read-only mode. (#34092)
- Workspace SVG icons no longer have a hard-coded fill, so their color now follows the surrounding text and remains visible in all themes. (#34053)
- Adds optional Backup Path field to S3 Backup Settings, letting you store backups in a chosen folder inside your S3 bucket instead of always at the root. (#34129)
- Custom queries now allow the
ifnull
andnullif
functions and apply more thorough checks to catch any still-blocked functions inside nested expressions. (#34139) - Adds a new full-text search system that recognises spelling variations and favours recent documents. The search index updates automatically as records change, so results remain current. (#34134)
- Adds Grid Page Length setting to Customize Form, letting you choose how many rows appear per page in table grids. (#34151)
- Ignores virtual fields when mapping dynamic links, preventing unexpected errors when opening records. (#34154)
- Adds a setting in DocType configuration to choose how many rows are needed before the search bar appears in child tables, replacing the previous fixed limit of 20 rows. (#34152)
- Records the visitorβs IP address from the connection itself when it is absent from the headers, so access logs display the correct IP on certain misconfigured servers. (#34160)
- Adds a Make "name" searchable in Global Search checkbox to Customize Form, letting you enable record-name searches from the global search bar without editing the original DocType. (#34178)
- Adds translation to the "Need Help?" link in all list views, so the prompt now appears in your selected language. (#34180)
- Sanitizes file names shown in File comments and attachments, and the First Name and Last Name fields in User records, so any embedded HTML is displayed as plain text instead of running. (#34188)
- Hides technical debug messages in the browser when detailed error tracebacks are disabled, so end users no longer see internal SQL queries. (#34189)
- Strips HTML characters from File Name when uploading or renaming files, keeping names clean and free of unwanted code. (#34196)
- Allows real-time connections to authenticate with an authorization token alone, so they no longer fail when browser cookies are absent. (#34204)
New Contributors
- @skabdulM made their first contribution in #34092
- @raratchet made their first contribution in #34129
Full Changelog: v15.83.0...v15.84.0
Authors: @netchampfaris, @Vengadesh27, @git-avc, @akhilnarang, @sokumon, @Rl0007, @chdecultot, @skabdulM, @Abdeali099, @mahsem, @aldo-o
Reviewers: @akhilnarang, @sokumon, @nabinhait, @barredterra, @cogk, @iamejaaz, @NagariaHussain
AI content
For these release notes, we used an LLM (OpenAI o3) to review and summarise the code changes, along with the associated issue and PR descriptions. It may contain typical errors and inaccuracies. You can read the prompt here.
v14.99.0
What's Changed
- Custom queries now allow the
ifnull
andnullif
functions and apply more thorough checks to catch any still-blocked functions inside nested expressions. (#34138) - Ignores virtual fields when mapping dynamic links, preventing unexpected errors when opening records. (#34153)
- Records the visitorβs IP address from the connection itself when it is absent from the headers, so access logs display the correct IP on certain misconfigured servers. (#34159)
- Strips HTML characters from File Name when uploading or renaming files, keeping names clean and free of unwanted code. (#34195)
- Adds Length and Precision settings to decimal-based fields (Float, Currency, Percent), letting you control how many digits and decimal places are stored. Existing fields keep their current behavior unless you update these settings. (#34109)
Full Changelog: v14.98.0...v14.99.0
Authors: @akhilnarang, @NagariaHussain
Reviewers: @ankush, @akhilnarang
AI content
For these release notes, we used an LLM (OpenAI o3) to review and summarise the code changes, along with the associated issue and PR descriptions. It may contain typical errors and inaccuracies. You can read the prompt here.
v15.83.0
What's Changed
- Updates login redirects to always use the current siteβs hostname. Relative redirect links become full URLs on this site, and redirects to other domains lead to the app page instead. (#34036)
- Uses the translated report name as the filename when exporting reports to Excel or CSV, matching the title shown in the UI. (#34048)
- Fixes missing file type on some private file downloads, so browsers handle them correctly. Previously, these downloads could be treated as unknown files. (#34059)
- Prevents repeated prompts to create a new Kanban board when opening a doctype whose default view is Kanban; the page now opens your last used board or the first available. Fixes a loading error that could break the Kanban view. (#34075)
- Fixes an error when using the "like" filter in Notification for fields that may be empty (e.g., Tags), allowing the Notification to save. (#34078)
- Fixes Number Card so it correctly detects when the selected Document Type is a child table and toggles the Parent Document Type field accordingly, even for users without access to DocType. (#34083)
- Adds Length and Precision settings to decimal-based fields (Float, Currency, Percent), letting you control how many digits and decimal places are stored. Existing fields keep their current behavior unless you update these settings. (#34089)
- Adds a checkbox Include Filters in Print Settings to show or hide applied filters in report printouts. Previously, filters were always shown. (#34098)
Full Changelog: v15.82.1...v15.83.0
Authors: @barredterra, @Navin-S-R, @NagariaHussain, @the-bokya, @akhilnarang
Reviewers: @iamejaaz, @sagarvora, @ankush, @NagariaHussain, @akhilnarang
AI content
For these release notes, we used an LLM (OpenAI gpt-5) to review and summarise the code changes, along with the associated issue and PR descriptions. It may contain typical errors and inaccuracies. You can read the prompt here.
v14.98.0
What's Changed
- Rounds seconds to minutes correctly when seconds are hidden in duration displays, preventing negative minute values. (#34021)
- Fixes the background export message in reports to correctly show your email address and allow proper translation. (#34031)
- Updates German translations for several labels and actions, including Enable Prepared Report, "Export in Background", "Relink"/"Relink Communication", Ref DocType, and Reference DocName, so these texts display correctly in German. (#34045)
- Uses the translated report name as the filename when exporting reports to Excel or CSV, matching the title shown in the UI. (#34047)
- Updates login redirects to always use the current siteβs hostname. Relative redirect links become full URLs on this site, and redirects to other domains lead to the app page instead. (#34035)
- Prevents repeated prompts to create a new Kanban board when opening a doctype whose default view is Kanban; the page now opens your last used board or the first available. Fixes a loading error that could break the Kanban view. (#34074)
- Fixes Number Card so it correctly detects when the selected Document Type is a child table and toggles the Parent Document Type field accordingly, even for users without access to DocType. (#34082)
Full Changelog: v14.97.0...v14.98.0
Authors: @akhilnarang, @the-bokya, @barredterra
Reviewers: @sagarvora, @barredterra, @akhilnarang
AI content
For these release notes, we used an LLM (OpenAI gpt-5) to review and summarise the code changes, along with the associated issue and PR descriptions. It may contain typical errors and inaccuracies. You can read the prompt here.
v15.82.1
What's Changed
- Adds the missing Content-Type header to private file downloads, so browsers recognize the file type and open or save it correctly. (#34058)
Full Changelog: v15.82.0...v15.82.1
Reviewers: @akhilnarang
AI content
For these release notes, we used an LLM (OpenAI gpt-5) to review and summarise the code changes, along with the associated issue and PR descriptions. It may contain typical errors and inaccuracies. You can read the prompt here.