From 22b0cc0ea074ca35ca54a6335c349b86d1dd3a90 Mon Sep 17 00:00:00 2001
From: "J.-S. Caux" <J.S.Caux@uva.nl>
Date: Sat, 29 Sep 2018 15:44:42 +0200
Subject: [PATCH] Simplify urls for profiles list using GET parameters

---
 profiles/templates/profiles/profile_list.html |  4 ++--
 profiles/urls.py                              | 10 ----------
 profiles/views.py                             |  8 ++++----
 3 files changed, 6 insertions(+), 16 deletions(-)

diff --git a/profiles/templates/profiles/profile_list.html b/profiles/templates/profiles/profile_list.html
index 3f632260a..ae62b5c60 100644
--- a/profiles/templates/profiles/profile_list.html
+++ b/profiles/templates/profiles/profile_list.html
@@ -24,9 +24,9 @@
 	  <div class="dropdown">
 	    <button class="btn btn-primary dropdown-toggle" type="button" id="dropdownMenuButton{{ discipline.0|cut:" " }}" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">{{ discipline.0 }}</button>
 	    <div class="dropdown-menu" aria-labelledby="dropdownMenuButton{{ discipline.0|cut:" " }}">
-	      <a class="dropdown-item" href="{% url 'profiles:profiles' discipline=discipline.0|cut:' ' %}">View all in {{ discipline.0 }}</a>
+	      <a class="dropdown-item" href="?discipline={{ discipline.0|cut:' '}}">View all in {{ discipline.0 }}</a>
 	      {% for area in discipline.1 %}
-	      <a class="dropdown-item" href="{% url 'profiles:profiles' discipline=discipline.0|cut:' ' expertise=area.0 %}">{{ area.0 }}</a>
+	      <a class="dropdown-item" href="?discipline={{ discipline.0|cut:' '}}&expertise={{ area.0}}">{{ area.0 }}</a>
 	      {% endfor %}
 	    </div>
 	  </div>
diff --git a/profiles/urls.py b/profiles/urls.py
index 047dcb44d..b3bb01de2 100644
--- a/profiles/urls.py
+++ b/profiles/urls.py
@@ -22,16 +22,6 @@ urlpatterns = [
         views.ProfileDeleteView.as_view(),
         name='profile_delete'
     ),
-    url(
-        r'^(?P<discipline>[a-zA-Z]+)/(?P<expertise>[a-zA-Z:]+)/$',
-        views.ProfileListView.as_view(),
-        name='profiles'
-    ),
-    url(
-        r'^(?P<discipline>[a-zA-Z]+)/$',
-        views.ProfileListView.as_view(),
-        name='profiles'
-    ),
     url(
         r'^$',
         views.ProfileListView.as_view(),
diff --git a/profiles/views.py b/profiles/views.py
index 4b0cd5c70..acffe4e3e 100644
--- a/profiles/views.py
+++ b/profiles/views.py
@@ -81,10 +81,10 @@ class ProfileListView(PermissionsMixin, ListView):
         Return a queryset of Profiles using optional GET data.
         """
         queryset = Profile.objects.all()
-        if self.kwargs.get('discipline', None):
-            queryset = queryset.filter(discipline=self.kwargs['discipline'].lower())
-            if self.kwargs.get('expertise', None):
-                queryset = queryset.filter(expertises__contains=[self.kwargs['expertise']])
+        if self.request.GET.get('discipline', None):
+            queryset = queryset.filter(discipline=self.request.GET['discipline'].lower())
+            if self.request.GET.get('expertise', None):
+                queryset = queryset.filter(expertises__contains=[self.request.GET['expertise']])
         return queryset
 
     def get_context_data(self, **kwargs):
-- 
GitLab