def summary(self): if getattr(self, '_summary', None) is None: answers = [s.answers for s in self.submissions.all()] if answers: df = pandas.DataFrame(answers) self._summary = analysis.count_submissions(df) else: self._summary = {'male': 0, 'female': 0, 'total': 0} return self._summary
def summary(self): if getattr(self, '_summary', None) is None: form, responses = self.get_survey() if responses: df = pandas.DataFrame(responses) self._summary = analysis.count_submissions(df) else: self._summary = {'male': 0, 'female': 0, 'total': 0} return self._summary
def site_result(request, site_slug, result_id): result_set = get_object_or_404( CycleResultSet, id=result_id, site__slug__exact=site_slug ) site_responses = [s.answers for s in result_set.submissions.all()] if site_responses: df = pandas.DataFrame(site_responses) form = result_set.survey.form site_totals = analysis.count_submissions(df) site_results = analysis.count_options(df, form['children']) site_results = analysis.calc_q_percents(site_results) prev_result_set = result_set.get_previous() if prev_result_set: prev_responses = [s.answers for s in prev_result_set.submissions.all()] if prev_responses: site_totals = analysis.count_submissions( pandas.DataFrame(site_responses + prev_responses)) prev_df = pandas.DataFrame(prev_responses) prev_form = prev_result_set.survey.form prev_results = analysis.count_options(prev_df, prev_form['children']) prev_results = analysis.calc_q_percents(prev_results) else: prev_results = None else: prev_results = None analysis.combine_curr_hist(site_results, prev_results) else: site_totals = {'male': 0, 'female': 0, 'total': 0} site_results = None return render(request, 'site_result_detail.html', { 'active_tab': 'sites', 'result_set': result_set, 'results': { 'questions_dict': site_results, 'totals': site_totals, } })