Skip to content
Snippets Groups Projects
Commit 9740a47d authored by chbaeh's avatar chbaeh
Browse files

ODPSH-288: fix search for open end datasets

parent 201fadf8
No related branches found
No related tags found
No related merge requests found
...@@ -33,8 +33,6 @@ def odsh_openness_score_dataset_html(dataset): ...@@ -33,8 +33,6 @@ def odsh_openness_score_dataset_html(dataset):
qa = ast.literal_eval(r_qa) qa = ast.literal_eval(r_qa)
else: else:
qa = r_qa qa = r_qa
print('QA')
print(qa)
resource_score = qa.get('openness_score') resource_score = qa.get('openness_score')
if resource_score > score: if resource_score > score:
score = resource_score score = resource_score
......
...@@ -370,8 +370,11 @@ class OdshPlugin(plugins.SingletonPlugin, DefaultTranslation, DefaultDatasetForm ...@@ -370,8 +370,11 @@ class OdshPlugin(plugins.SingletonPlugin, DefaultTranslation, DefaultDatasetForm
# Add the custom parameters to Solr's facet queries # Add the custom parameters to Solr's facet queries
# use several daterange queries agains temporal_start and temporal_end field
# TODO: use field of type date_range in solr index instead
def before_search(self, search_params): def before_search(self, search_params):
extras = search_params.get('extras') extras = search_params.get('extras')
if not extras: if not extras:
# There are no extras in the search params, so do nothing. # There are no extras in the search params, so do nothing.
...@@ -419,10 +422,18 @@ class OdshPlugin(plugins.SingletonPlugin, DefaultTranslation, DefaultDatasetForm ...@@ -419,10 +422,18 @@ class OdshPlugin(plugins.SingletonPlugin, DefaultTranslation, DefaultDatasetForm
enclosing_query = ' OR ({enclosing_query_start} AND {enclosing_query_end})'.format( enclosing_query = ' OR ({enclosing_query_start} AND {enclosing_query_end})'.format(
enclosing_query_start=enclosing_query_start, enclosing_query_end=enclosing_query_end) enclosing_query_start=enclosing_query_start, enclosing_query_end=enclosing_query_end)
fq = '{fq} ({start_query} OR {end_query} {enclosing_query})'.format(
fq=fq, start_query=start_query, end_query=end_query, enclosing_query=enclosing_query)
print(fq) if end_date is '*':
open_end_query = '(*:* NOT extras_temporal_end:[* TO *])'
else:
open_end_query = '((*:* NOT extras_temporal_end:[* TO *]) AND extras_temporal_start:[* TO {end_date}])'.format(
end_date=end_date)
fq = '{fq} ({start_query} OR {end_query} {enclosing_query} OR {open_end_query})'.format(
fq=fq, start_query=start_query, end_query=end_query, enclosing_query=enclosing_query, open_end_query=open_end_query)
# fq = '{fq} ({start_query}'.format(
# fq=fq, start_query=start_query, end_query=end_query, enclosing_query=enclosing_query)
# return modified facet queries # return modified facet queries
search_params['fq'] = fq search_params['fq'] = fq
......
...@@ -162,6 +162,27 @@ class TestSearch(helpers.FunctionalTestBase): ...@@ -162,6 +162,27 @@ class TestSearch(helpers.FunctionalTestBase):
self._assert_datasets_in_response([datasetA], response) self._assert_datasets_in_response([datasetA], response)
self._assert_datasets_not_in_response([datasetB, datasetC], response) self._assert_datasets_not_in_response([datasetB, datasetC], response)
@odsh_test()
def test_dataset_without_end(self):
# arrange
datasetA = self._create_dataset('dataseta', '1960-01-01', None,'mytitle')
# act
response1 = self._perform_text_and_date_search('mytitle', '1950-01-01', '1950-02-01')
response2 = self._perform_text_and_date_search('mytitle', '1950-01-01', '1960-02-01')
response3 = self._perform_text_and_date_search('mytitle', '1950-01-01', None)
response4 = self._perform_text_and_date_search('mytitle', None, '1970-01-01')
response5 = self._perform_text_and_date_search('mytitle', '1970-01-01', '1980-02-01')
response6 = self._perform_text_and_date_search('mytitle', None, '1950-01-01')
# assert
self._assert_datasets_not_in_response([datasetA], response1)
self._assert_datasets_in_response([datasetA], response2)
self._assert_datasets_in_response([datasetA], response3)
self._assert_datasets_in_response([datasetA], response4)
self._assert_datasets_in_response([datasetA], response5)
self._assert_datasets_not_in_response([datasetA], response6)
def _assert_datasets_in_response(self, datasets, response): def _assert_datasets_in_response(self, datasets, response):
for dataset in datasets: for dataset in datasets:
assert dataset['name'] in response assert dataset['name'] in response
......
...@@ -30,7 +30,7 @@ class TestUpload(helpers.FunctionalTestBase): ...@@ -30,7 +30,7 @@ class TestUpload(helpers.FunctionalTestBase):
response.mustcontain('Title: Missing value') response.mustcontain('Title: Missing value')
response.mustcontain('Description: Missing value') response.mustcontain('Description: Missing value')
response.mustcontain('odsh_spatial_uri_error_label') response.mustcontain('odsh_spatial_uri_error_label')
response.mustcontain('odsh_temporal_error_label') response.mustcontain('odsh_temporal_start_error_label')
@odsh_test() @odsh_test()
def test_upload_empty_wrong_spatial_uri(self): def test_upload_empty_wrong_spatial_uri(self):
...@@ -67,7 +67,7 @@ class TestUpload(helpers.FunctionalTestBase): ...@@ -67,7 +67,7 @@ class TestUpload(helpers.FunctionalTestBase):
response7 = self._submit_form(form) response7 = self._submit_form(form)
# assert # assert
response1.mustcontain('odsh_temporal_error_label') response1.mustcontain('odsh_temporal_start_not_date_error_label')
response2.mustcontain('odsh_temporal_error_label') response2.mustcontain('odsh_temporal_error_label')
response3.mustcontain('odsh_temporal_end_not_date_error_label') response3.mustcontain('odsh_temporal_end_not_date_error_label')
response4.mustcontain('odsh_temporal_start_not_date_error_label') response4.mustcontain('odsh_temporal_start_not_date_error_label')
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment