mirror of
https://github.com/gristlabs/grist-core.git
synced 2026-03-02 04:09:24 +00:00
(core) Fix missing sum column after a summary table update
Summary: Description of the problem can be found here: https://grist.slack.com/archives/C069RUP71/p1634899282005600 - users removing a group by column that is of type numeric was resulting in the column missing from the summary table. Where instead is should be present as a 'SUM($group.${col.colId})' formula column - this diff fixes that issue and adds unit test Test Plan: Should not break anything. Adds not test case. Reviewers: alexmojaki Reviewed By: alexmojaki Subscribers: alexmojaki Differential Revision: https://phab.getgrist.com/D3351
This commit is contained in:
@@ -664,6 +664,48 @@ class TestSummary2(test_engine.EngineTestCase):
|
||||
])])
|
||||
self.assertEqual(get_helper_cols('Address'), ['#summary#GristSummary_7_Address'])
|
||||
|
||||
# Change the section to add and then remove the "amount" to the group-by column; check that
|
||||
# column "amount" was correctly restored
|
||||
self.apply_user_action(["UpdateSummaryViewSection", 1, [11, 12, 13]])
|
||||
self.assertTables([
|
||||
self.starting_table,
|
||||
Table(7, "GristSummary_7_Address2", 0, 1, columns=[
|
||||
Column(35, "city", "Text", False, "", 11),
|
||||
Column(36, "state", "Text", False, "", 12),
|
||||
Column(37, "amount", "Numeric", False, "", 13),
|
||||
Column(38, "count", "Int", True, "len($group)", 0),
|
||||
Column(39, "group", "RefList:Address", True, "table.getSummarySourceGroup(rec)", 0),
|
||||
]),
|
||||
])
|
||||
self.assertViews([View(1, sections=[
|
||||
Section(1, parentKey="record", tableRef=7, fields=[
|
||||
Field(6, colRef=35),
|
||||
Field(5, colRef=36),
|
||||
Field(7, colRef=37),
|
||||
Field(3, colRef=38),
|
||||
])
|
||||
])])
|
||||
self.apply_user_action(["UpdateSummaryViewSection", 1, [11,12]])
|
||||
self.assertTables([
|
||||
self.starting_table,
|
||||
Table(8, "GristSummary_7_Address", 0, 1, columns=[
|
||||
Column(40, "city", "Text", False, "", 11),
|
||||
Column(41, "state", "Text", False, "", 12),
|
||||
Column(42, "count", "Int", True, "len($group)", 0),
|
||||
Column(43, "group", "RefList:Address", True, "table.getSummarySourceGroup(rec)", 0),
|
||||
Column(44, "amount", "Numeric", True, "SUM($group.amount)", 0),
|
||||
|
||||
]),
|
||||
])
|
||||
self.assertViews([View(1, sections=[
|
||||
Section(1, parentKey="record", tableRef=8, fields=[
|
||||
Field(6, colRef=40),
|
||||
Field(5, colRef=41),
|
||||
Field(3, colRef=42),
|
||||
Field(7, colRef=44),
|
||||
])
|
||||
])])
|
||||
|
||||
# Delete source table, and ensure its summary table is also gone.
|
||||
self.apply_user_action(["RemoveTable", "Address"])
|
||||
self.assertTables([])
|
||||
|
||||
Reference in New Issue
Block a user