* feat: set default owner for cycle creation if not provided
* Updated CycleListCreateAPIEndpoint to assign the current user as the owner when the 'owned_by' field is not included in the request data.
* Enhanced the CycleCreateSerializer initialization to ensure proper ownership assignment during cycle creation.
* feat: add comprehensive tests for Cycle API endpoints
* Introduced a new test suite for Cycle API endpoints, covering creation, retrieval, updating, and deletion of cycles.
* Implemented tests for various scenarios including successful operations, invalid data handling, and conflict resolution with external IDs.
* Enhanced test coverage for listing cycles with different view filters and verifying cycle metrics annotations.
* feat: enhance CycleCreateSerializer to include ownership assignment
* Added 'owned_by' field to CycleCreateSerializer to specify the user who owns the cycle.
* Updated CycleListCreateAPIEndpoint to remove redundant ownership assignment logic, relying on the serializer to handle default ownership.
* Ensured that if 'owned_by' is not provided, it defaults to the current user during cycle creation.
* fix: correct assertion syntax in CycleListCreateAPIEndpoint tests
* Updated the assertion in the test for successful cycle creation to use the correct syntax for checking the response status code.
* Ensured that the test accurately verifies the expected behavior of the API endpoint.
* refactor: enhance ComplexFilterBackend and BaseFilterSet for Q object filtering
- Introduced BaseFilterSet to support Q object construction for complex filtering.
- Updated ComplexFilterBackend to utilize Q objects for building querysets.
- Improved error handling and validation in filter methods.
- Refactored filter evaluation logic to streamline query construction.
* fix: improve filter processing in BaseFilterSet to handle empty cleaned_data and optimize filter evaluation
- Added handling for cases where cleaned_data is None or empty, returning an empty Q object.
- Optimized filter evaluation by only processing filters that are provided in the request data.
* update ComplexFilterBackend to pass queryset in filter evaluation
* new fields support in application + update apps command + new application categories
* migrations and mock applications data
* add backfill for app status
* fix: temapsace members query is listing only the current user who logged in
* [WEB-4882]feat:suspended users (#4284)
---------
Co-authored-by: Vamsi Krishna <[email protected]>
* feat: added external api endpoint for customers feature
* fix: review comments from copilot
* fix: segretate endpoints into detail endpoints
* fix: moved name validation logic to serializer
* add workspace to oauth token
* modify oauth flow to store workspace and app installation in tokens and grant
* reduce app installation id cache ttl
* reduce app installation id cache ttl to 1s
* include clientid in cache key
* chore: update psycopg dependencies to version 3.2.9 in base requirements
* refactor: clean up unused imports across multiple files
* chore: update lxml dependency to version 6.0.0 in base requirements
* style: improve code readability by breaking long lines into multiple lines across several files
* style: enhance readability by breaking long lines in ModuleSerializer docstring
* chore: add InitiativeLabelAssociation model and update InitiativeLabel fields
- Introduced the InitiativeLabelAssociation model to manage many-to-many relationships between initiatives and labels.
- Updated InitiativeLabel model to include new fields: name, description, and color.
- Removed direct foreign key relationships from InitiativeLabel to Initiative and Label.
- Adjusted unique constraints and added new constraints for InitiativeLabel.
* removed null from m2m
* fix: update __str__ method in InitiativeLabel model to return label name
* add unique constraint to InitiativeLabelAssociation model
- Introduced a unique constraint on the InitiativeLabelAssociation model to ensure that each initiative-label pair is unique when not marked as deleted.
- Updated migration file to reflect this new constraint.