gristlabs_grist-core/sandbox/grist
Alex Hall ecb30eebb8 (core) Parsing multiple values in reflists, parsing refs without table data in client
Summary:
Added a new object type code `l` (for lookup) which can be used in user actions as a temporary cell value in ref[list] columns and is immediately converted to a row ID in the data engine. The value contains the original raw string (to be used as alt text), the column ID to lookup (typically the visible column) and one or more values to lookup.

For reflists, valueParser now tries parsing the string first as JSON, then as a CSV row, and applies the visible column parsed to each item.

Both ref and reflists columns no longer format the parsed value when there's no matching reference, the original unparsed string is used as alttext instead.

Test Plan: Added another table "Multi-References" to CopyPaste test. Made that table and the References table test with and without table data loaded in the browser.

Reviewers: dsagal

Reviewed By: dsagal

Differential Revision: https://phab.getgrist.com/D3118
2021-11-09 14:41:04 +02:00
..
functions (core) Account for timezone in TODAY() 2021-10-21 18:27:35 +02:00
imports (core) Fix import parsing from choking up on Python isdigit() surprises 2021-09-20 16:17:34 -04:00
acl_formula.py (core) Remaining Python 3 compatibility changes 2021-06-25 12:00:58 +02:00
acl.py (core) Remaining Python 3 compatibility changes 2021-06-25 12:00:58 +02:00
action_obj.py (core) Simple Python 3 compatibility changes 2021-06-22 17:13:17 +02:00
action_summary.py (core) Simple Python 3 compatibility changes 2021-06-22 17:13:17 +02:00
actions.py (core) Remaining Python 3 compatibility changes 2021-06-25 12:00:58 +02:00
autocomplete_context.py (core) Autocomplete True/False/None in formulas from lowercase values 2021-11-05 11:18:00 -04:00
codebuilder.py (core) Raise syntax errors that Python can format nicely to show the location 2021-09-24 15:07:09 +02:00
column.py (core) Parsing multiple values in reflists, parsing refs without table data in client 2021-11-09 14:41:04 +02:00
csv_patch.py (core) Simple Python 3 compatibility changes 2021-06-22 17:13:17 +02:00
depend.py (core) Implement trigger formulas (generalizing default formulas) 2021-06-25 22:53:07 -04:00
docactions.py (core) Implement trigger formulas (generalizing default formulas) 2021-06-25 22:53:07 -04:00
docmodel.py (core) Refactor Table.Record[Set] classes 2021-07-19 14:53:28 +02:00
engine.py (core) Log statistics about table sizes 2021-10-21 17:54:20 +02:00
gencode.py (core) Add 'user' variable to trigger formulas 2021-07-15 15:18:32 -07:00
gpath.py (core) Simple Python 3 compatibility changes 2021-06-22 17:13:17 +02:00
grist.py (core) Add ChoiceList type, cell widget, and editor widget. 2021-05-12 10:38:32 -04:00
identifiers.py (core) Remove accents when picking identifiers 2021-08-24 14:47:50 +02:00
import_actions.py (core) Migrate import code from data engine to Node 2021-10-04 10:27:00 -07:00
logger.py (core) move data engine code to core 2020-07-29 08:57:25 -04:00
lookup.py (core) Make CONTAINS a function for consistency with mkpydocs etc. 2021-07-21 13:18:23 +02:00
main.py (core) Log statistics about table sizes 2021-10-21 17:54:20 +02:00
match_counter.py (core) move data engine code to core 2020-07-29 08:57:25 -04:00
migrations.py (core) Initial webhooks implementation 2021-09-23 14:35:39 +02:00
moment_parse.py (core) Remaining Python 3 compatibility changes 2021-06-25 12:00:58 +02:00
moment.py (core) Remaining Python 3 compatibility changes 2021-06-25 12:00:58 +02:00
objtypes.py (core) Parsing multiple values in reflists, parsing refs without table data in client 2021-11-09 14:41:04 +02:00
parse_data.py (core) Move file import plugins into core/sandbox/grist 2021-08-09 18:37:14 +02:00
records.py (core) Fix bug causing "unmarshallable object" error during conversion to ReferenceList. 2021-10-25 00:18:32 -04:00
relabeling.py (core) Simple Python 3 compatibility changes 2021-06-22 17:13:17 +02:00
relation.py (core) Polish and enable Reference List widget 2021-08-12 11:51:21 -07:00
runtests.py (core) Simple Python 3 compatibility changes 2021-06-22 17:13:17 +02:00
sandbox.py (core) communicate with sandbox via standard pipes 2021-07-12 06:45:47 -04:00
schema.py (core) Initial webhooks implementation 2021-09-23 14:35:39 +02:00
sort_specs.py (core) Adding sort options for columns. 2021-11-03 15:31:39 +01:00
summary.py (core) Adding sort options for columns. 2021-11-03 15:31:39 +01:00
table_data_set.py (core) Simple Python 3 compatibility changes 2021-06-22 17:13:17 +02:00
table.py (core) treat summary tables like formulas for access control purposes 2021-09-16 18:44:50 -04:00
test_acl_formula.py (core) Simple Python 3 compatibility changes 2021-06-22 17:13:17 +02:00
test_acl_renames.py (core) Update ACL resources/rules when tables/columns get renamed 2021-01-04 22:03:01 -05:00
test_actions.py (core) move data engine code to core 2020-07-29 08:57:25 -04:00
test_codebuilder.py (core) Raise syntax errors that Python can format nicely to show the location 2021-09-24 15:07:09 +02:00
test_column_actions.py (core) Simple Python 3 compatibility changes 2021-06-22 17:13:17 +02:00
test_completion.py (core) update tests after jenkins engine freshening 2021-09-18 09:58:35 -04:00
test_default_formulas.py (core) Fix lookups in default formulas 2020-09-10 18:06:06 -04:00
test_depend.py (core) Fix recursion error in invalidate_deps 2021-06-18 15:42:20 +02:00
test_derived.py (core) Store formula values in DB, and include them into .stored/.undo fields of actions. 2020-11-04 16:45:47 -05:00
test_display_cols.py (core) discount indirect changes for access control purposes 2021-05-12 11:26:21 -04:00
test_docmodel.py (core) Simple Python 3 compatibility changes 2021-06-22 17:13:17 +02:00
test_engine.py (core) Add RenameChoices user action 2021-09-30 16:43:40 +02:00
test_find_col.py (core) move data engine code to core 2020-07-29 08:57:25 -04:00
test_formula_error.py (core) Adding traceback to trigger formulas 2021-09-27 17:12:39 +02:00
test_formula_undo.py (core) Suggest correct table when converting to RefList 2021-08-20 23:04:48 +02:00
test_functions.py (core) Remaining Python 3 compatibility changes 2021-06-25 12:00:58 +02:00
test_gencode.py (core) Raise syntax errors that Python can format nicely to show the location 2021-09-24 15:07:09 +02:00
test_gpath.py (core) Simple Python 3 compatibility changes 2021-06-22 17:13:17 +02:00
test_import_actions.py (core) Simple Python 3 compatibility changes 2021-06-22 17:13:17 +02:00
test_logger.py (core) move data engine code to core 2020-07-29 08:57:25 -04:00
test_lookups.py (core) CONTAINS() and summarising by ChoiceList columns with flattening 2021-07-19 16:35:35 +02:00
test_match_counter.py (core) Simple Python 3 compatibility changes 2021-06-22 17:13:17 +02:00
test_migrations.py (core) Simple Python 3 compatibility changes 2021-06-22 17:13:17 +02:00
test_moment.py (core) Simple Python 3 compatibility changes 2021-06-22 17:13:17 +02:00
test_record_func.py (core) Simple Python 3 compatibility changes 2021-06-22 17:13:17 +02:00
test_recordlist.py (core) Implement trigger formulas (generalizing default formulas) 2021-06-25 22:53:07 -04:00
test_reflist_rel.py (core) Fix a bug that occurs after remaing a table containing a RefList column. 2020-11-26 22:29:37 -05:00
test_relabeling.py (core) Remaining Python 3 compatibility changes 2021-06-25 12:00:58 +02:00
test_renames2.py (core) Store formula values in DB, and include them into .stored/.undo fields of actions. 2020-11-04 16:45:47 -05:00
test_renames.py (core) Suggest correct table when converting to RefList 2021-08-20 23:04:48 +02:00
test_replay.py (core) Add test_replay for easily replaying data sent to the sandbox purely within python 2021-06-30 16:56:09 +02:00
test_side_effects.py (core) Store formula values in DB, and include them into .stored/.undo fields of actions. 2020-11-04 16:45:47 -05:00
test_sort_spec.py (core) Adding sort options for columns. 2021-11-03 15:31:39 +01:00
test_summary2.py (core) Simple Python 3 compatibility changes 2021-06-22 17:13:17 +02:00
test_summary_choicelist.py (core) Add RenameChoices user action 2021-09-30 16:43:40 +02:00
test_summary.py (core) Nicer conversion from numeric to text 2021-09-30 14:16:24 +02:00
test_table_actions.py (core) move data engine code to core 2020-07-29 08:57:25 -04:00
test_table_data_set.py (core) Simple Python 3 compatibility changes 2021-06-22 17:13:17 +02:00
test_temp_rowids.py (core) Allow using negative rowIds to add records and refer to them in Reference values. 2020-12-15 16:39:56 -05:00
test_textbuilder.py (core) Simple Python 3 compatibility changes 2021-06-22 17:13:17 +02:00
test_treeview.py (core) move data engine code to core 2020-07-29 08:57:25 -04:00
test_trigger_formulas.py (core) Adding traceback to trigger formulas 2021-09-27 17:12:39 +02:00
test_twowaymap.py (core) move data engine code to core 2020-07-29 08:57:25 -04:00
test_types.py (core) Nicer conversion from numeric to text 2021-09-30 14:16:24 +02:00
test_undo.py (core) Simple Python 3 compatibility changes 2021-06-22 17:13:17 +02:00
test_urllib_patch.py (core) Remaining Python 3 compatibility changes 2021-06-25 12:00:58 +02:00
test_user.py (core) Add 'user' variable to trigger formulas 2021-07-15 15:18:32 -07:00
test_useractions.py (core) Parsing multiple values in reflists, parsing refs without table data in client 2021-11-09 14:41:04 +02:00
testsamples.py (core) move data engine code to core 2020-07-29 08:57:25 -04:00
testscript.json (core) Remove REPL code 2021-07-20 15:17:03 +02:00
testutil.py (core) Implement trigger formulas (generalizing default formulas) 2021-06-25 22:53:07 -04:00
textbuilder.py (core) Remaining Python 3 compatibility changes 2021-06-25 12:00:58 +02:00
treeview.py (core) move data engine code to core 2020-07-29 08:57:25 -04:00
twowaymap.py (core) Simple Python 3 compatibility changes 2021-06-22 17:13:17 +02:00
tzdata.data (core) move data engine code to core 2020-07-29 08:57:25 -04:00
urllib_patch.py (core) Remaining Python 3 compatibility changes 2021-06-25 12:00:58 +02:00
user.py (core) Add 'user' variable to trigger formulas 2021-07-15 15:18:32 -07:00
useractions.py (core) Adding sort options for columns. 2021-11-03 15:31:39 +01:00
usercode.py (core) Raise syntax errors that Python can format nicely to show the location 2021-09-24 15:07:09 +02:00
usertypes.py (core) Nicer conversion from numeric to text 2021-09-30 14:16:24 +02:00
xmlrunner.py (core) Run python unit tests again in python 3 2021-06-30 21:46:18 +02:00