Skip to content
Snippets Groups Projects
Commit cf80f420 authored by Xiao Ju's avatar Xiao Ju
Browse files

add lookup by key/value

parent ff7f1359
No related branches found
No related tags found
1 merge request!66Resolve "Add possibility of querying annotations of datafiles"
...@@ -16,6 +16,7 @@ from .views.secure.datafile import (DataFileAnnotateView, ...@@ -16,6 +16,7 @@ from .views.secure.datafile import (DataFileAnnotateView,
DataFileBatchRemoveAnnotation, DataFileBatchRemoveAnnotation,
DataFileDeleteView, DataFileDetailsView, DataFileDeleteView, DataFileDetailsView,
DataFileDownloadView, DataFileDownloadView,
DataFileLookupJSONListView,
DataFileHasKeyJSONListView, DataFileHasKeyJSONListView,
DataFileHasAnnotJSONListView, DataFileHasAnnotJSONListView,
DataFileMetadataJSONView, DataFileMetadataJSONView,
...@@ -73,6 +74,8 @@ urlpatterns = [ ...@@ -73,6 +74,8 @@ urlpatterns = [
# Files # Files
path('secure/datafiles/', DataFilesView.as_view(), name='user.datafiles'), path('secure/datafiles/', DataFilesView.as_view(), name='user.datafiles'),
path('secure/datafiles/list/json/', DataFilesJSONListView.as_view(), name='user.datafiles-json-list'), path('secure/datafiles/list/json/', DataFilesJSONListView.as_view(), name='user.datafiles-json-list'),
path('secure/datafiles/list/json/lookup/<str:key>/<str:value>/', DataFileLookupJSONListView.as_view(),name='user.datafiles-json-list'),
path('secure/datafiles/list/json/lookup/<str:key>/<str:value>/<str:dataset>', DataFileLookupJSONListView.as_view(),name='user.datafiles-json-list'),
path('secure/datafiles/list/json/lookup-key/<str:key>/', DataFileHasKeyJSONListView.as_view(), name='user.datafiles-json-list'), path('secure/datafiles/list/json/lookup-key/<str:key>/', DataFileHasKeyJSONListView.as_view(), name='user.datafiles-json-list'),
path('secure/datafiles/list/json/lookup-key/<str:key>/<str:dataset>/', DataFileHasKeyJSONListView.as_view(), name='user.datafiles-json-list'), path('secure/datafiles/list/json/lookup-key/<str:key>/<str:dataset>/', DataFileHasKeyJSONListView.as_view(), name='user.datafiles-json-list'),
path('secure/datafiles/list/json/lookup-value/<str:value>/', DataFileHasAnnotJSONListView.as_view(), name='user.datafiles-json-list'), path('secure/datafiles/list/json/lookup-value/<str:value>/', DataFileHasAnnotJSONListView.as_view(), name='user.datafiles-json-list'),
......
...@@ -493,6 +493,20 @@ class DataFileDeleteView(LoginRequiredMixin, DeleteViewMixin, DeleteView): ...@@ -493,6 +493,20 @@ class DataFileDeleteView(LoginRequiredMixin, DeleteViewMixin, DeleteView):
class DataFileLookupJSONListView(LoginRequiredMixin, JSONListView): class DataFileLookupJSONListView(LoginRequiredMixin, JSONListView):
model = DataFile model = DataFile
def get_queryset(self):
qs = DataFile.objects.accessible_to_profile(self.request.user.profile)
key = self.kwargs.get('key', None)
value = self.kwargs.get('value', None)
qs = qs.filter(annotations__contains={key: value})
dataset = self.kwargs.get('dataset', None)
logger.debug(dataset)
if dataset:
qs = qs.filter(annotations__contains={key: value})
return qs.distinct()
def get_rows(self): def get_rows(self):
rows = [] rows = []
...@@ -548,4 +562,4 @@ class DataFileHasAnnotJSONListView(DataFileLookupJSONListView): ...@@ -548,4 +562,4 @@ class DataFileHasAnnotJSONListView(DataFileLookupJSONListView):
) )
return qs.distinct() return qs.distinct()
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment