Skip to content

Commit 06fa3e5

Browse files
authored
Merge pull request #258 from dpc-sdp/uat
UAT to master
2 parents 8be46cf + 92535af commit 06fa3e5

16 files changed

Lines changed: 165 additions & 2726 deletions

File tree

ckanext/datavic_odp_theme/config.py

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121
"csv-geo-au",
2222
"aus-geo-csv",
2323
]
24+
CONFIG_DTV_MAX_SIZE_LIMIT = "ckanext.datavicmain.dtv.max_size_limit"
2425
CONFIG_DTV_URL = "ckanext.datavic_odp_theme.dtv.url"
2526
CONFIG_DTV_EXTERNAL_LINK = "ckanext.datavic_odp_theme.dtv.external_link"
2627

@@ -49,6 +50,10 @@ def get_dtv_supported_formats() -> set[str]:
4950
}
5051

5152

53+
def get_dtv_max_size_limit() -> str:
54+
return tk.config.get(CONFIG_DTV_MAX_SIZE_LIMIT, "157286400")
55+
56+
5257
def get_dtv_url() -> str:
5358
return tk.config.get(CONFIG_DTV_URL, "")
5459

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
// Dataset Additional info styles
2+
.additional-info {
3+
.dataset-details {
4+
ul {
5+
margin-bottom: 0;
6+
7+
li {
8+
&:only-child {
9+
list-style-type: none;
10+
margin-left: -31px;
11+
}
12+
}
13+
}
14+
}
15+
}

ckanext/datavic_odp_theme/grunt/sass/_form.scss

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -123,6 +123,11 @@ select.form-control {
123123
appearance: auto;
124124
}
125125

126+
.dataset-form {
127+
.form-label[for="field-update_frequency"] {
128+
margin-bottom: 0;
129+
}
130+
}
126131

127132
// hide URL button for upload widget
128133
.organization-edit {

ckanext/datavic_odp_theme/grunt/sass/_resources.scss

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -123,9 +123,17 @@ $primary-color: #0052C2;
123123
}
124124

