Skip to content

Commit

Permalink
Add filter for experiments with surveys fixes mozilla#1279
Browse files Browse the repository at this point in the history
  • Loading branch information
uhlissuh committed May 13, 2019
1 parent a1c2429 commit 8ea5abc
Show file tree
Hide file tree
Showing 3 changed files with 35 additions and 12 deletions.
13 changes: 13 additions & 0 deletions app/experimenter/experiments/tests/test_views.py
Expand Up @@ -273,6 +273,19 @@ def test_filters_by_review_in_qa(self):

self.assertEqual(set(filter.qs), set([exp_1]))

def test_filters_experiments_with_surveys(self):
exp_1 = ExperimentFactory.create_with_variants(survey=True)
exp_2 = ExperimentFactory.create_with_variants(
survey=True, review_qa=False
)
ExperimentFactory.create_with_variants(survey=False)

filter = ExperimentFilterset(
{"surveys": "on"}, queryset=Experiment.objects.all()
)

self.assertEqual(set(filter.qs), set([exp_1, exp_2]))


class TestExperimentOrderingForm(TestCase):

Expand Down
14 changes: 13 additions & 1 deletion app/experimenter/experiments/views.py
Expand Up @@ -32,7 +32,7 @@

class ExperimentFiltersetForm(forms.ModelForm):
in_qa = forms.BooleanField(required=False)

surveys = forms.BooleanField(required=False)
search = forms.CharField(required=False)

class Meta:
Expand All @@ -46,6 +46,7 @@ class Meta:
"project",
"owner",
"in_qa",
"surveys",
"archived",
)

Expand Down Expand Up @@ -168,6 +169,12 @@ class ExperimentFilterset(filters.FilterSet):
method="in_qa_filter",
)

surveys = filters.BooleanFilter(
label="Show experiments with surveys",
widget=forms.CheckboxInput(),
method="surveys_filter",
)

class Meta:
model = Experiment
form = ExperimentFiltersetForm
Expand Down Expand Up @@ -238,6 +245,11 @@ def in_qa_filter(self, queryset, name, value):
else:
return queryset

def surveys_filter(self, queryset, name, value):
if value:
return queryset.filter(survey=True)
else:
return queryset

class ExperimentOrderingForm(forms.Form):
ORDERING_CHOICES = (
Expand Down
20 changes: 9 additions & 11 deletions app/experimenter/templates/experiments/list.html
Expand Up @@ -25,16 +25,20 @@ <h3 class="m-0">
{{ filter.form.firefox_version.value }}
{% endif %}

{% if filter.form.in_qa.value == "in_qa" %}
in QA
{% endif %}

{% if filter.form.project.value %}
{{ filter.form.get_project_display_value }}
{% endif %}

Experiment{{ paginator.count|pluralize:"s" }}

{% if filter.form.in_qa.value %}
in QA
{% endif %}

{% if filter.form.surveys.value %}
with surveys
{% endif %}

{% if filter.form.owner.value %}
by {{ filter.form.get_owner_display_value }}
{% endif %}
Expand Down Expand Up @@ -145,12 +149,7 @@ <h5>{{ experiment.population }}</h5>
</div>

{% for field in filter.form %}
{% if field.name == "archived" %}
<label>
{{ field }}
{{ field.label }}
</label>
{% elif field.name == "in_qa" %}
{% if field.name == "in_qa" or field.name == "surveys" or field.name == "archived" %}
<label>
{{ field }}
{{ field.label }}
Expand All @@ -160,7 +159,6 @@ <h5>{{ experiment.population }}</h5>
<div class="form-group">
{{ field }}
</div>

{% else %}
<div class="form-group">
{{ field }}
Expand Down

0 comments on commit 8ea5abc

Please sign in to comment.