mirror of
https://github.com/gristlabs/grist-core.git
synced 2026-03-02 04:09:24 +00:00
(core) Allow using negative rowIds to add records and refer to them in Reference values.
Summary: - When adding records, negative rowIds may now be specified. They'll be replaced by proper IDs. - If these negative IDs are used in Reference columns in subsequent actions in the same bundle of UserActions, they get replaced with the proper rowIds. - Use this to sync ACLResources and ACLRules from UI in a single batch of UserActions. - Resolve the TODOs in GranularAccess test, to no longer need to guess resource rowIds. Test Plan: Added a python unittest for mapping IDs; updated browser tests. Reviewers: paulfitz Reviewed By: paulfitz Differential Revision: https://phab.getgrist.com/D2691
This commit is contained in:
@@ -862,7 +862,8 @@ class Engine(object):
|
||||
|
||||
# If there are values for any PositionNumber columns, ensure PositionNumbers are ordered as
|
||||
# intended but are all unique, which may require updating other positions.
|
||||
nvalues, adjustments = col_obj.prepare_new_values(values)
|
||||
nvalues, adjustments = col_obj.prepare_new_values(values,
|
||||
action_summary=self.out_actions.summary)
|
||||
if adjustments:
|
||||
extra_actions.append(actions.BulkUpdateRecord(
|
||||
action.table_id, [r for r,v in adjustments], {col_id: [v for r,v in adjustments]}))
|
||||
@@ -880,7 +881,8 @@ class Engine(object):
|
||||
defaults = [col_obj.getdefault() for r in row_ids]
|
||||
# We use defaults to get new values or adjustments. If we are replacing data, we'll make
|
||||
# the adjustments without regard to the existing data.
|
||||
nvalues, adjustments = col_obj.prepare_new_values(defaults, ignore_data=ignore_data)
|
||||
nvalues, adjustments = col_obj.prepare_new_values(defaults, ignore_data=ignore_data,
|
||||
action_summary=self.out_actions.summary)
|
||||
if adjustments:
|
||||
extra_actions.append(actions.BulkUpdateRecord(
|
||||
action.table_id, [r for r,v in adjustments], {col_id: [v for r,v in adjustments]}))
|
||||
|
||||
Reference in New Issue
Block a user