Skip to content
Snippets Groups Projects

Resolve "Add possibility of querying annotations of datafiles"

Merged Xiao Ju requested to merge 118-add-possibility-of-querying-annotations-of-datafiles into master
2 files
+ 43
18
Compare changes
  • Side-by-side
  • Inline
Files
2
@@ -490,24 +490,9 @@ class DataFileDeleteView(LoginRequiredMixin, DeleteViewMixin, DeleteView):
return HttpResponseRedirect(self.get_success_url())
class DataFileHasKeyJSONListView(LoginRequiredMixin, JSONListView):
class DataFileLookupJSONListView(LoginRequiredMixin, JSONListView):
model = DataFile
def get_queryset(self):
qs = DataFile.objects.accessible_to_profile(self.request.user.profile)
key = self.kwargs.get('key', None)
qs = qs.filter(annotations__has_key=key)
dataset = self.kwargs.get('dataset', None)
logger.debug(dataset)
if dataset and re.match('DS[A-F0-9]{8}', dataset):
qs = qs.filter(
datasets__iric_data_id=dataset
)
return qs.distinct()
def get_rows(self):
rows = []
@@ -527,3 +512,40 @@ class DataFileHasKeyJSONListView(LoginRequiredMixin, JSONListView):
rows.append(row)
return rows
class DataFileHasKeyJSONListView(DataFileLookupJSONListView):
def get_queryset(self):
qs = DataFile.objects.accessible_to_profile(self.request.user.profile)
key = self.kwargs.get('key', None)
qs = qs.filter(annotations__has_key=key)
dataset = self.kwargs.get('dataset', None)
logger.debug(dataset)
if dataset:
qs = qs.filter(
datasets__iric_data_id=dataset
)
return qs.distinct()
class DataFileHasAnnotJSONListView(DataFileLookupJSONListView):
def get_queryset(self):
qs = DataFile.objects.accessible_to_profile(self.request.user.profile)
value = self.kwargs.get('value', None)
qs = qs.filter(annotations__values__icontains=value)
dataset = self.kwargs.get('dataset', None)
logger.debug(dataset)
if dataset:
qs = qs.filter(
datasets__iric_data_id=dataset
)
return qs.distinct()
\ No newline at end of file
Loading