gristlabs_grist-core/app/client/components
Alex Hall 1c89d08ea3 (core) Add a row to summary tables grouped by list column(s) corresponding to empty lists
Summary:
Adds some special handling to summary table and lookup logic:

- Source rows with empty choicelists/reflists get a corresponding summary row with an empty string/reference when grouping by that column, instead of excluding them from any group
- Adds a new `QueryOperation` 'empty' in the client which is used in `LinkingState`, `QuerySet`, and `recursiveMoveToCursorPos` to match empty lists in source tables against falsy values in linked summary tables.
- Adds a new parameter `match_empty` to the Python `CONTAINS` function so that regular formulas can implement the same behaviour as summary tables. See https://grist.slack.com/archives/C0234CPPXPA/p1654030490932119
- Uses the new `match_empty` argument in the formula generated for the `group` column when detaching a summary table.

Test Plan: Updated and extended Python and nbrowser tests of summary tables grouped by choicelists to test for new behaviour with empty lists.

Reviewers: georgegevoian

Reviewed By: georgegevoian

Differential Revision: https://phab.getgrist.com/D3471
2022-06-09 23:38:14 +02:00
..
AceEditor.css
AceEditor.js
AceEditorCompletions.ts
ActionLog.css
ActionLog.ts
Banner.ts (core) Show usage banners in doc menu of free team sites 2022-05-26 15:01:35 -07:00
Base.js
BaseView2.ts (core) Copy column type and options when pasting into an empty column 2022-04-04 14:53:16 +02:00
BaseView.js (core) Fix some bugs with repositioning rows. 2022-06-07 16:55:45 -04:00
CellPosition.ts
ChartView.css
ChartView.ts (core) Replace nulls in X-axis of charts with '-' to avoid confusion with missing points 2022-05-20 11:54:20 -04:00
ClientScope.ts
Clipboard.css
Clipboard.js
CodeEditorPanel.css
CodeEditorPanel.ts (core) Raw renames 2022-04-27 22:21:55 +02:00
ColumnFilters.css
ColumnTransform.ts (core) Adding font options to the style picker 2022-04-07 20:35:03 +02:00
Comm.ts (core) Converting server-side Comm.js to typescript 2022-06-07 15:47:17 -04:00
commandList.js (core) Changing shortcut for Duplicate row command 2022-04-27 22:02:27 +02:00
commands.css
commands.js
CopySelection.ts (core) Copy column type and options when pasting into an empty column 2022-04-04 14:53:16 +02:00
Cursor.ts
CursorMonitor.ts (core) Raw renames 2022-04-27 22:21:55 +02:00
CustomView.css
CustomView.ts (core) Adding onNewRecord event for custom widgets 2022-04-12 16:51:16 +02:00
DataTables.ts (core) Raw renames 2022-04-27 22:21:55 +02:00
DetailView.css (core) Raw renames 2022-04-27 22:21:55 +02:00
DetailView.js (core) Adding new command Duplicate rows 2022-04-20 17:29:48 +02:00
DocComm.ts (core) Converting server-side Comm.js to typescript 2022-06-07 15:47:17 -04:00
DocConfigTab.js
DocumentUsage.ts (core) Broadcast doc usage updates to clients 2022-06-06 09:55:34 -07:00
Drafts.ts Correct spelling mistakes 2022-02-19 09:46:49 +00:00
duplicatePage.ts (core) Updating RawData views 2022-05-04 21:41:42 +02:00
EditorMonitor.ts (core) Raw renames 2022-04-27 22:21:55 +02:00
EmbedForm.css
FieldConfigTab.css
FormulaTransform.ts
GridView.css (core) Selection for styled columns 2022-05-13 09:45:17 +02:00
GridView.js (core) Selection for styled columns 2022-05-13 09:45:17 +02:00
GristDoc.css
GristDoc.ts (core) Add a row to summary tables grouped by list column(s) corresponding to empty lists 2022-06-09 23:38:14 +02:00
GristWSConnection.ts
Importer.ts (core) Fix import bug when skipping non-text columns 2022-04-28 12:46:44 -07:00
Layout.css
Layout.js
LayoutEditor.css
LayoutEditor.js
LayoutPreview.css
LayoutPreview.js
LinkingState.ts (core) Add a row to summary tables grouped by list column(s) corresponding to empty lists 2022-06-09 23:38:14 +02:00
Login.css
ParseOptions.ts
PluginScreen.ts (core) Show proper message on empty Excel import, rather than a code error 2022-04-27 00:49:28 -04:00
Preferences.css
Printing.css
Printing.ts (core) New UI for raw data views 2022-03-12 13:51:48 +01:00
RawData.ts (core) Raw renames 2022-04-27 22:21:55 +02:00
RecordLayout.css
RecordLayout.js Correct spelling mistakes 2022-02-19 09:46:49 +00:00
RecordLayoutEditor.js
RefSelect.js
SearchBar.css
Selector.js
SiteUsageBanner.ts (core) Broadcast doc usage updates to clients 2022-06-06 09:55:34 -07:00
TypeConversion.ts (core) Adding font options to the style picker 2022-04-07 20:35:03 +02:00
TypeTransform.ts (core) Adding font options to the style picker 2022-04-07 20:35:03 +02:00
UndoStack.ts (core) Change UndoStack._linkMap to store an array of action groups for each linkId 2022-01-20 19:00:01 +02:00
UnsavedChanges.ts
ValidationPanel.css
ValidationPanel.js
viewCommon.css (core) Selection for styled columns 2022-05-13 09:45:17 +02:00
viewCommon.js
ViewConfigTab.css
ViewConfigTab.js (core) Initial data tables page 2022-02-10 12:46:19 +02:00
ViewLayout.css (core) Raw renames 2022-04-27 22:21:55 +02:00
ViewLayout.ts (core) Auto-check aggregate values option as soon as table is a summary 2022-05-18 10:10:28 +02:00
ViewLinker.css
ViewPane.ts
WidgetFrame.ts (core) Adding onNewRecord event for custom widgets 2022-04-12 16:51:16 +02:00