* feat: Organizational Chart
* feat: org chart mobile interactions
* feat(mobile): sibling node group expansion and rendering
* fix: expanded node group interactions and visibility
* feat: connectors for mobile node cards
* fix: don't refresh connections for same node
- remove all connectors while expanding a group node
* chore: create separate files for Desktop and Mobile view and bundle assets
* refactor: add options to chart
- method to return the node data
- wrapper for showing the hierarchy
* feat: setup node edit action
* fix: revert changes in employee descendants query
* refactor: use arcs instead of bezier curves for cleaner connectors
* feat: add arc to connectors in mobile view
* fix: edit node button overflowing
* fix: sider
* fix: removing orphaned connectors
* fix: unnecessary variables
* feat: handle multiple root / orphan nodes
* perf: Optimise Rendering
- optimise get_children function
- use promises instead of callbacks
- optimise selectors
- use const wherever possible
- use pure js instead of jquery for connectors for faster rendering
* fix: do not sort by number of connections
* feat: use icon for connections on mobile view
* fix: exclude active node while fetching sibling group
* fix: sibling group expansion not working for root nodes
* fix(mobile): collapsed nodes not expanding
* fix: sider
* test: UI tests for org chart desktop
* test: UI tests for org chart mobile
fix(mobile): detach node before emptying hierarchy
fix(mobile): sibling group not rendering for first level
* fix: sider
* ci(cypress): use env variable for key
documentation ref: https://docs.cypress.io/guides/guides/command-line\#cypress-run
* fix(tests): clear filter before typing
* fix(tests): apply filters correctly
* fix: tests
* fix: tests
* fix: tests
* fix(test): increase timeout for record creation
* fix: sider
* fix: sider
* feat: Expand All nodes option in Desktop view
* feat: add html2canvas for easily exporting html to images using canvas
* feat: Export chart option in desktop view
* fix(style): longer titles overflowing
* fix: remove unnecessary imports
* fix: test
* fix: make bundled assets for hierarchy chart
* fix(style): apply svg container margin only in desktop view
* fix: Nest `.level` class style under `.hierarchy` class (#26905)
fix: Nest `.level` class style under `.hierarchy` class
* fix: add z-index to filter to avoid svg wrapper overlapping
* fix: expand all nodes not working when there are only 2 levels
- added dom freeze while expanding all nodes and exporting
* fix: test
Co-authored-by: Suraj Shetty <13928957+surajshetty3416@users.noreply.github.com>
* fix: training event employee status not updated on feedback submission
* feat: update attendees status on training event status update
* test: Training Event and Feedback
* chore: remove unused import
- Separated into two tests, one checks if SI cancelling is blocked, the other checks PCE cancel impact
- This is done because after cancel via assertRaises, damage done by cancel still exists or is partially comitted
- Dont use this partially cancelled doc for any assertions further, end test at exception assertion
- Use `get_value` to check SI docstatus, as its primary key changes after cancel
- Use `get_value` instead of `get_doc`
- Remove unnecessary loop, only one shift assignment is made against a shift request
- Get value after cancel again. Get doc is not reliable since primary key changed after cancel
- Use `frappe.db.get_value` instead of `get_doc` for asserting values
- Get values after cancellation as reloading attendance doc breaks due to stale doc (primary key changed after cancel of attendance request)
- rollback everything on tearDown
* perf: only validate if voucher is journal entry
* perf: optimize merge GLE
- Order fields such that comparison will fail faster
- Break out of loops if not matched
* perf: don't try to match SLE if count mismatch
* refactor: simplify initialize_previous_data
* perf: use cache for fetching valuation_method
These are set only once fields
* refactor: simplify get_future_stock_vouchers
* refactor: simplify get_voucherwise_gl_entries
* perf: fetch only required fields for GL comparison
`select *` fetches all fields, output of this function is only used for
comparing.
* perf: reorder conditions in PL cost center check
* perf: reduce query while validating new gle
* perf: use cache for validating warehouse props
These properties don't change often, no need to query everytime.
* perf: use cached stock settings to validate SLE
* docs: update misleading docstring
Co-authored-by: Marica <maricadsouza221197@gmail.com>