gristlabs_grist-core/app/server/lib
Alex Hall 7f1f8fc9e6 (core) Linking summary tables grouped by list columns
Summary:
Prefix keys of `LinkingState.filterColValues` with `_contains:` when the source column is a ChoiceList or ReferenceList.

This is parsed out to make a boolean `isContainsFilter` which is kept in each value of `QueryRefs.filterTuples` (previously `filterPairs`).

Then when converting back in `convertQueryFromRefs` we construct `Query.contains: {[colId: string]: boolean}`.

Finally `getFilterFunc` uses `Query.contains` to decide what kind of filtering to do.

This is not pretty, but the existing code is already very complex and it was hard to find something that wouldn't require touching loads of code just to make things compile.

Test Plan: Added a new nbrowser test and fixture, tests that selecting a source table by summary tables grouped by a choicelist column, non-list column, and both all filter the correct data.

Reviewers: dsagal

Reviewed By: dsagal

Differential Revision: https://phab.getgrist.com/D2940
2021-08-10 20:41:24 +02:00
..
ACLFormula.ts (core) add OWNERS='owners', EDITOR='editors', VIEWER='viewers' to condition formulas 2021-03-19 18:20:33 -04:00
ActionHistory.ts (core) add endpoints for clearing snapshots and actions 2020-12-18 13:32:31 -05:00
ActionHistoryImpl.ts (core) When parsing ActionHistory into ActionGroups, avoid keeping many large actions in memory. 2020-09-19 20:45:33 -04:00
ActionSummary.ts (core) tolerate table renames when displaying differences 2020-11-12 10:55:15 -05:00
ActiveDoc.ts (core) Linking summary tables grouped by list columns 2021-08-10 20:41:24 +02:00
ActiveDocImport.ts (core) move home server into core 2020-07-21 20:39:10 -04:00
AppEndpoint.ts (core) Adding import from google drive to the home screen 2021-08-05 20:46:11 +02:00
Authorizer.ts (core) Fix session handling when redirected to login when visiting a doc on a team site 2021-07-15 17:51:16 -04:00
BrowserSession.ts (core) Remove LoginSession, which was mainly serving situations that are no longer used. 2021-07-12 13:04:00 -04:00
checksumFile.ts (core) move home server into core 2020-07-21 20:39:10 -04:00
Client.ts (core) Remove LoginSession, which was mainly serving situations that are no longer used. 2021-07-12 13:04:00 -04:00
Comm.js (core) Remove LoginSession, which was mainly serving situations that are no longer used. 2021-07-12 13:04:00 -04:00
dbUtils.ts (core) move home server into core 2020-07-21 20:39:10 -04:00
DocApi.ts (core) Export to Excel and Send to drive 2021-07-21 16:36:00 +02:00
DocClients.ts (core) granular access control in the presence of schema changes 2021-03-01 13:49:31 -05:00
DocManager.ts (core) Adding import from google drive to the home screen 2021-08-05 20:46:11 +02:00
DocPluginData.ts (core) move home server into core 2020-07-21 20:39:10 -04:00
DocPluginManager.ts (core) Move file import plugins into core/sandbox/grist 2021-08-09 18:37:14 +02:00
DocSession.ts (core) read document as owner in pre-fork mode, if have sufficient access to it 2021-07-21 14:52:31 -04:00
DocSnapshots.ts (core) start reconciling forking with granular access 2021-01-12 14:08:49 -05:00
DocStorage.ts (core) Barely working reference lists in frontend 2021-07-23 18:41:44 +02:00
DocStorageManager.ts (core) uncheck FullCopy special when copying/forking a document 2021-04-29 08:56:54 -04:00
docUtils.d.ts (core) move home server into core 2020-07-21 20:39:10 -04:00
docUtils.js (core) move home server into core 2020-07-21 20:39:10 -04:00
DocWorker.ts (core) Export to Excel and Send to drive 2021-07-21 16:36:00 +02:00
DocWorkerMap.ts (core) support GRIST_WORKER_GROUP to place worker into an exclusive group 2020-11-02 15:46:46 -05:00
ExcelFormatter.ts (core) Export to Excel and Send to drive 2021-07-21 16:36:00 +02:00
ExpandedQuery.ts (core) Linking summary tables grouped by list columns 2021-08-10 20:41:24 +02:00
Export.ts (core) support python3 in grist-core, and running engine via docker and/or gvisor 2021-07-28 09:02:32 -04:00
ExportCSV.ts (core) Export to Excel and Send to drive 2021-07-21 16:36:00 +02:00
ExportXLSX.ts (core) Google auth endpoint has not responded with auth code 2021-07-21 20:18:04 +02:00
expressWrap.ts (core) give more detailed reasons for access denied when memos are present 2021-02-15 17:02:24 -05:00
ExternalStorage.ts (core) Add rules to eslint to better match our coding conventions. 2021-05-24 12:56:18 -04:00
extractOrg.ts (core) Refactoring google drive plugin 2021-07-14 09:52:04 +02:00
FileParserElement.ts (core) move home server into core 2020-07-21 20:39:10 -04:00
filterUtils.ts (core) uncheck FullCopy special when copying/forking a document 2021-04-29 08:56:54 -04:00
FlexServer.ts (core) Adding import from google drive to the home screen 2021-08-05 20:46:11 +02:00
GoogleAuth.ts (core) support python3 in grist-core, and running engine via docker and/or gvisor 2021-07-28 09:02:32 -04:00
GoogleExport.ts (core) support python3 in grist-core, and running engine via docker and/or gvisor 2021-07-28 09:02:32 -04:00
GoogleImport.ts (core) Adding google drive plugin as a fallback for url plugin 2021-08-04 17:59:13 +02:00
GranularAccess.ts (core) Linking summary tables grouped by list columns 2021-08-10 20:41:24 +02:00
GristServer.ts (core) add appsumo endpoints with stub implementations 2021-06-21 16:04:33 -04:00
gristSessions.ts (core) Add rules to eslint to better match our coding conventions. 2021-05-24 12:56:18 -04:00
guessExt.ts (core) move home server into core 2020-07-21 20:39:10 -04:00
HashUtil.ts (core) add more detail to /compare endpoint 2020-09-18 16:31:29 -04:00
HostedMetadataManager.ts (core) revamp snapshot inventory 2020-10-30 13:52:46 -04:00
HostedStorageManager.ts (core) Add rules to eslint to better match our coding conventions. 2021-05-24 12:56:18 -04:00
IBilling.ts (core) move home server into core 2020-07-21 20:39:10 -04:00
IChecksumStore.ts (core) revamp snapshot inventory 2020-10-30 13:52:46 -04:00
ICreate.ts (core) Remove LoginSession, which was mainly serving situations that are no longer used. 2021-07-12 13:04:00 -04:00
IDocStorageManager.ts (core) uncheck FullCopy special when copying/forking a document 2021-04-29 08:56:54 -04:00
idUtils.ts (core) start reconciling forking with granular access 2021-01-12 14:08:49 -05:00
IElectionStore.ts (core) move some material to core that slipped through in a rebase 2020-07-23 11:29:05 -04:00
INotifier.ts (core) move home server into core 2020-07-21 20:39:10 -04:00
ISandbox.ts (core) add SELF_HYPERLINK() function for generating links to the current document 2021-03-18 19:37:07 -04:00
IShell.ts (core) move home server into core 2020-07-21 20:39:10 -04:00
ITestingHooks-ti.ts (core) Remove a bunch of dead code 2021-07-01 18:38:21 +02:00
ITestingHooks.ts (core) Remove a bunch of dead code 2021-07-01 18:38:21 +02:00
log.ts (core) give instructions on using Grist with docker 2020-10-28 13:59:13 -04:00
manifest.ts (core) move home server into core 2020-07-21 20:39:10 -04:00
NSandbox.ts (core) Move file import plugins into core/sandbox/grist 2021-08-09 18:37:14 +02:00
OnDemandActions.ts (core) Configure more comprehensive eslint rules for Typescript 2021-04-26 18:54:55 -04:00
PermissionInfo.ts (core) Add 'user' variable to trigger formulas 2021-07-15 15:18:32 -07:00
Permit.ts (core) start reconciling forking with granular access 2021-01-12 14:08:49 -05:00
places.ts (core) fix docker packaging after core shuffle 2020-07-22 14:45:42 -04:00
PluginEndpoint.ts (core) move home server into core 2020-07-21 20:39:10 -04:00
PluginManager.ts (core) Add rules to eslint to better match our coding conventions. 2021-05-24 12:56:18 -04:00
requestUtils.ts (core) support python3 in grist-core, and running engine via docker and/or gvisor 2021-07-28 09:02:32 -04:00
RowAccess.ts (core) Add rules to eslint to better match our coding conventions. 2021-05-24 12:56:18 -04:00
SafePythonComponent.ts (core) Move file import plugins into core/sandbox/grist 2021-08-09 18:37:14 +02:00
sandboxUtil.js (core) move home server into core 2020-07-21 20:39:10 -04:00
sendAppPage.ts (core) Google auth endpoint has not responded with auth code 2021-07-21 20:18:04 +02:00
ServerColumnGetters.ts (core) move home server into core 2020-07-21 20:39:10 -04:00
serverUtils.ts (core) start applying defenses for untrusted document uploads 2021-07-14 18:34:27 -04:00
Sessions.ts (core) Remove LoginSession, which was mainly serving situations that are no longer used. 2021-07-12 13:04:00 -04:00
Sharing.ts (core) Add 'user' variable to trigger formulas 2021-07-15 15:18:32 -07:00
shortDesc.ts (core) move home server into core 2020-07-21 20:39:10 -04:00
shutdown.js (core) move home server into core 2020-07-21 20:39:10 -04:00
SQLiteDB.ts (core) revamp snapshot inventory 2020-10-30 13:52:46 -04:00
TagChecker.ts (core) move home server into core 2020-07-21 20:39:10 -04:00
TestingHooks.ts (core) Remove LoginSession, which was mainly serving situations that are no longer used. 2021-07-12 13:04:00 -04:00
Throttle.ts (core) move home server into core 2020-07-21 20:39:10 -04:00
TimeQuery.ts (core) move home server into core 2020-07-21 20:39:10 -04:00
UnsafeNodeComponent.ts (core) move home server into core 2020-07-21 20:39:10 -04:00
uploads.ts (core) Adding google drive plugin as a fallback for url plugin 2021-08-04 17:59:13 +02:00
WorkCoordinator.ts (core) move home server into core 2020-07-21 20:39:10 -04:00