Repository navigation
feat(Summaries): enhance transformQuery handling for database and colection sources, and add tests for summary scope - #9
Merged
Conversation
…lection sources, and add tests for summary scope
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This pull request improves how summary calculations (like totals or averages) are handled in data processing pipelines, ensuring that query transformations are respected and that caching works correctly across different query scopes. The changes impact both database and collection data sources and add comprehensive tests to verify correct behavior.
Pipeline and Query Processing Updates:
Summariespipeline is now run after any query transformations, so summary values (like totals) always reflect filtered or scoped data, not just the raw datasource. (src/DataSource/Processors/CollectionProcessor.php[1]src/DataSource/Processors/ModelProcessor.php[2] [3]Caching Improvements:
ArrayGridContextto include the transformed query or collection, preventing cache collisions between different query scopes (e.g., different filters). Now, summaries are always cached per unique query, whether the source is a database query or a collection. (src/Support/State/ArrayGridContext.phpsrc/Support/State/ArrayGridContext.phpL141-R151)Test Coverage:
transformQueryscope for both database and collection sources, and that cache tags are unique per scope, preventing incorrect summary reuse. (tests/Feature/SummariesTest.phptests/Feature/SummariesTest.phpR61-R105)Dependency Imports:
Illuminate\Support\Collectionto support the new collection handling in cache tags. (src/Support/State/ArrayGridContext.phpsrc/Support/State/ArrayGridContext.phpR7)