def get_all_responses(poll,location): term_range = [getattr(settings,'SCHOOL_TERM_START'),getattr(settings,'SCHOOL_TERM_END')] district_responses = get_district_responses(location, poll) # all_responses = poll.responses_by_category().filter(response__contact__reporting_location__in=location) term_responses = district_responses.filter(response__date__range = term_range) months= get_month_day_range(datetime.now(),depth=datetime.today().month) to_ret=[] for month in months: monthly_responses =district_responses.filter(response__date__range=month) to_ret.append((month[0].strftime("%B"),_extract_info(monthly_responses))) return _extract_info(term_responses).items(),to_ret
def detailed_violence_view(request, district=None): location = get_location_for_violence_view(district, request) date_range = get_month_day_range(datetime.now(),depth=datetime.today().month) girls_poll = Poll.objects.get(name='edtrac_violence_girls') boys_poll = Poll.objects.get(name='edtrac_violence_boys') reported_poll = Poll.objects.get(name='edtrac_violence_reported') gem_poll = Poll.objects.get(name='edtrac_gem_abuse') polls = [girls_poll, boys_poll, reported_poll, gem_poll] labels_for_graphs = ['Violence cases agaisnt girls', 'Violence cases against boys', 'Violence cases reported to Police', 'Violence reported by GEM'] for poll in polls: responses = get_responses_over_depth(poll, location, date_range) return render_to_response('education/admin/detail_violence.html', {'data_list':zip(responses, labels_for_graphs)}, RequestContext(request))
def test_returns_3_as_number_of_schools_that_responded_to_all_violence_questions_if_3_schools_respond(self): month_day_range = get_month_day_range(datetime.datetime.now(), depth=1)[0] schedule_script_now(self.head_teacher_group.name, slug=self.p3_violence_script.slug) check_progress(self.p3_violence_script) fake_incoming('6', self.emis_reporter1) fake_incoming('3', self.emis_reporter2) check_progress(self.p3_violence_script) fake_incoming('0', self.emis_reporter1) fake_incoming('1', self.emis_reporter2) check_progress(self.p3_violence_script) fake_incoming('0', self.emis_reporter1) fake_incoming('1', self.emis_reporter2) self.assertEquals(2, total_number_of_schools_that_responded_to_all_violence_questions([self.emis_reporter1.reporting_location,\ self.emis_reporter2.reporting_location],\ month_day_range))
def test_that_0_reporters_responded_to_all_the_three_questions_given_all_respond_to_only_two_questions(self): month_day_range = get_month_day_range(datetime.datetime.now(), depth=1)[0] schedule_script_now(self.head_teacher_group.name, slug=self.p3_violence_script.slug) check_progress(self.p3_violence_script) fake_incoming('6', self.emis_reporter1) fake_incoming('3', self.emis_reporter2) fake_incoming('0', self.emis_reporter3) check_progress(self.p3_violence_script) fake_incoming('1', self.emis_reporter2) fake_incoming('2', self.emis_reporter3) check_progress(self.p3_violence_script) fake_incoming('9', self.emis_reporter1) self.assertEquals(0, total_number_of_schools_that_responded_to_all_violence_questions([self.emis_reporter1.reporting_location,\ self.emis_reporter2.reporting_location,\ self.emis_reporter3.reporting_location],\ month_day_range))
def get_all_responses(poll, location): term_range = [ getattr(settings, 'SCHOOL_TERM_START'), getattr(settings, 'SCHOOL_TERM_END') ] district_responses = get_district_responses(location, poll) # all_responses = poll.responses_by_category().filter(response__contact__reporting_location__in=location) term_responses = district_responses.filter( response__date__range=term_range) months = get_month_day_range(datetime.now(), depth=datetime.today().month) to_ret = [] for month in months: monthly_responses = district_responses.filter( response__date__range=month) to_ret.append( (month[0].strftime("%B"), _extract_info(monthly_responses))) return _extract_info(term_responses).items(), to_ret
def test_returns_3_as_number_of_schools_that_responded_to_all_violence_questions_if_3_schools_respond( self): month_day_range = get_month_day_range(datetime.datetime.now(), depth=1)[0] schedule_script_now(self.head_teacher_group.name, slug=self.p3_violence_script.slug) check_progress(self.p3_violence_script) fake_incoming('6', self.emis_reporter1) fake_incoming('3', self.emis_reporter2) check_progress(self.p3_violence_script) fake_incoming('0', self.emis_reporter1) fake_incoming('1', self.emis_reporter2) check_progress(self.p3_violence_script) fake_incoming('0', self.emis_reporter1) fake_incoming('1', self.emis_reporter2) self.assertEquals(2, total_number_of_schools_that_responded_to_all_violence_questions([self.emis_reporter1.reporting_location,\ self.emis_reporter2.reporting_location],\ month_day_range))
def detailed_violence_view(request, district=None): location = get_location_for_violence_view(district, request) date_range = get_month_day_range(datetime.now(), depth=datetime.today().month) girls_poll = Poll.objects.get(name='edtrac_violence_girls') boys_poll = Poll.objects.get(name='edtrac_violence_boys') reported_poll = Poll.objects.get(name='edtrac_violence_reported') gem_poll = Poll.objects.get(name='edtrac_gem_abuse') polls = [girls_poll, boys_poll, reported_poll, gem_poll] labels_for_graphs = [ 'Violence cases agaisnt girls', 'Violence cases against boys', 'Violence cases reported to Police', 'Violence reported by GEM' ] for poll in polls: responses = get_responses_over_depth(poll, location, date_range) return render_to_response('education/admin/detail_violence.html', {'data_list': zip(responses, labels_for_graphs)}, RequestContext(request))
def test_that_0_reporters_responded_to_all_the_three_questions_given_all_respond_to_only_two_questions( self): month_day_range = get_month_day_range(datetime.datetime.now(), depth=1)[0] schedule_script_now(self.head_teacher_group.name, slug=self.p3_violence_script.slug) check_progress(self.p3_violence_script) fake_incoming('6', self.emis_reporter1) fake_incoming('3', self.emis_reporter2) fake_incoming('0', self.emis_reporter3) check_progress(self.p3_violence_script) fake_incoming('1', self.emis_reporter2) fake_incoming('2', self.emis_reporter3) check_progress(self.p3_violence_script) fake_incoming('9', self.emis_reporter1) self.assertEquals(0, total_number_of_schools_that_responded_to_all_violence_questions([self.emis_reporter1.reporting_location,\ self.emis_reporter2.reporting_location,\ self.emis_reporter3.reporting_location],\ month_day_range))
def get_date_range(from_date, to_date, depth=2): if from_date is None and to_date is None: return get_month_day_range(depth)
def test_get_month_day_range(self): month_date_range = get_month_day_range(datetime.date(2012, 02, 01)) self.assertEqual(month_date_range[0], datetime.datetime(2012, 02, 01, 8, 0)) self.assertEqual(month_date_range[1], datetime.datetime(2012, 02, 29, 19, 0))