diff --git a/gracedb/forms.py b/gracedb/forms.py index e0c4f3059bec4a45fb64c4cda651fb063c6fcafe..65a958dd2c205725f581defcbb5a141085050ea9 100644 --- a/gracedb/forms.py +++ b/gracedb/forms.py @@ -1,6 +1,6 @@ from django import forms -from models import Event, User, Group +from models import Event, User, Group, Label class CreateEventForm(forms.Form): groupChoices = [("","")]+[(g.name, g.name) for g in Group.objects.all()] @@ -12,11 +12,16 @@ class CreateEventForm(forms.Form): class EventSearchForm(forms.Form): groupChoices = [("","")]+[(g.name, g.name) for g in Group.objects.all()] + typeChoices= [("","")]+list(Event.ANALYSIS_TYPE_CHOICES) + submitterIds = Event.objects.values_list('submitter',flat=True).distinct() submitterList = User.objects.filter(id__in=submitterIds).order_by('name') submitterChoices = [("","")]+ [ (u.id, u.name) for u in submitterList] + labelChoices = [ ("hi%d"%n,"bye%d"%n) for n in [1,2,3]] + labelChoices = [ (label.id, label.name) for label in Label.objects.all() ] + graceidStart = forms.CharField(required=False) graceidEnd = forms.CharField(required=False) group = forms.ChoiceField(choices=groupChoices, required=False) @@ -25,3 +30,4 @@ class EventSearchForm(forms.Form): gpsEnd = forms.IntegerField(min_value=0, required=False, label="GPS End") submitter = forms.ChoiceField(choices=submitterChoices, required=False) + labels = forms.MultipleChoiceField(choices=labelChoices, required=False) diff --git a/gracedb/views.py b/gracedb/views.py index 88c50d52381c9847b3059025e334321ba8f0fe1a..27b6fac376544e602efd2749be7745a3e8d413b0 100644 --- a/gracedb/views.py +++ b/gracedb/views.py @@ -355,6 +355,7 @@ def search(request): submitter = form.cleaned_data['submitter'] groupname = form.cleaned_data['group'] typename = form.cleaned_data['type'] + labels = form.cleaned_data['labels'] gpsStart = form.cleaned_data['gpsStart'] gpsEnd = form.cleaned_data['gpsEnd'] @@ -399,6 +400,9 @@ def search(request): if typename: objects = objects.filter(analysisType=typename) + if labels: + objects = objects.filter(labels__in=labels) + return object_list(request, objects, extra_context={'title':"Query Results"}) diff --git a/templates/gracedb/query.html b/templates/gracedb/query.html index 6f859dab588048efc2c3e6457f4e7806d8ef7f31..71bbf971ea3f1e9489a543ba162e909cd645140b 100644 --- a/templates/gracedb/query.html +++ b/templates/gracedb/query.html @@ -1,7 +1,7 @@ {% extends "base.html" %} -{% block title %}Query{% endblock %} -{% block heading %}Query{% endblock %} +{% block title %}Search{% endblock %} +{% block heading %}Search{% endblock %} {% block pageid %}search{% endblock %} {% block content %} @@ -12,5 +12,5 @@ <tr><td></td><td><input type="Submit"/></td></tr> </table> </form> - + {% endblock %}