Commit f4a0736c by Afzal Wali Committed by Afzal Wali Naushahi

Excluded hidden programs from typeahead endpoint

LEARNER-1124
parent 2a948ac2
......@@ -552,6 +552,20 @@ class TypeaheadSearchViewTests(DefaultPartnerMixin, TypeaheadSerializationMixin,
}
self.assertDictEqual(response_data, expected_response_data)
def test_typeahead_hidden_programs(self):
""" Verify that typeahead does not return hidden programs. """
title = "hiddenprogram"
program = ProgramFactory(title=title, hidden=False, status=ProgramStatus.Active, partner=self.partner)
ProgramFactory(title=program.title + 'hidden', hidden=True, status=ProgramStatus.Active, partner=self.partner)
response = self.get_response({'q': program.title})
self.assertEqual(response.status_code, 200)
response_data = response.json()
expected_response_data = {
'course_runs': [],
'programs': [self.serialize_program(program)]
}
self.assertDictEqual(response_data, expected_response_data)
def test_exception(self):
""" Verify the view raises an error if the 'q' query string parameter is not provided. """
response = self.get_response()
......
......@@ -153,7 +153,7 @@ class TypeaheadSearchView(PartnerMixin, APIView):
SQ(title_autocomplete=clean_query) |
SQ(authoring_organizations_autocomplete=clean_query)
)
programs = programs.filter(status=ProgramStatus.Active).filter(partner=partner.short_code)
programs = programs.filter(status=ProgramStatus.Active).exclude(hidden=True).filter(partner=partner.short_code)
programs = programs[:self.RESULT_COUNT]
return course_run_list, programs
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment