From d9cb9a56f93d3fa6c1a90d42a7a6f88a3d383fc6 Mon Sep 17 00:00:00 2001 From: Dale Wahl Date: Mon, 3 Mar 2025 15:00:12 +0100 Subject: [PATCH] collect example dataset to map keys --- common/lib/helpers.py | 11 +++++++++++ webtool/templates/data-overview.html | 12 ++++++++++++ webtool/views/views_misc.py | 8 +++++++- 3 files changed, 30 insertions(+), 1 deletion(-) diff --git a/common/lib/helpers.py b/common/lib/helpers.py index a4d1bc312..7c63766ba 100644 --- a/common/lib/helpers.py +++ b/common/lib/helpers.py @@ -46,6 +46,17 @@ def init_datasource(database, logger, queue, name): """ pass +def get_datasource_example_keys(db, modules, dataset_type): + """ + Get example keys for a datasource + """ + from common.lib.dataset import DataSet + example_dataset_key = db.fetchone("SELECT key from datasets WHERE type = %s and is_finished = True and num_rows > 0 LIMIT 1", (dataset_type,)) + if example_dataset_key: + example_dataset = DataSet(db=db, key=example_dataset_key["key"], modules=modules) + return example_dataset.get_columns() + return [] + def strip_tags(html, convert_newlines=True): """ Strip HTML from a string diff --git a/webtool/templates/data-overview.html b/webtool/templates/data-overview.html index f31f2178d..8b273d6ab 100644 --- a/webtool/templates/data-overview.html +++ b/webtool/templates/data-overview.html @@ -95,6 +95,18 @@

Metadata

{% endif %} + {% if example_keys %} +
+
DataSet keys
+
+
    + {% for key in example_keys %} + {{ key }} + {% endfor %} +
+
+
+ {% endif %} {% else %} diff --git a/webtool/views/views_misc.py b/webtool/views/views_misc.py index e179085c2..fc9251f48 100644 --- a/webtool/views/views_misc.py +++ b/webtool/views/views_misc.py @@ -17,6 +17,7 @@ from webtool.views.views_dataset import create_dataset, show_results from common.config_manager import ConfigWrapper +from common.lib.helpers import get_datasource_example_keys config = ConfigWrapper(config, user=current_user, request=request) csv.field_size_limit(1024 * 1024 * 1024) @@ -129,6 +130,7 @@ def data_overview(datasource=None): daily_counts = None references = None labels = None + example_keys = None if datasource: @@ -156,6 +158,10 @@ def data_overview(datasource=None): if hasattr(worker_class, "is_from_zeeschuimer"): labels.append("zeeschuimer") + # Get example keys for the datasource + if datasource_id not in ["upload"]: # ignore upload as keys are variable + example_keys = get_datasource_example_keys(db=db, modules=fourcat_modules, dataset_type=datasource_id + "-search") + # Get daily post counts for local datasource to display in a graph if is_local == "local": @@ -185,7 +191,7 @@ def data_overview(datasource=None): references = worker_class.references if hasattr(worker_class, "references") else None - return render_template('data-overview.html', datasources=datasources, datasource_id=datasource_id, description=description, labels=labels, total_counts=total_counts, daily_counts=daily_counts, github_url=github_url, references=references) + return render_template('data-overview.html', datasources=datasources, datasource_id=datasource_id, description=description, labels=labels, total_counts=total_counts, daily_counts=daily_counts, github_url=github_url, references=references, example_keys=example_keys) @app.route('/get-boards//') @login_required