- Improved the BaseDAO class to robustly handle column operator logic, ensuring all supported operators (eq, ne, sw, ew, in, nin, gt, gte, lt, lte, like, ilike, is_null, is_not_null) are consistently applied via ColumnOperatorEnum.
- Refactored the apply_column_operators and list methods for clarity and reliability, including better handling of columns, relationships, and search.
- Removed 1 index base page handing from list
- Introduced generic `list` and `count` methods to BaseDAO for consistent querying and counting across all DAOs.
- Both methods support filtering (including IN queries), ordering, pagination, search across columns, custom FAB-style filters, and always-on base filters.
- Added comprehensive unit tests for `list` and `count` in `tests/unit_tests/dao/base_test.py`, covering:
- Filtering (including boolean, None, and IN queries)
- Ordering (asc/desc, multiple columns)
- Pagination (including out-of-range)
- Search across columns
- Custom filter logic
- Always-on base filter logic
- Edge cases and skip_base_filter
- Moved common test fixtures to `conftest.py` for reuse.
* rename and move dao file
* Update dao.py
* add cachekey
* Update __init__.py
* change reference in query context test
* add utils ref
* more ref changes
* add helpers
* add todo in dashboard.py
* add cachekey
* circular import error in dar.py
* push rest of refs
* fix linting
* fix more linting
* update enum
* remove references for connector registry
* big reafctor
* take value
* fix
* test to see if removing value works
* delete connectregistry
* address concerns
* address comments
* fix merge conflicts
* address concern II
* address concern II
* fix test
Co-authored-by: Phillip Kelley-Dotson <pkelleydotson@yahoo.com>
* pass datasource_type and datasource_id to form_data
* add datasource_type to delete command
* add datasource_type to delete command
* fix old keys implementation
* add more tests
* add save_metadata function to QueryDAO
* use set_extra_json_key
* added test
* Update queries_test.py
* fix pylint
* add to session
* add to session
* refactor
* forgot the return