Преглед изворни кода

HUE-313. jobsub's list somewhat broken when searching with an owner name

Fix contributed by Bruce Mitchener.
bc Wong пре 15 година
родитељ
комит
82518730d3
2 измењених фајлова са 9 додато и 12 уклоњено
  1. 6 0
      apps/jobsub/src/jobsub/tests.py
  2. 3 12
      apps/jobsub/src/jobsub/views.py

+ 6 - 0
apps/jobsub/src/jobsub/tests.py

@@ -161,6 +161,12 @@ def test_job_design_cycle():
   assert_true('test2' in [ job_design.name for job_design in response.context['jobdesigns'] ])
   assert_false('newjob1' in [job_design.name for job_design in response.context['jobdesigns'] ])
 
+  # Combined filters
+  response = c.get('/jobsub/', dict(owner="est2", name="tes"))
+  assert_false('test1' in [ job_design.name for job_design in response.context['jobdesigns'] ])
+  assert_true('test2' in [ job_design.name for job_design in response.context['jobdesigns'] ])
+  assert_false('newjob1' in [job_design.name for job_design in response.context['jobdesigns'] ])
+
   response = c.get('/jobsub/', dict(name='doesnotexist'))
   assert_equal(0, len(response.context['jobdesigns']))
 

+ 3 - 12
apps/jobsub/src/jobsub/views.py

@@ -137,21 +137,12 @@ def list_designs(request, saved=None):
   """
   show_install_examples = request.user.is_superuser and not jobsub_setup.Command().has_been_setup()
   data = JobDesign.objects.order_by('-last_modified')
-  owner = request.GET.get("owner")
-  name = request.GET.get('name')
+  owner = request.GET.get("owner", "")
+  name = request.GET.get('name', "")
   if owner:
-    try:
-      user = User.objects.get(username=owner)
-      data = data.filter(owner=user)
-    except User.DoesNotExist:
-      data = []
-  else:
-    owner = ""
-
+    data = data.filter(owner__username__icontains=owner)
   if name:
     data = data.filter(name__icontains=name)
-  else:
-    name = ''
 
   newlinks = [ (type, urlresolvers.reverse("jobsub.new", kwargs=dict(type=type))) for type in interface.registry ]