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