From 249b61cb30a3b1e6aad4ac518cf2bf0f44fa1b77 Mon Sep 17 00:00:00 2001
From: Mario Raciti <mario.raciti@inaf.it>
Date: Tue, 27 Apr 2021 18:11:18 +0200
Subject: [PATCH] TMSS-736: Add remaining filtering and ordering info

---
 .../src/tmss/tmssapp/viewsets/metadata.py        | 16 +++++++++-------
 1 file changed, 9 insertions(+), 7 deletions(-)

diff --git a/SAS/TMSS/backend/src/tmss/tmssapp/viewsets/metadata.py b/SAS/TMSS/backend/src/tmss/tmssapp/viewsets/metadata.py
index d781ab26ab0..ab7530f4260 100644
--- a/SAS/TMSS/backend/src/tmss/tmssapp/viewsets/metadata.py
+++ b/SAS/TMSS/backend/src/tmss/tmssapp/viewsets/metadata.py
@@ -16,16 +16,19 @@ class LOFARDefaultMetadata(SimpleMetadata):
         metadata['filters'] = OrderedDict()
 
         if hasattr(view, 'filter_fields'):
+            all_fields = view.get_serializer().Meta.model._meta.fields
+            filters = OrderedDict()
             if view.filter_fields == '__all__':
                 # Iterate over all fields
-                fields = view.get_serializer().Meta.model._meta.fields
-                filters = OrderedDict()
-                for f in fields:
+                for f in all_fields:
                     filters[f.name] = {"type": str(f.__class__.__name__), "lookup_types": ["exact"]}
                 metadata['filters'] = {**metadata['filters'], **filters}
             else:
-                # TODO: Handle field per field.
-                pass
+                for f in view.filter_fields:
+                    for af in all_fields:
+                        if f == af.name:
+                            filters[af.name] = {"type": str(af.__class__.__name__), "lookup_types": ["exact"]}
+                metadata['filters'] = {**metadata['filters'], **filters}
 
         if hasattr(view, 'filter_class'):
             # Add filters
@@ -75,7 +78,6 @@ class LOFARDefaultMetadata(SimpleMetadata):
                 fields = view.get_serializer().Meta.model._meta.fields
                 metadata['ordering'] = [f.name for f in fields]
             else:
-                # TODO: Handle field per field.
-                pass
+                metadata['ordering'] = [f for f in view.ordering_fields]
 
         return metadata
-- 
GitLab