mirror of
https://github.com/gristlabs/grist-core.git
synced 2026-03-02 04:09:24 +00:00
(core) Copy column type and options when pasting into an empty column
Summary: Adds a `data-grist-col-ref` attribute to the copied HTML, then uses that when pasting to look up the source column and retrieve info about it. Copies the info into the target column if: - The document is the same (the docId hash matches) - The source column still exists and has the same type as when copied - The source type isn't Text, because in that case it's nice if type guessing still happens - The target column is empty, meaning it has type Any (we check earlier that it's not a formula column) The info copied is the type, widgetOptions, and reference column settings (visible and display columns) but not conditional formatting. The changes are mostly in a function `parsePasteForView` which is based on `BaseView._parsePasteForView` but ported to TypeScript in a new file `BaseView2.ts`. Added a useraction `MaybeCopyDisplayFormula` exposing an existing Python function `maybe_copy_display_formula` because the target column needs a slightly different display formula. Test Plan: Added a new nbrowser test file and fixture doc. Reviewers: cyprien Reviewed By: cyprien Subscribers: jarek, dsagal Differential Revision: https://phab.getgrist.com/D3344
This commit is contained in:
@@ -1461,6 +1461,11 @@ class UserActions(object):
|
||||
self._do_doc_action(actions.BulkUpdateRecord(table_id, changed_rows,
|
||||
{dst_col_id: changed_values}))
|
||||
|
||||
@useraction
|
||||
def MaybeCopyDisplayFormula(self, src_col_ref, dst_col_ref):
|
||||
src_col = self._docmodel.columns.table.get_record(src_col_ref)
|
||||
dst_col = self._docmodel.columns.table.get_record(dst_col_ref)
|
||||
self.maybe_copy_display_formula(src_col, dst_col)
|
||||
|
||||
def maybe_copy_display_formula(self, src_col, dst_col):
|
||||
"""
|
||||
|
||||
Reference in New Issue
Block a user