What's Changed
- Fixes an issue in Query Report that causes custom columns to display incorrect values when multiple link columns point to the same doctype. (#31304)
- Unifies error handling across multiple endpoints by refining type checks, updating status codes, and ignoring
disable_traceback
when_dev_server
is True. (#31310) - Escapes HTML in messages from the website contact form. This reduces the chance of unintentional code rendering in emails. (#31314)
- Removes the outdated whitelisted method from Desk Page retrieval and updates "getpage" to handle name-based requests. (#31318)
- Adds the correct exception context to
sys.exc_info
, so logs show accurate error details. (#31324) - Fixes permission checks in multiple DocTypes, including Communication and Web Form, to enforce that only authorized users can read or email documents. (#31338)
- Allows including
client_id
in OAuth 2.0 requests in Connected App for servers that require it. (#31339) - Adds the missing
backend_app_flow
field when retrieving Email Account, allowing the backend app flow to be recognized. This change restores the ability to fetch emails using the configured backend app flow. (#31344) - Reverts the earlier HTML sanitization in assignment notes and switches the Description field in ToDo to a Text Editor format. (#31341)
- Retrieves only the required fields from DocType data to minimize unnecessary queries and reduce overhead. (#31358)
- Updates the phonenumber library to accept phone numbers starting with +592 7 as valid for GY, which addresses validation errors on forms. (#31343)
- Fixes printing for a custom DocType by skipping file lookups in custom modules, preventing template-not-found errors. (#31376)
- Adds additional color options to the Calendar view, allowing events to be shown with a wider range of distinct colors. (#31373)
- Adds a check in the
assign_to
function to detect empty HTML indescription
and replace it with default text if none is found. (#31367) - Fixes the "object is not iterable" error that prevented emails from sending with the "Next Action Email Template" by passing the document as a dictionary for rendering. (#31380)
- Adds a check for
score
in the password strength response, preventing errors on the User form when Enable Password Policy is turned off. (#31393) - Introduces
DocStatus.DRAFT
,DocStatus.SUBMITTED
, andDocStatus.CANCELLED
and updates their usage to standardize code references. Removes unnecessary type conversions and setsas_value
more frequently for consistent document handling. (#31394) - Casts integer-based filters to strings for "Link" and "Data" fields so that relevant database indexes can be used in MariaDB. (#31398)
- Adds a prefix index to the
file_url
field in File, reducing table-wide scans when searching by URL. (#31404) - Fetches data from docstatus=1 child table rows in global search, allowing submitted child records to appear in the results. (#31407)
- Adds a "Force Unlock" prompt on "save" after 30 minutes and automatically unlocks old locked Documents after 3 hours. (#31412)
- Adds an option in System Settings to disable auto-dormancy detection. Disables dormancy by default on self-hosted sites and clarifies site activity in "System Health" report. (#31416)
- Adds translation support to footer item labels so they display in the selected language. (#31434)
- Adds a check for active background jobs in the
ready-for-migration
command, stopping site migration from starting if tasks are still running. (#31440) - Changes the URL field in Webhook Request Log from
Data
toText
so it can handle longer addresses. (#31430) - Prevents ignoring cached workspace data when the initial result is empty, reducing excessive database queries. (#31446)
- Removes a duplicate filter field in the List View to avoid inconsistent results when applying multiple filters. (#31437)
- Adds a validation step in User when resetting passwords from the website, preventing invalid password updates. (#31464)
- Adds a check to verify if a child doctype is actually linked through a DocField or in a parent record before retrieving its documents, preventing unnecessary lookups. (#31424)
- Removes the duplicate "View File" link from the File form and keeps only the button, reducing duplication when opening files. (#31435)
- Prevents filters from becoming null after switching to a different field type, so the intended filter value remains set. (#31164)
- Adds a check in File to compare the
duplicate_file
URL with the incoming URL, preventing incorrect duplicate detection. (#31425) - Prevents scheduled jobs from starting while the system is in maintenance mode in Scheduled Job Type. (#31456)
- Removes the
ignore_permissions
argument from deletion calls, so the standard checks apply when removing child records. (#31475) - Hides the "Submit" button in quick entries for submittable documents if the user does not have submit permission, preventing a permission error. (#31478)
- Skips the "order_by" directive when counting via open_count to avoid unnecessary sorting and reduce overhead. (#31481)
- Prevents script-based Report from being converted to a prepared report if an exception occurs. (#31485)
- Resolves the "No template found at path:" error when printing documents with a custom Print Format by reverting some of the previous changes. (#31488)
- Removes extra slashes from the
report/
route in the Workspace card to avoid broken URLs when opening reports in a new tab. (#31270) - Adds route-based filters to Timesheet Detail so that fields are automatically populated from the URL. (#31498)
- Sanitizes preview data in Data Import and file names in attachment controls, preventing unsafe code from being displayed. (#31497)
- Adds translation logic for selected report data, including total rows, so that relevant fields appear in the chosen language. (#31505)
- Updates the error message in Email Account to clarify where to set the default outgoing email account. (#31507)
Full Changelog: v15.56.1...v15.57.0
Authors: @nabinhait, @alexleach, @shariquerik, @venkat102, @karotkriss, @barredterra, @marination, @ankush, @gavindsouza, @NagariaHussain, @cogk, @asmitahase, @Abdeali099, @nikkothari22, @iamejaaz, @sagarvora, @akhilnarang, @Nihantra-Patel, @sokumon, @Sanket322, @borisroman