From 280a3e9cd47ad4b1b9897e09b4f63363c56f1689 Mon Sep 17 00:00:00 2001 From: german Date: Tue, 3 Dec 2024 14:55:24 -0300 Subject: [PATCH 1/5] Agregando lista databases --- ckanext/superset/blueprints/superset.py | 31 +++++++++++ ckanext/superset/data/main.py | 6 ++ .../templates/superset/databases_list.html | 55 +++++++++++++++++++ .../superset/templates/superset/index.html | 7 ++- 4 files changed, 98 insertions(+), 1 deletion(-) create mode 100644 ckanext/superset/templates/superset/databases_list.html diff --git a/ckanext/superset/blueprints/superset.py b/ckanext/superset/blueprints/superset.py index d4a1c44..054e41c 100644 --- a/ckanext/superset/blueprints/superset.py +++ b/ckanext/superset/blueprints/superset.py @@ -9,6 +9,7 @@ from ckanext.superset.config import get_config from ckanext.superset.decorators import require_sysadmin_user from ckanext.superset.data.main import SupersetCKAN +from ckanext.superset.data.chart import SupersetChart from ckanext.superset.exceptions import SupersetRequestException from ckanext.superset.utils import slug @@ -104,3 +105,33 @@ def create_dataset(chart_id): # redirect to the new CKAN dataset url = tk.h.url_for('dataset.read', id=pkg['name']) return tk.redirect_to(url) + + +@superset_bp.route('/list_databases', methods=['GET']) +@require_sysadmin_user +def list_databases(): + cfg = get_config() + print("cfg", cfg) + sc = SupersetCKAN(**cfg) + print("sc", sc) + superset_database = sc.get_databases() + print("superset_database", superset_database) + superset_url = tk.config.get('ckanext.superset.instance.url') + print("superset_url", superset_url) + chart_id = SupersetChart(superset_instance=sc).id + log.debug(f"chart_id: {chart_id}") + + cfg = get_config() + sc = SupersetCKAN(**cfg) + superset_chart = sc.get_chart(chart_id) + superset_url = tk.config.get('ckanext.superset.instance.url') + charts_url = f'{superset_url}/chart/{superset_chart.get("id")}' + if request.method == 'GET': + + extra_vars = { + 'databases': superset_database, + 'superset_url': superset_url, + 'charts_url': charts_url, + } + print("extra_vars", extra_vars) + return tk.render('superset/databases_list.html', extra_vars) diff --git a/ckanext/superset/data/main.py b/ckanext/superset/data/main.py index 6d772a8..22f085f 100644 --- a/ckanext/superset/data/main.py +++ b/ckanext/superset/data/main.py @@ -124,6 +124,12 @@ def get_chart(self, chart_id): self.charts.append(chart) return chart + def get_databases(self): + """ Get a list_database """ + # Get from the API + self.load_databases(self) + return self.databases + def prepare_connection(self): """ Define the client and login if required """ log.info(f"Connecting to {self.superset_url}") diff --git a/ckanext/superset/templates/superset/databases_list.html b/ckanext/superset/templates/superset/databases_list.html new file mode 100644 index 0000000..8912a67 --- /dev/null +++ b/ckanext/superset/templates/superset/databases_list.html @@ -0,0 +1,55 @@ +{% extends "page.html" %} + +{% block primary_content %} +
+
+

Databases

+ + + + + + + + + + + {% for database in databases %} + + + + + + + {% endfor %} + + +
{{ _('ID') }}{{ _('Nombre de la base de datos') }}{{ _('Autor') }}{{ _('Actualizado') }}
{{ database.id }}{{ database.database_name }}{{ database.created_by.first_name }}, {{ database.created_by.last_name }}{{ database.changed_on }}
+
+
+{% endblock %} + +{% block secondary_content %} + +
+

+ {{ _('Apache Superset') }} +

+
+ Apache Superset +

+ Apache Superset es una herramienta de visualización de datos de código abierto que permite a los usuarios + crear paneles de control y visualizaciones interactivas. +

+

+ + {{ ('Volver a Superset') }} + + + {{ ('Lista de Charts') }} + +

+
+
+ +{% endblock %} diff --git a/ckanext/superset/templates/superset/index.html b/ckanext/superset/templates/superset/index.html index 37a9430..f5578d3 100644 --- a/ckanext/superset/templates/superset/index.html +++ b/ckanext/superset/templates/superset/index.html @@ -83,7 +83,12 @@

Apache Superset es una herramienta de visualización de datos de código abierto que permite a los usuarios crear paneles de control y visualizaciones interactivas. -

+

+

+ + {{ _('Ver lista de bases de datos') }} + +

