From 2fd0a6146ed458a47e1a1e07f91d373dda93d290 Mon Sep 17 00:00:00 2001
From: Antonio Rivero Martinez
<38889534+Antonio-RiveroMartnez@users.noreply.github.com>
Date: Wed, 30 Nov 2022 12:03:52 -0300
Subject: [PATCH] feat: CSV File Upload form updates (Grouping with
Collapse/Expand) (#21992)
---
.../superset/form_view/csv_macros.html | 75 +++++++++++
.../superset/form_view/csv_scripts.html | 37 ++++++
.../form_view/csv_to_database_view/edit.html | 116 +++++++++++++++++-
superset/views/database/forms.py | 12 +-
superset/views/database/views.py | 55 ++++++++-
5 files changed, 288 insertions(+), 7 deletions(-)
create mode 100644 superset/templates/superset/form_view/csv_macros.html
create mode 100644 superset/templates/superset/form_view/csv_scripts.html
diff --git a/superset/templates/superset/form_view/csv_macros.html b/superset/templates/superset/form_view/csv_macros.html
new file mode 100644
index 000000000..40c7bf54a
--- /dev/null
+++ b/superset/templates/superset/form_view/csv_macros.html
@@ -0,0 +1,75 @@
+{#
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements. See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership. The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License. You may obtain a copy of the License at
+
+http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing,
+software distributed under the License is distributed on an
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, either express or implied. See the License for the
+specific language governing permissions and limitations
+under the License.
+#}
+{% macro render_delimiter_field(field, begin_sep_label='', end_sep_label='', begin_sep_field='', end_sep_field='') %}
+ {% if field.id != 'csrf_token' %}
+ {% if field.type == 'HiddenField' %}
+ {{ field}}
+ {% else %}
+ {{begin_sep_label|safe}}
+
+ {{end_sep_label|safe}}
+ {{begin_sep_field|safe}}
+ {{ field(**kwargs)|safe }}
+
+ {{ field.description }}
+ {% endif %}
+ {% if field.errors %}
+
+ {% for error in field.errors %}
+ {{ _(error) }}
+ {% endfor %}
+
+{% endmacro %}
diff --git a/superset/templates/superset/form_view/csv_scripts.html b/superset/templates/superset/form_view/csv_scripts.html
new file mode 100644
index 000000000..bb7b94b1a
--- /dev/null
+++ b/superset/templates/superset/form_view/csv_scripts.html
@@ -0,0 +1,37 @@
+{#
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements. See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership. The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License. You may obtain a copy of the License at
+
+http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing,
+software distributed under the License is distributed on an
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, either express or implied. See the License for the
+specific language governing permissions and limitations
+under the License.
+#}
+
diff --git a/superset/templates/superset/form_view/csv_to_database_view/edit.html b/superset/templates/superset/form_view/csv_to_database_view/edit.html
index 2bec3aa12..b09f9bd38 100644
--- a/superset/templates/superset/form_view/csv_to_database_view/edit.html
+++ b/superset/templates/superset/form_view/csv_to_database_view/edit.html
@@ -16,10 +16,122 @@
specific language governing permissions and limitations
under the License.
#}
+{% extends "appbuilder/base.html" %}
+{% import 'appbuilder/general/lib.html' as lib %}
+{% set begin_sep_label = '