diff --git a/atdb/requirements/base.txt b/atdb/requirements/base.txt index c52d7065c7e389f671bdbd370b3da06d3a492a40..ac71b471c94cb22ea3a47e7a4ae72571378190e4 100644 --- a/atdb/requirements/base.txt +++ b/atdb/requirements/base.txt @@ -1,7 +1,7 @@ Django==3.1.4 djangorestframework==3.12.2 django-filter==2.3.0 -psycopg2==2.8.6 +psycopg2-binary==2.9.3 django-cors-headers==3.6.0 django-extensions==3.1.0 django-bootstrap-pagination==1.7.0 diff --git a/atdb/taskdatabase/urls.py b/atdb/taskdatabase/urls.py index df6c25f048cace4621a808efa6e70adec0b989d5..e669d7290bd8d656d27c5489250ea1f09df315b4 100644 --- a/atdb/taskdatabase/urls.py +++ b/atdb/taskdatabase/urls.py @@ -61,6 +61,9 @@ urlpatterns = [ path('tasks/get_size/', views.GetSizeView.as_view(), name='get-size-view'), # /atdb/get_min_start_and_max_end_time?sas_id=65005 path('get_min_start_and_max_end_time/', views.GetMinMaxTimeView.as_view(), name='get-min-start-and-max-end-time-view'), + # /atdb/get_unique_values_for_key/<aggregation_key> + path('get_unique_values_for_key/<str:aggregation_key>', views.GetUniqueValuesForKey.as_view(), + name='get-unique-values-for-key-view'), # --- controller resources --- path('tasks/<int:pk>/setstatus/<new_status>/<page>', views.TaskSetStatus, name='task-setstatus-view'), diff --git a/atdb/taskdatabase/views.py b/atdb/taskdatabase/views.py index a3542fd6662d4a10495f919d8e2f5fa99c711be1..f71b1d0f09ec58ffeb4b91703fc5d7f1f445177e 100644 --- a/atdb/taskdatabase/views.py +++ b/atdb/taskdatabase/views.py @@ -777,6 +777,21 @@ class GetMinMaxTimeView(generics.ListAPIView): 'start_time': start_time, 'end_time': end_time, }) + except Exception as error: + return Response({ + 'error': str(error) + }) + +# /atdb/get_unique_values_for_key/{key} +class GetUniqueValuesForKey(generics.ListAPIView): + queryset = Task.objects.all() + + # override list and generate a custom response + def list(self, request, aggregation_key, **kwargs): + try: + print(aggregation_key) + return Response({'aggregation_key': aggregation_key + }) except Exception as error: return Response({ 'error': str(error)