* fix: prevent submission of non-submittable doctype
* fix: updated failing test cases to use submittable doctype as required
* refactor: corrected to_docstatus and from_docstatus use
* fix: inherit submittability from parent for child tables
* Revert "fix: inherit submittability from parent for child tables"
This reverts commit ee83ee59b4f0596e2d402a1547e92b131ae49579.
* feat: introduce skip_docstatus_validation flag
* test: add test cases for skip_docstatus_validation flag and docstatus transition of non-submittable doctype
* fix(apps): add type hints to whitelisted methods
* fix(recorder): add type hints to whitelisted methods
* fix(comments): add type hints to whitelisted methods
* fix(oauth2): add type hints to whitelisted methods
* fix(google_calendar): add type hints to whitelisted methods
* fix(print): add type hints to whitelisted methods
* fix(print_format_builder): add type hints to whitelisted methods
* refactor(network_printer_settings): remove unused args
* fix(document): add type hints to whitelisted methods
* fix(user_settings): add type hints to whitelisted methods
* fix(mapper): add type hints to whitelisted methods
* fix(connected_app): add type hints to whitelisted methods
* fix(google_contacts): add type hints to whitelisted methods
* fix(frappecloud_billing): add type hints to whitelisted methods
* test: rewrite test to fit the strict type check
* fix(social_login_key): add type hints to whitelisted methods
* fix(share): add type hints to whitelisted methods
* fix(webhook): add type hints to whitelisted methods
* fix(workflow): add type hints to whitelisted methods
* fix(workflow main): add type hints to whitelisted methods
* fix(workflow_action): add type hints to whitelisted methods
* fix: flexible type hint
* fix(client): add type hints to whitelisted methods
* fix: fix some of the tighter types
* fix(frappecloud_billing): add str typehint to whitelisted endpoint
* fix: target_doc can be dict/json string
---------
Co-authored-by: Ankush Menat <ankush@frappe.io>
- Remove fetch_if_empty check from prefetch phase
- Fetch ALL fields, let base_document.py handle fetch_if_empty
- Avoids DRY violation (same logic in two places)
- Efficiency difference is negligible
- Remove cache-check-before-get_all due to recursive_defaultdict edge cases
- Fix ruff-format (multi-line to single-line function call)
- Keep cache population after fetch (addresses maintainer request)
- Preserve core N+1 optimization (bulk fetching via get_all)
- They need to be a non-data descriptor i.e. cached_property or
equivalent
- When "loading from DB", we will trigger the descriptor
- The descriptor can return dict or docs for better DX.
- We initialize docs as normal child tables