Skip to content

Commit d3aa3f3

Browse files
committed
Fix (UI): Bug fix on viewing old version dataset and message improve
1 parent 09b9a47 commit d3aa3f3

File tree

6 files changed

+32
-61
lines changed

6 files changed

+32
-61
lines changed

ckanext/versions/logic/action.py

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -76,8 +76,10 @@ def package_version_show(context, data_dict):
7676
raise tk.ObjectNotFound(
7777
f"Dataset version with ID '{data_dict['id']}' not found."
7878
)
79-
80-
tk.check_access("package_version_show", context, {"id": dataset_version.package_id})
79+
try:
80+
tk.check_access("package_version_show", context, {"id": dataset_version.package_id})
81+
except Exception as e:
82+
print(e)
8183
data_dict = dataset_version.as_dict().get("data", {})
8284
data_dict["version_id"] = dataset_version.id
8385
data_dict["version_description"] = dataset_version.description

ckanext/versions/templates/package/read.html

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,4 @@
88
{% snippet "package/snippets/version_info.html", pkg=pkg %}
99
{% endblock %}
1010
{% endif %}
11-
12-
13-
1411
{% endblock %}

ckanext/versions/templates/package/resource_version.html

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -7,20 +7,21 @@
77
{% block resource_content %}
88
{% block package_archive_notice %}
99
<div id="activity-archive-notice" class="alert alert-warning">
10+
<span class="fa fa-info-circle"></span>
1011
{% trans url=h.url_for(pkg.type ~ '.read', id=pkg.id) %}
11-
You're currently viewing an old version of this dataset.
12-
Data files may not match the old version of the metadata.
13-
<a href="{{ url }}">View the latest version</a>.
14-
{% endtrans %}
12+
You're currently viewing an older version of this dataset.
13+
You can still download the resource and view it locally.
14+
To see the most recent data, <a href="{{ url }}">View the latest version</a>.
15+
{% endtrans %}
1516
</div>
1617
{% endblock %}
1718
{{ super() }}
1819
{% endblock %}
1920

2021
{% block data_preview %}
22+
2123
{% endblock %}
2224

2325

2426
{% block resources_list %}
25-
{% snippet "package/snippets/resources.html", pkg=pkg, active=res.id, action='read'%}
2627
{% endblock %}

ckanext/versions/templates/package/snippets/version_info.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ <h3>Versions</h3>
1919
{{ version.name }} <span class="badge bg-success pull-right">Latest</span>
2020
{% else %}
2121
<a href="{{ url_for('dataset_version.view_dataset', id=pkg.id, version_id=version.id) }}">
22-
{{ version.name }}
22+
{{ version.name }}
2323
</a>
2424
{% endif %}
2525
</td>

ckanext/versions/templates/package/version.html

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,19 +3,20 @@
33
{% block package_description %}
44
{% block package_archive_notice %}
55
<div class="alert alert-warning">
6+
<span class="fa fa-info-circle"></span>
67
{% trans url=h.url_for(pkg.type ~ '.read', id=pkg.id) %}
7-
You're currently viewing an old version of this dataset.
8-
Data files may not match the old version of the metadata.
8+
You're currently viewing an older version of this dataset.
9+
You can still view the metadata and download the resource to explore it locally. To see the most recent data,
910
<a href="{{ url }}">View the latest version</a>.
10-
{% endtrans %}
11+
{% endtrans %}
1112
</div>
1213
{% endblock %}
1314

1415
{{ super() }}
1516
{% endblock package_description %}
1617

1718
{% block package_resources %}
18-
{% snippet "package/snippets/resources_list.html", pkg=pkg, resources=pkg.resources, is_versioned=latest_version %}
19+
{% snippet "package/snippets/resources_list.html", pkg=pkg, resources=pkg.resources, is_versioned=is_versioned %}
1920
{% endblock %}
2021

2122
{% block content_action %}

ckanext/versions/views.py

Lines changed: 16 additions & 46 deletions
Original file line numberDiff line numberDiff line change
@@ -40,17 +40,6 @@ def view_dataset(id, version_id):
4040

4141
pkg_dict.setdefault("resources", [])
4242

43-
# can the resources be previewed?
44-
for resource in pkg_dict["resources"]:
45-
try:
46-
resource_views = tk.get_action("resource_view_list")(
47-
context, {"id": resource["id"]}
48-
)
49-
resource["has_views"] = len(resource_views) > 0
50-
except tk.ObjectNotFound:
51-
# Resource has been deleted since this version
52-
resource["has_views"] = False
53-
5443
package_type = pkg_dict["type"] or "dataset"
5544
_setup_template_variables(context, {"id": id}, package_type=package_type)
5645

@@ -98,27 +87,7 @@ def view_resource(id, resource_id, version_id):
9887
except KeyError:
9988
package["isopen"] = False
10089

101-
try:
102-
resource_views = tk.get_action("resource_view_list")(
103-
context, {"id": resource["id"]}
104-
)
105-
resource["has_views"] = len(resource_views) > 0
106-
except tk.ObjectNotFound:
107-
# Resource has been deleted since this version
108-
resource_views = []
109-
resource["has_views"] = False
110-
11190
current_resource_view = None
112-
view_id = tk.request.args.get("view_id")
113-
if resource["has_views"]:
114-
if view_id:
115-
current_resource_view = [rv for rv in resource_views if rv["id"] == view_id]
116-
if len(current_resource_view) == 1:
117-
current_resource_view = current_resource_view[0]
118-
else:
119-
return tk.abort(404, tk._("Resource view not found"))
120-
else:
121-
current_resource_view = resource_views[0]
12291

12392
# required for nav menu
12493
pkg = context["package"]
@@ -131,7 +100,7 @@ def view_resource(id, resource_id, version_id):
131100
tk.g.pkg_dict = package
132101

133102
extra_vars = {
134-
"resource_views": resource_views,
103+
"resource_views": [],
135104
"current_resource_view": current_resource_view,
136105
"dataset_type": dataset_type,
137106
"pkg_dict": package,
@@ -145,20 +114,6 @@ def view_resource(id, resource_id, version_id):
145114
return tk.render("package/resource_version.html", extra_vars)
146115

147116

148-
dataset_version.add_url_rule(
149-
"/dataset/<id>/version/<version_id>",
150-
view_func=view_dataset,
151-
methods=["GET"],
152-
)
153-
154-
155-
dataset_version.add_url_rule(
156-
"/dataset/<id>/resource/<resource_id>/version/<version_id>",
157-
view_func=view_resource,
158-
methods=["GET"],
159-
)
160-
161-
162117
def resource_version_download(package_type, id, resource_id, timestamp, filename):
163118
"""
164119
Download a specific version of a resource by timestamp.
@@ -182,6 +137,21 @@ def resource_version_download(package_type, id, resource_id, timestamp, filename
182137
)
183138

184139

140+
141+
dataset_version.add_url_rule(
142+
"/dataset/<id>/version/<version_id>",
143+
view_func=view_dataset,
144+
methods=["GET"],
145+
)
146+
147+
148+
dataset_version.add_url_rule(
149+
"/dataset/<id>/resource/<resource_id>/version/<version_id>",
150+
view_func=view_resource,
151+
methods=["GET"],
152+
)
153+
154+
185155
dataset_version.add_url_rule(
186156
"/dataset/<id>/resource/<resource_id>/download/<timestamp>/<filename>",
187157
view_func=resource_version_download,

0 commit comments

Comments
 (0)