* feat: supporting empty iterables for Contains objects
* fix: explicitly setting empty iterables as tuples to support more operators
* feat: Added locate to frappe.qb Functions
* feat: Added support for functions passed as strings in fields
* feat: Included Criterion objects as fields
* fix: picking up only function intended fields to pass to get_function_objects
* feat: Added iterable for available functions, added support for Field objects
* fix: fixed * passed in fields in lists
* feat: Added support for True as filter and pluck in the query engine
* feat: Added join support
* fix: return if filters are None
* feat: Added support for sets as filters and additional conditions
* fix: fixed IS operator in query builder
* feat: Added support for 'as' in query engine
* fix: fixed 'as' for criterion objects passed directly
* fix: fixed frappe.db.count
* fix: fixed functions in fieldname
* feat: Added support for multiple fields passed as a single string :) fixed None fields in a list
* feat: Added support for "as" in single string fields
* fix: fixed queries with invalid syntax
* fix(model)!: Match labels in meta & model
Labels for fields have been inconsistent. In standard filters, doc.name
would be labelled as "Name" while it's "ID" in the edit filters option.
Similarly for other fields, the same view will address the same fields
differently. This PR aims to get rid of such inconsistencies.
Changes:
* [model] Change label ID for name to 'Name'
* [meta] Match labels of owner, modified, modified_by
* [meta] Add labels for more fields - from model.js
* fix!: get_label to fetch labels as Desk does
* fix!(label): Refer to name field as 'ID' over 'Name'
* test: Use 'ID' label instead of 'Name'
* fix: added text editor dialog on hide action
When we edit text editor field and close the dialog the cell in datatable is empty
* chore: bump datatable to 1.16.4
Users having the ability (permissions) to create Custom Field and Property Setter can do everything that a Customize Form can do, irrespective of whether the user has the System Manager role. So the button in the "Menu" should be visible based on permission instead of Role
Converted all possible usages of re.* that weren't compiling the regex
separately and re-using it. Separated out the compiled patterns as
global variables. Repetitive patterns could be made DRY-er.
Would be nicer to have all regexes in a single module so that we could
re-use better, keep track of outdated, and keep checks for possible
reDos' etc
it knows
* Hide Preview if request is errored. EAFP.
* Set file attachment limit based on how many attachments have already
been added. If 1 attachment exists and the limit is 3, File uploader
will allow you to select only 2 more files.