125125
.dataset-api {
126+
ul {
127+
padding-right: 50px;
128+
display: inline-flex;
129+
130+
i {
131+
margin-right: 3px;
132+
}
133+
}
134+
126135
li {
127136
display: inline;
128-
padding-right: 50px;
129137
&:last-child {
130138
padding-right: 0;
131139
}

ckanext/datavic_odp_theme/grunt/sass/styles.scss

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -56,3 +56,4 @@
5656
@import 'search_form';
5757
@import 'activity';
5858
@import 'datatables';
59+
@import 'dataset';

ckanext/datavic_odp_theme/helpers.py

Lines changed: 25 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -206,6 +206,29 @@ def is_resource_downloadable(resource: dict[str, Any]) -> bool:
206206
return False
207207

208208

209+
@helper
210+
def dtv_exceeds_max_size_limit(resource_id: str) -> bool:
211+
"""Check if DTV resource exceeds the maximum file size limit
212+
Args:
213+
resource_id (str): DTV resource id
214+
Returns:
215+
bool: return True if dtv resource exceeds maximum file size limit set
216+
in ckan config "ckanext.datavicmain.dtv.max_size_limit",
217+
otherwise - False
218+
"""
219+
try:
220+
resource = toolkit.get_action("resource_show")({}, {"id": resource_id})
221+
except (toolkit.ObjectNotFound, toolkit.NotAuthorized):
222+
return True
223+
224+
limit = conf.get_dtv_max_size_limit()
225+
filesize = resource.get("filesize")
226+
if filesize and int(filesize) >= int(limit):
227+
return True
228+
229+
return False
230+
231+
209232
@helper
210233
def datastore_loaded_resources(pkg_dict: dict[str, Any]) -> list[str]:
211234
"""Return a list of the dataset resources that are loaded to the datastore"""
@@ -256,11 +279,12 @@ def datavic_update_org_error_dict(
256279
error_dict["Logo"] = [(
257280
"Image format is not supported. "
258281
"Select an image in one of the following formats: "
259-
"JPG, JPEG, GIF, PNG, BMP, SVG."
282+
"JPG, JPEG, GIF, PNG, WEBP."
260283
)]
261284

262285
return error_dict
263286

287+
264288
@helper
265289
def resource_attributes(attrs):
266290
try:

ckanext/datavic_odp_theme/logic/__init__.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,8 @@ def actions():
1919
"resource_update": action.resource_update,
2020
"resource_create": action.resource_create,
2121
"datavic_list_incomplete_resources": action.datavic_list_incomplete_resources,
22+
"datavic_datatables_view_prioritize": action.datavic_datatables_view_prioritize,
23+
"resource_view_create": action.resource_view_create,
2224
}
2325

2426

ckanext/datavic_odp_theme/logic/action.py

Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,9 @@
99
from ckan import model
1010
from ckan.types import Action, Context, DataDict
1111
from ckan.types.logic import ActionResult
12+
from ckan.logic import validate
13+
from ckan.model import ResourceView
14+
from ckanext.datavic_odp_theme.logic import scheme
1215

1316
from ckanext.datavic_odp_theme import jobs
1417

@@ -198,3 +201,57 @@ def datavic_list_incomplete_resources(context, data_dict):
198201
"num_packages": num_packages,
199202
"results": results,
200203
}
204+
205+
206+
@validate(scheme.datatables_view_prioritize)
207+
def datavic_datatables_view_prioritize(
208+
context: Context, data_dict: DataDict
209+
) -> ActionResult:
210+
"""Check if the datatables view is prioritized over the recline view.
211+
If not, swap their order.
212+
"""
213+
tk.check_access("vic_datatables_view_prioritize", context, data_dict)
214+
215+
resource_id = data_dict["resource_id"]
216+
res_views = sorted(
217+
model.Session.query(ResourceView)
218+
.filter(ResourceView.resource_id == resource_id)
219+
.all(),
220+
key=lambda x: x.order,
221+
)
222+
datatables_views = _filter_views(res_views, "datatables_view")
223+
recline_views = _filter_views(res_views, "recline_view")
224+
225+
if not (
226+
datatables_views
227+
and recline_views
228+
and datatables_views[0].order > recline_views[0].order
229+
):
230+
return {"updated": False}
231+
232+
datatables_views[0].order, recline_views[0].order = (
233+
recline_views[0].order,
234+
datatables_views[0].order,
235+
)
236+
order = [view.id for view in sorted(res_views, key=lambda x: x.order)]
237+
tk.get_action("resource_view_reorder")(
238+
{"ignore_auth": True}, {"id": resource_id, "order": order}
239+
)
240+
return {"updated": True}
241+
242+
243+
@tk.chained_action
244+
def resource_view_create(next_, context, data_dict):
245+
result = next_(context, data_dict)
246+
if data_dict["view_type"] == "datatables_view":
247+
tk.get_action("datavic_datatables_view_prioritize")(
248+
{"ignore_auth": True}, {"resource_id": data_dict["resource_id"]}
249+
)
250+
return result
251+
252+
253+
def _filter_views(
254+
res_views: list[ResourceView], view_type: str
255+
) -> list[ResourceView]:
256+
"""Return a list of views with the given view type."""
257+
return [view for view in res_views if view.view_type == view_type]

ckanext/datavic_odp_theme/logic/auth/get.py

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ def vic_activity_list(context, data_dict):
3737
# DataVIC modification
3838
if (
3939
data_dict["object_type"] in ["package", "organization"]
40-
and not authz.auth_is_loggedin_user()
40+
and authz.auth_is_anon_user(context)
4141
):
4242
return {"success": False}
4343

@@ -47,13 +47,18 @@ def vic_activity_list(context, data_dict):
4747

4848

4949
@tk.chained_auth_function
50-
def vic_package_activity_list(context, data_dict):
50+
def vic_package_activity_list(next_auth, context, data_dict):
5151
data_dict["object_type"] = "package"
5252
return vic_activity_list(context, data_dict)
5353

54+
5455
@tk.chained_auth_function
5556
def vic_organization_activity_list(
56-
context: dict[str, Any], group_dict: dict[str, str]
57+
next_auth, context: dict[str, Any], group_dict: dict[str, str]
5758
) -> dict[bool, bool]:
5859
group_dict["object_type"] = "organization"
5960
return vic_activity_list(context, group_dict)
61+
62+
63+
def vic_datatables_view_prioritize(context, data_dict):
64+
return {"success": False}
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
from ckan.logic.schema import validator_args
2+
3+
4+
@validator_args
5+
def datatables_view_prioritize(not_empty):
6+
return {
7+
"resource_id": [
8+
not_empty,
9+
],
10+
}

0 commit comments

Comments
 (0)