Skip to content
Snippets Groups Projects
This project is mirrored from https://github.com/metabase/metabase. Pull mirroring updated .
  1. Nov 18, 2024
  2. Nov 13, 2024
  3. Nov 05, 2024
  4. Oct 28, 2024
  5. Oct 25, 2024
  6. Oct 24, 2024
  7. Oct 23, 2024
  8. Oct 22, 2024
  9. Oct 17, 2024
  10. Oct 16, 2024
    • github-automation-metabase's avatar
      :robot: backported "Remove "Replace or save question" UI when saving and edited... · 2076c85e
      github-automation-metabase authored
      :robot:
      
       backported "Remove "Replace or save question" UI when saving and edited question from a metric" (#48732)
      
      * Remove "Replace or save question" UI when saving and edited question from a metric (#48669)
      
      * Remove 'Save as new question' toggle when saving questions from editing a metrics' ad-hoc question
      
      * Allow visitQuestion to work for metrics
      
      * Use visitQuestion in metric test
      
      * Add test for #48555 (showing the 'Save as new?' ui for metrics)
      
      * Add issue info to repro
      
      * Use visitMetric, visitModel and visitQuestion helpers in createQuestion
      
      * Move check to make it more clear what the save ui does
      
      * Use cy.button for Done button
      
      * Remove unnecessary .within
      
      * Sign in as normal user
      
      * Add missing dataset alias
      
      * Fix x-ray test
      
      ---------
      
      Co-authored-by: default avatarRomeo Van Snick <romeo@romeovansnick.be>
      Unverified
      2076c85e
  11. Oct 15, 2024
    • github-automation-metabase's avatar
      Incremental Pivot Processing for Exports (#46995) (#48740) · ce5274a5
      github-automation-metabase authored
      
      * Incremental Pivot Processing for Exports
      
      WIP
      
      Fixes pivot exports for CSV and xlsx.
      
      The CSV export should use less memory by incrementally building up the data structure and aggregating necessary row
      data right away, so the memory overhead becomes only as large as the total pivot result.
      
      In cases where the pivot rows/cols do combine into many many columns and rows, this can still be a large set of data,
      but it should behave much better now in most cases.
      
      The Excel export is a little more straightforward: create the export rows in the same fashion, streaming one row at a
      time, and just post-process the sheet to add the pivot table in one shot at the end.
      
      * WIP adding row totals.
      
      * aggregate totals as rows are added
      
      Row, column, section, and grand totals are all aggregated as each row is added.
      This means the final step of building pivot output becomes just an exercise of lookups/arrangement, no further
      aggregation is needed.
      
      * CSV pivot works per-row, export respects formatting
      
      This is a big step forward; we don't need to hold the entire dataset in memory, we instead aggregate a row's data into
      the pivot datastructure, which only holds onto:
      
      - unique values for each pivot-row in a sorted set
      - unique values for each pivot-col in a sorted set
      - grand total for each measure N values, where N is number of measures, ususally 1 or 2
      - row totals for each combination of each pivot-row * N measures
      - col totals for each combination of each pivot-col * N measures
      - totals for each 'section', determined by unique values of first pivot-row * N measures
      - values for each measure in every 'cell'; Row Combos * Col Combos * N Measures
      
      So, there can still be a decent amount of data to store; but it will never hold onto all of the 'raw rows' from the
      dataset.
      
      We can never completely guarantee that Row Combos * Col Combos * N Measures remains small, but two things let us move
      forward anyway:
      
      - there's now visible feedback in the app that the download is running (or if it's failed)
      - Pivot table utility diminishes rapidly with huge output anyway; users still need to curate/set up their data
      - effectively to improve the table's utility, so we can assume that a slow-to-download pivot table is also slow to
      - use/less effective, and will likely be something the user doesn't want (as often).
      
      * some test fixes
      
      * now, if we export 'raw pivot rows', they don't show pivot-grouping
      
      and they also don't include the 'extra' rows for totals/subtotals/grand totals (any row with pivot-grouping > 0).
      
      This means that now the non-pivot version of a pivot table export will match what a user sees if they change the viz
      to a regular table.
      
      * remove old test
      
      * re-incorporate some changes from master
      
      * fix csv for non-pivots due to oversight in my changes
      
      This is just a temporary change, I think I should clean up this bit of the code a little, I can probably make it a
      little more readable and use some cleaner logic regarding if the rows are 'raw pivot rows' or not.
      
      * start moving format_rows to POST bod, add pivot_results too
      
      There's still wiring work to do, but this starts to add format_rows and pivot_results to POST body for the various API
      endpoints. Also modify tests to improve coverage/consistency across downloads and alerts/subscriptions.
      
      The tests will not pass on this commit, but fixes will be incoming
      
      * native pivot tables in xlsx
      
      * add precondition to pass migration linter
      
      * try to get migrations fixed
      
      * pasing pivot-results through api and attachments
      
      * fix tests for format_rows in BODY vs query param
      
      * tests!
      
      * might have the tests all fixed now
      
      * the pivoted export now respects col/row totals settings
      
      * add test coverage for public questions and dashboards
      
      * col and row totals work as expected
      
      * build-pivot refactor for clarity
      
      * docstring change + tiny refactor in helper fn
      
      * see if dashcard download works with format_rows
      
      * csv pivot handles nil values
      
      * pass format_rows and pivot_results in :params not :body
      
      * fix some other tests
      
      * pivot-grouping col filtered out of xlsx
      
      * pivot-grouping-col removed for all rows
      
      * configurable pivot exports and attachments (#47880)
      
      * exports fe
      
      * specs
      
      * ui
      
      * specs
      
      * format/unformatted now works for xlsx
      
      * format test changes for xlsx formatting
      
      * embedding endpoints accept pivot_results
      
      * cljfmt and eslint fix
      
      * empty
      
      * embedding test should have formatting defaulted to true
      
      * embed test fixes
      
      * Use `Chip` for export settings widget
      
      * downloads e2e test fix
      
      * fix public download limit test
      
      * public card download defaults
      
      * fix public download defaults in some tests
      
      * Fix visual test
      
      ---------
      
      Co-authored-by: default avataradam-james <21064735+adam-james-v@users.noreply.github.com>
      Co-authored-by: default avatarAleksandr Lesnenko <alxnddr@users.noreply.github.com>
      Co-authored-by: default avatarNoah Moss <32746338+noahmoss@users.noreply.github.com>
      Co-authored-by: default avatarAnton Kulyk <kuliks.anton@gmail.com>
      Unverified
      ce5274a5
    • github-automation-metabase's avatar
      :robot: backported "Do not save metric viz settings to metric" (#48684) · d7ee5a82
      github-automation-metabase authored
      
      * Do not save metric viz settings to metric (#48609)
      
      * Add repro for #44171
      
      * Do not save viz settings for metrics
      
      * Lowercase description
      
      Co-authored-by: default avatarUladzimir Havenchyk <125459446+uladzimirdev@users.noreply.github.com>
      
      * Rename variable to be more descriptive
      
      * Use visitDashboard
      
      * Fix typo in excludeVisualisationSettings
      
      * Check the request does not contain visualization_settings too
      
      * Allow visitQuestion to work for metrics
      
      ---------
      
      Co-authored-by: default avatarUladzimir Havenchyk <125459446+uladzimirdev@users.noreply.github.com>
      
      * Format code
      
      ---------
      
      Co-authored-by: default avatarRomeo Van Snick <romeo@romeovansnick.be>
      Co-authored-by: default avatarUladzimir Havenchyk <125459446+uladzimirdev@users.noreply.github.com>
      Unverified
      d7ee5a82
    • github-automation-metabase's avatar
      Refactor remaining e2e API commands to TS helper functions (#48672) (#48723) · 53f07c37
      github-automation-metabase authored
      
      * Refactor createDashboardWithQuestions, createQuestionAndAddToDashboard and editDashboardCard to TS function helpers
      
      * Fix createNativeQuestionAndDashboard that got out of sync
      
      Co-authored-by: default avatarKamil Mielnik <kamil@kamilmielnik.com>
      Unverified
      53f07c37
    • github-automation-metabase's avatar
      Change Metrics and Summaries copy (#48451) (#48715) · 35cd9691
      github-automation-metabase authored
      
      * Rename Common Metrics to Metrics
      
      * Rename Basic Metrics to Summaries
      
      * Update chill mode button copy to 'Add a summary or metric'
      
      * Rename 'Pick the metric you want to see' button to include summary
      
      * Fix type in test
      
      * Rename Summaries to Basic functions
      
      * Fix test
      
      * Undo cross-version test changes
      
      Co-authored-by: default avatarRomeo Van Snick <romeo@romeovansnick.be>
      Unverified
      35cd9691
  12. Oct 12, 2024
  13. Oct 11, 2024
  14. Oct 08, 2024
    • github-automation-metabase's avatar
      Collection of UI updates to the alert modal (#48431) (#48487) · f0e40eed
      github-automation-metabase authored
      
      * collection of UI updates to the alert modal
      
      * remiving unused es lint directive
      
      * adding tag to cypress test
      
      Co-authored-by: default avatarNick Fitzpatrick <nick@metabase.com>
      Unverified
      f0e40eed
    • Nicolò Pretto's avatar
      Unverified
      537ba417
    • Kamil Mielnik's avatar
      [Epic] Search in selection in entity picker (#47755) · f6aab536
      Kamil Mielnik authored
      
      * Maintain selected folder state in Entity Picker (#47309)
      
      * Keep tabs mounted
      
      * Rename TablePicker onChange to onItemSelect to match QuestionPicker and also call it for folders
      
      * Inline small functions
      
      * Remove unused type
      
      * Rename
      
      * Remove TODOs
      
      * Remove duplication
      
      * Reduce diff
      
      * Rename
      
      * Lift state from TabsView
      
      * Remove redundant callback
      
      * Store folder state in DataPickerModal
      
      * Refactor computing tabs
      
      * Consolidate search tab definition with recents tab definition
      
      * Simplify computeInitialTab interface
      
      * Extract RECENTS_CONTEXT
      
      * Store tab state in DataPickerModal
      
      * Propagate initial tab state
      
      * Fix a flicker
      
      * Keep tab state in EntityPickerModal
      
      * Fix typing computeInitialTab
      
      * Remove Notebook prefix
      
      * Pass onItemSelect to individual tabs from EntityPickerModal
      
      * Auto select folder
      
      * Fix types
      
      * Adjust remaining tabs definitions to use render
      
      * Adjust tabs definitions to use render in tests
      
      * Fix inverted condition
      
      * Fix TS error
      
      * Fix types
      
      * Rename EntityTab to EntityPickerTab, TabId to EntityPickerTabId
      
      * Rename EntityTabRenderProps to EntityPickerTabRenderProps
      
      * Separate tab models from tab ids
      
      * ESLint
      
      * ESLint
      
      * Recognize folders inside EntityPickerModal
      
      * Add missing prop
      
      * Remove console.log
      
      * Simplify handleFolderSelect
      
      * Revert changes that will go to a different PR
      
      * Fix unit tests
      
      * Refactor
      
      * Remove keepMounted prop
      
      * Fix type
      
      * Remove useMemo from tabs computation (#47505)
      
      * Extract getTabs for DataPickerModal
      
      * Extract getTabs for EntityPickerModal
      
      * Add explicit return type
      
      * Revert "Add explicit return type"
      
      This reverts commit feb3f58c.
      
      * Revert "Extract getTabs for EntityPickerModal"
      
      This reverts commit 4e875a1f.
      
      * Revert "Extract getTabs for DataPickerModal"
      
      This reverts commit cdda8ea1.
      
      * Remove useMemo
      
      * Maintain tab state in Entity Picker (#47794)
      
      * Store picker path state in data picker modal
      
      * Adjust remaining QuestionPicker usages
      
      * Store collection picker state
      
      * Use dedicated onPathChange prop
      
      * Store dashboard picker state
      
      * Improve naming
      
      * Fix unit tests
      
      * Remove accidental code
      
      * Return to previously opened tab when search input is cleared in Entity Picker (#47798)
      
      * Restore previous tab when clearing search input
      
      * Add a unit test for new behavior
      
      * Update comment
      
      * Don't use effect
      
      * Add more tests
      
      * Reduce diff
      
      * Fix flakes
      
      * Change search input placeholder depending on selected folder & tab in Entity Picker (#47801)
      
      * Make TabFolderState generic, pass folder to EntityPickerSearchInput
      
      * Simplify interface
      
      * Extract getSearchInputPlaceholder
      
      * Reduce diff
      
      * Remove TODO
      
      * Implement it
      
      * Shorten code
      
      * Reduce diff
      
      * Use database to scope search if there's only 1 schema
      
      * Add scoped search in the Search tab in Entity Picker (#47839)
      
      * Cleanup entity picker search types (#48098)
      
      * Add e2e tests for local search in the entity picker (#48122)
      
      * Sync the value back into selectedItem when it changes
      
      * Await element
      
      * Handle empty tabs
      
      * Pick everywhere tab
      
      * Click Everywhere in unit tests
      
      * Use deep equality to sync value
      
      * Sync back the path value to the dashboard too
      
      * Run test as admin to avoid (unrelated) permissions issues
      
      * Filter scoped results too
      
      * Fix post-merge issues
      
      * Fix type issues
      
      * Fix null scoped search results
      
      * Sign in as admin to appease the tests
      
      * Use useDeepCompareEffect when syncing back state
      
      * Add default value for searchResultFilter to avoid double condition
      
      * Avoid using useEffect to sync selectedItem
      
      * Avoid overwriting path in useEnsureCollectionSelected
      
      * Fix e2e test
      
      ---------
      
      Co-authored-by: default avatarAlexander Polyankin <alexander.polyankin@metabase.com>
      Co-authored-by: default avatarRomeo Van Snick <romeo@romeovansnick.be>
      Unverified
      f6aab536
  15. Oct 07, 2024
  16. Oct 04, 2024
  17. Oct 03, 2024
  18. Sep 30, 2024
  19. Sep 26, 2024
  20. Sep 24, 2024
  21. Sep 23, 2024
  22. Sep 20, 2024
    • Sloan Sparger's avatar
      [E2E] Improve + Fix tests that use sandboxing (#46465) · e66aad34
      Sloan Sparger authored
      * fixes some tests where data permissions were overwriting sandboxing permissions, makes assertions in tests where sandboxing user is used but the test also passes if you were to sign in as the normal user, fixes one test that sandboxes the wrong table for the test
      
      * do not push - wip changes
      
      * add assertions to that network requests are provided sandboxed data, fix faulty test in dashboard-filters-source.cy.spec.js
      
      * use helpers to clean up parts of pagination assertions
      
      * rename assertDatasetIsSandboxed to assertDatasetReqIsSandboxed
      
      * adds assertions on api response data
      
      * clean up
      
      * fix typo
      
      * refactor helper to be easier to follow
      
      * golfing
      
      * pr feedback
      
      * fix
      
      * fix
      Unverified
      e66aad34
  23. Sep 13, 2024
    • Uladzimir Havenchyk's avatar
      add more e2e tests for offset feature (#47628) · ea233941
      Uladzimir Havenchyk authored
      * add offset e2e tests
      
      * mark test not flaky
      
      * add basic tests
      
      * add more tests
      
      * WIP
      
      * working version
      
      * cleanup
      
      * oops
      
      * improve naming
      
      * fix test
      
      * improve formatting
      
      * update comment and ts
      
      * add a test for metric
      
      * space
      
      * update tests and create a new issue
      
      * add one more test
      
      * re-enable test
      
      * make imports consistent
      
      * rewrite tests to put data through UI
      Unverified
      ea233941
    • Ryan Laurie's avatar
      Dashboard Info Sidebar (#47893) · 677afd79
      Ryan Laurie authored
      * Dashboard Info Sidebar
      
      * e2e test updates
      
      * add unit tests
      
      * e2e test updates
      
      * fix e2e tests
      
      * fix more e2e tests
      
      * update back behavior
      Unverified
      677afd79
  24. Sep 11, 2024
    • Alexander Solovyov's avatar
    • Raphael Krut-Landau's avatar
      ci(admin/performance): Test several caching strategies and methods (#45231) · 0833bebb
      Raphael Krut-Landau authored
      This PR tests that the user can assign any of three cache invalidation strategies ("duration", "adaptive", and "don't cache") to dashboards and questions. The tests check that the following things are true:
      * These strategies can be applied directly (via the sidebar)
      * Dashboards and questions can inherit their caching strategy from the database that underlies them
      * Dashboards and questions can inherit their caching strategy from the instance-wide default policy
      * When a question inside a dashboard has been assigned a strategy, this is overridden by the strategy assigned to the dashboard.
      
      What these tests do not examine:
      * the schedule strategy
      * the minimum query duration
      * edge-case strategies, such as very long durations or very large values for the adaptive strategy multiplier
      
      These may be addressed in follow-up work.
      
      Closes #45355
      Unverified
      0833bebb
  25. Sep 09, 2024
Loading