From 59422d30f007acdb876b61129acef3ff3f8697e3 Mon Sep 17 00:00:00 2001
From: Piotr Gawron <piotr.gawron@uni.lu>
Date: Tue, 5 Jun 2018 14:33:00 +0200
Subject: [PATCH] api for obtaing information about vaoucher partners

---
 smash/web/api_urls.py         |  4 ++++
 smash/web/api_views/worker.py | 24 ++++++++++++++++++++++++
 2 files changed, 28 insertions(+)

diff --git a/smash/web/api_urls.py b/smash/web/api_urls.py
index 67379b2e..372aa370 100644
--- a/smash/web/api_urls.py
+++ b/smash/web/api_urls.py
@@ -54,6 +54,10 @@ urlpatterns = [
     url(r'^specializations$', worker.specializations, name='web.api.specializations'),
     url(r'^units$', worker.units, name='web.api.units'),
 
+    # workers
+    url(r'^workers/(?P<worker_role>[A-z]+)/$', worker.get_workers, name='web.api.workers'),
+
+    # daily planning data
     url(r'^daily_planning/workers/$', worker.workers_for_daily_planning, name='web.api.workers.daily_planning'),
     url(r'^daily_planning/workers/availabilities$', worker.availabilities,
         name='web.api.workers.daily_planning.availabilities$'),
diff --git a/smash/web/api_views/worker.py b/smash/web/api_views/worker.py
index bdf24954..881f1528 100644
--- a/smash/web/api_views/worker.py
+++ b/smash/web/api_views/worker.py
@@ -61,3 +61,27 @@ def availabilities(request):
     return JsonResponse({
         "availabilities": result,
     })
+
+
+def get_workers(request, worker_role):
+    all_workers = Worker.get_workers_by_worker_type(worker_role).distinct()
+    count = all_workers.count()
+
+    data = []
+    for voucher_type in all_workers:
+        data.append(serialize_worker(voucher_type))
+
+    return JsonResponse({
+        "recordsTotal": count,
+        "recordsFiltered": count,
+        "data": data,
+    })
+
+
+def serialize_worker(worker):
+    result = {
+        "first_name": worker.first_name,
+        "last_name": worker.last_name,
+        "id": worker.id,
+    }
+    return result
-- 
GitLab