def test_get_student_results(self):
     backend = haystack.load_backend(HAYSTACK_SEARCH_ENGINE_TEST)
     with self._whoosh_settings():
         with patch('haystack.backend', backend):
             periodbuilder = PeriodBuilder.quickadd_ducku_duck1010_active()
             group1 = periodbuilder.add_assignment('assignment1', long_name="Assignment One")\
                 .add_group().add_students(self.testuser).group
             group2 = periodbuilder.add_assignment('assignment2', long_name="Assignment Two")\
                 .add_group().add_students(self.testuser).group
             group_not_student = periodbuilder.add_assignment('assignment3', long_name="Assignment Three")\
                 .add_group().add_students(UserBuilder('nobody').user).group
             self._rebuild_searchindex()
             results = SearchHelper(self.testuser, 'Assignment').get_student_results()
             self.assertEquals(results.count(), 2)
             self.assertEquals(set(map(lambda r: r.object, results)), set([group1, group2]))
 def test_get_examiner_results(self):
     with self._whoosh_settings():
         with patch('haystack.backend', haystack.load_backend(HAYSTACK_SEARCH_ENGINE_TEST)):
             periodbuilder = PeriodBuilder.quickadd_ducku_duck1010_active()
             assignment1builder = periodbuilder.add_assignment('assignment1', long_name="Assignment One")
             assignment2builder = periodbuilder.add_assignment('assignment2', long_name="Assignment Two")
             group1 = assignment1builder.add_group().add_examiners(self.testuser).group
             group2 = assignment1builder.add_group().add_examiners(self.testuser).group
             group3 = assignment2builder.add_group().add_examiners(self.testuser).group
             assignment2builder.add_group().add_examiners(UserBuilder('nobody').user) # Should not math
             self._rebuild_searchindex()
             results = SearchHelper(self.testuser, 'Assignment').get_examiner_results()
             self.assertEquals(results.count(), 5)
             self.assertEquals(set(map(lambda r: r.object, results)),
                 set([group1, group2, group3,
                     assignment1builder.assignment, assignment2builder.assignment]))
示例#3
0
 def form_valid(self, form, context):
     search_helper = SearchHelper(self.request.user, form.cleaned_data['search'])
     student_results = self._prepare_search(search_helper.get_student_results())
     examiner_results = self._prepare_search(search_helper.get_examiner_results())
     admin_results = self._prepare_search(search_helper.get_admin_results())
     searchcategorycount = len([c for c in (student_results, examiner_results, admin_results) if c])
     try:
         columnsize = 12/searchcategorycount
     except ZeroDivisionError:
         columnsize = 12
     context.update({
         'student_results': student_results,
         'examiner_results': examiner_results,
         'admin_results': admin_results,
         'searchcategorycount': searchcategorycount,
         'columnsize': columnsize
     })