From 5e10cbea2c2ac487e490f819f8f8fb11076f472a Mon Sep 17 00:00:00 2001 From: german Date: Tue, 7 Jan 2025 17:15:36 -0300 Subject: [PATCH] Casi andando tags --- ckanext/superset/blueprints/superset.py | 17 +++++++++++++++++ .../templates/superset/create-dataset.html | 16 ++++++++++++++++ 2 files changed, 33 insertions(+) diff --git a/ckanext/superset/blueprints/superset.py b/ckanext/superset/blueprints/superset.py index e04e7a8..7583605 100644 --- a/ckanext/superset/blueprints/superset.py +++ b/ckanext/superset/blueprints/superset.py @@ -48,10 +48,17 @@ def create_dataset(chart_id): # Obtener los grupos disponibles groups_available = tk.get_action('group_list')({'user': current_user.name}, {'all_fields': True}) + # Obtener Tags disponibles de cada chart + tags_available = tk.get_action('tag_list')({'user': current_user.name}, {'all_fields': True}) + + if not tags_available: + log.warning(f"No tags found for chart {superset_chart.data.get('slice_name', 'unknown')}") + if request.method == 'GET': extra_vars = { 'superset_chart': superset_chart, 'groups_available': groups_available, + 'tags_available': tags_available, } return tk.render('superset/create-dataset.html', extra_vars) @@ -78,6 +85,15 @@ def create_dataset(chart_id): if invalid_groups: raise tk.ValidationError(f"Invalid group IDs: {', '.join(invalid_groups)}") + # Obtener los Tags seleccionados del formulario + selected_tags = request.form.getlist('ckan_tags[]') + # Convertir los tags seleccionados a una lista de diccionarios + tags = [{"name": tag} for tag in selected_tags] + + # Validar si hay tags + if not tags: + log.warning(f"No valid tags provided for the dataset {ckan_dataset_name}. Tags will be empty.") + # Crear el dataset action = tk.get_action("package_create") context = {'user': current_user.name} @@ -89,6 +105,7 @@ def create_dataset(chart_id): 'private': request.form.get('ckan_dataset_private') == 'on', 'extras': [{'key': 'superset_chart_id', 'value': chart_id}], 'groups': [{"id": group_id} for group_id in selected_group_ids], + 'tags': tags, } pkg = action(context, data) diff --git a/ckanext/superset/templates/superset/create-dataset.html b/ckanext/superset/templates/superset/create-dataset.html index e18e551..8d270f9 100644 --- a/ckanext/superset/templates/superset/create-dataset.html +++ b/ckanext/superset/templates/superset/create-dataset.html @@ -44,6 +44,22 @@

Create CKAN dataset from Superset dataset

+ +
+ + +
+ {% for tag in tags_available %} +
+ + +
+ {% endfor %} +
+
+