From c3835cb491cf29f11299a6ac15915cad4c21b412 Mon Sep 17 00:00:00 2001 From: german Date: Tue, 3 Dec 2024 16:00:07 -0300 Subject: [PATCH 2/5] Andando --- ckanext/superset/blueprints/superset.py | 29 ++++--------------- .../templates/superset/databases_list.html | 5 +--- 2 files changed, 7 insertions(+), 27 deletions(-) diff --git a/ckanext/superset/blueprints/superset.py b/ckanext/superset/blueprints/superset.py index 054e41c..f6c5f1e 100644 --- a/ckanext/superset/blueprints/superset.py +++ b/ckanext/superset/blueprints/superset.py @@ -9,7 +9,6 @@ from ckanext.superset.config import get_config from ckanext.superset.decorators import require_sysadmin_user from ckanext.superset.data.main import SupersetCKAN -from ckanext.superset.data.chart import SupersetChart from ckanext.superset.exceptions import SupersetRequestException from ckanext.superset.utils import slug @@ -111,27 +110,11 @@ def create_dataset(chart_id): @require_sysadmin_user def list_databases(): cfg = get_config() - print("cfg", cfg) sc = SupersetCKAN(**cfg) - print("sc", sc) - superset_database = sc.get_databases() - print("superset_database", superset_database) + superset_databases = sc.get_databases() superset_url = tk.config.get('ckanext.superset.instance.url') - print("superset_url", superset_url) - chart_id = SupersetChart(superset_instance=sc).id - log.debug(f"chart_id: {chart_id}") - - cfg = get_config() - sc = SupersetCKAN(**cfg) - superset_chart = sc.get_chart(chart_id) - superset_url = tk.config.get('ckanext.superset.instance.url') - charts_url = f'{superset_url}/chart/{superset_chart.get("id")}' - if request.method == 'GET': - - extra_vars = { - 'databases': superset_database, - 'superset_url': superset_url, - 'charts_url': charts_url, - } - print("extra_vars", extra_vars) - return tk.render('superset/databases_list.html', extra_vars) + extra_vars = { + 'databases': superset_databases, + 'superset_url': superset_url, + } + return tk.render('superset/databases_list.html', extra_vars) diff --git a/ckanext/superset/templates/superset/databases_list.html b/ckanext/superset/templates/superset/databases_list.html index 8912a67..e0ff542 100644 --- a/ckanext/superset/templates/superset/databases_list.html +++ b/ckanext/superset/templates/superset/databases_list.html @@ -42,10 +42,7 @@

crear paneles de control y visualizaciones interactivas.

- - {{ ('Volver a Superset') }} - - + {{ ('Lista de Charts') }}

From b12591f38712da7b6dfa089ff216746b88a55371 Mon Sep 17 00:00:00 2001 From: avdata99 Date: Tue, 3 Dec 2024 23:30:18 -0300 Subject: [PATCH 3/5] init databases prop --- ckanext/superset/data/main.py | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/ckanext/superset/data/main.py b/ckanext/superset/data/main.py index 87d5afa..d4c90c8 100644 --- a/ckanext/superset/data/main.py +++ b/ckanext/superset/data/main.py @@ -50,6 +50,9 @@ def __init__( self.datasets_response = None self.datasets = [] # {ID: data} + self.databases_response = None + self.databases = [] # {ID: data} + def load_datasets(self, force=False): """ Get and load all datasets """ if self.datasets and not force: @@ -91,8 +94,8 @@ def load_charts(self, force=False): return self.charts def load_databases(self, force=False): - if hasattr(self, 'databases') and self.databases and not force: - return + if self.databases and not force: + return self.databases self.databases_response = self.get("database/") self.databases = sorted( From 489b01ace0a0a8cbacc01f5bf3d57119ea798067 Mon Sep 17 00:00:00 2001 From: avdata99 Date: Tue, 3 Dec 2024 23:31:07 -0300 Subject: [PATCH 4/5] Changelog --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 86c5d59..ff0a67d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,7 @@ Features: - Move to https 0.28.0 droping the proxies parameter [#14](https://github.com/unckan/ckanext-superset/pull/14) + - Add databases list in admin [#21](https://github.com/unckan/ckanext-superset/pull/21) # 0.1.7 From a6f0aaf8651b1e34e910a0536dfb667d1edb7312 Mon Sep 17 00:00:00 2001 From: avdata99 Date: Tue, 3 Dec 2024 23:33:03 -0300 Subject: [PATCH 5/5] eng --- ckanext/superset/templates/superset/databases_list.html | 2 +- ckanext/superset/templates/superset/index.html | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/ckanext/superset/templates/superset/databases_list.html b/ckanext/superset/templates/superset/databases_list.html index e0ff542..f04f055 100644 --- a/ckanext/superset/templates/superset/databases_list.html +++ b/ckanext/superset/templates/superset/databases_list.html @@ -43,7 +43,7 @@

- {{ ('Lista de Charts') }} + {{ ('Charts') }}

diff --git a/ckanext/superset/templates/superset/index.html b/ckanext/superset/templates/superset/index.html index f5578d3..a2fdf8a 100644 --- a/ckanext/superset/templates/superset/index.html +++ b/ckanext/superset/templates/superset/index.html @@ -85,8 +85,8 @@

crear paneles de control y visualizaciones interactivas.

- - {{ _('Ver lista de bases de datos') }} + + {{ _('Databases') }}