Skip to content

Commit f3390ef

Browse files
Add tile sort order to bulk data manager (#11638)
* Remove unused argument * Add sortorder to tile_excel * Make sortorder non-nullable in loadstaging * Add sortorder to loadstaging model * Add sortorder to staging_to_tile pg function * Add hardcoded sortorder of 0 to bulk excel * Add fixed sortorder of 0 to single csv * Support sortorder in arches_stage_string_data_for_bulk_edit sql fn * nit * Update bulk concept edit to support sortorder * Add changelog entry * Check imported tile sort order #11408 --------- Co-authored-by: Johnathan Clementi <[email protected]>
1 parent 06ed15a commit f3390ef

File tree

9 files changed

+428
-8
lines changed

9 files changed

+428
-8
lines changed

arches/app/etl_modules/branch_excel_importer.py

+3-1
Original file line numberDiff line numberDiff line change
@@ -205,8 +205,9 @@ def process_worksheet(self, worksheet, cursor, node_lookup, nodegroup_lookup):
205205
tile_value_json, passes_validation = self.create_tile_value(
206206
cell_values, data_node_lookup, node_lookup, row_details, cursor
207207
)
208+
sortorder = 0
208209
cursor.execute(
209-
"""INSERT INTO load_staging (nodegroupid, legacyid, resourceid, tileid, parenttileid, value, loadid, nodegroup_depth, source_description, passes_validation, operation) VALUES (%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s)""",
210+
"""INSERT INTO load_staging (nodegroupid, legacyid, resourceid, tileid, parenttileid, value, loadid, nodegroup_depth, source_description, passes_validation, operation, sortorder) VALUES (%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s)""",
210211
(
211212
row_details["nodegroup_id"],
212213
legacyid,
@@ -221,6 +222,7 @@ def process_worksheet(self, worksheet, cursor, node_lookup, nodegroup_lookup):
221222
), # source_description
222223
passes_validation,
223224
operation,
225+
sortorder,
224226
),
225227
)
226228
except KeyError:

arches/app/etl_modules/bulk_edit_concept.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -393,8 +393,8 @@ def stage_data(
393393
try:
394394
sql = (
395395
"""
396-
INSERT INTO load_staging (value, tileid, nodegroupid, parenttileid, resourceid, loadid, nodegroup_depth, source_description, operation, passes_validation)
397-
(SELECT tiledata, tileid, nodegroupid, parenttileid, resourceinstanceid, %(load_id)s, 0, 'bulk_edit', 'update', true
396+
INSERT INTO load_staging (value, tileid, nodegroupid, parenttileid, resourceid, loadid, nodegroup_depth, source_description, operation, passes_validation, sortorder)
397+
(SELECT tiledata, tileid, nodegroupid, parenttileid, resourceinstanceid, %(load_id)s, 0, 'bulk_edit', 'update', true, sortorder
398398
FROM tiles
399399
WHERE nodegroupid in (SELECT nodegroupid FROM nodes WHERE nodeid = %(node_id)s)
400400
AND tiledata -> %(node_id)s ? %(old_id)s

arches/app/etl_modules/import_single_csv.py

+4-2
Original file line numberDiff line numberDiff line change
@@ -555,8 +555,9 @@ def populate_staging_table(
555555
nodegroup_depth,
556556
source_description,
557557
operation,
558-
passes_validation
559-
) VALUES (%s,%s,%s,%s,%s,%s,%s,%s,%s,%s)""",
558+
passes_validation,
559+
sortorder
560+
) VALUES (%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s)""",
560561
(
561562
nodegroup,
562563
legacyid,
@@ -568,6 +569,7 @@ def populate_staging_table(
568569
csv_file_name,
569570
"insert",
570571
passes_validation,
572+
0,
571573
),
572574
)
573575

arches/app/etl_modules/tile_excel_importer.py

+3-3
Original file line numberDiff line numberDiff line change
@@ -81,7 +81,6 @@ def run_load_task_async(self, request):
8181

8282
def create_tile_value(
8383
self,
84-
cell_values,
8584
data_node_lookup,
8685
node_lookup,
8786
nodegroup_alias,
@@ -176,6 +175,7 @@ def process_worksheet(self, worksheet, cursor, node_lookup, nodegroup_lookup):
176175
raise ValueError(_("All rows must have a valid resource id"))
177176

178177
node_values = cell_values[3:-3]
178+
sortorder = cell_values[-3] if cell_values[-3] else 0
179179
try:
180180
row_count += 1
181181
row_details = dict(zip(data_node_lookup[nodegroup_alias], node_values))
@@ -194,7 +194,6 @@ def process_worksheet(self, worksheet, cursor, node_lookup, nodegroup_lookup):
194194
)
195195
legacyid, resourceid = self.set_legacy_id(resourceid)
196196
tile_value_json, passes_validation = self.create_tile_value(
197-
cell_values,
198197
data_node_lookup,
199198
node_lookup,
200199
nodegroup_alias,
@@ -214,7 +213,7 @@ def process_worksheet(self, worksheet, cursor, node_lookup, nodegroup_lookup):
214213
if TileModel.objects.filter(pk=tileid).exists():
215214
operation = "update"
216215
cursor.execute(
217-
"""INSERT INTO load_staging (nodegroupid, legacyid, resourceid, tileid, parenttileid, value, loadid, nodegroup_depth, source_description, passes_validation, operation) VALUES (%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s)""",
216+
"""INSERT INTO load_staging (nodegroupid, legacyid, resourceid, tileid, parenttileid, value, loadid, nodegroup_depth, source_description, passes_validation, operation, sortorder) VALUES (%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s)""",
218217
(
219218
row_details["nodegroup_id"],
220219
legacyid,
@@ -229,6 +228,7 @@ def process_worksheet(self, worksheet, cursor, node_lookup, nodegroup_lookup):
229228
), # source_description
230229
passes_validation,
231230
operation,
231+
sortorder,
232232
),
233233
)
234234
except KeyError:

0 commit comments

Comments
 (0)