def basic(request): "Calculates and displays some basic statistics." context = {} # Number of users num_users = stats.count_active_users() context["num_users"] = num_users # Number of questions answered num_responses = models.MultipleChoiceResponse.objects.count() context["num_responses"] = num_responses context["responses_per_user"] = num_responses / float(num_users) num_tests = models.TestSet.objects.exclude(end_time=None).count() context["num_tests"] = num_tests (context["mean_tbt"], context["std_tbt"]) = basic_stats(stats.get_time_between_tests()) context["log_start_time"] = models.TestSet.objects.order_by("start_time")[0].start_time context["log_end_time"] = models.TestSet.objects.order_by("-start_time")[0].start_time context["tests_per_user"] = num_tests / float(num_users) context["responses_per_test"] = num_responses / float(num_tests) all_responses = models.MultipleChoiceResponse.objects context["mean_score"] = all_responses.filter(option__is_correct=True).count() / float(all_responses.count()) test_stats = stats.get_test_size_stats() pretty_results = [(k, 100 * t, 100 * c) for (k, t, c) in test_stats] context["test_dist"] = pretty_results context["time_used_mean"], context["time_used_std"] = stats.get_mean_time_used() return render_to_response("analysis/basic.html", context, RequestContext(request))
def _build_time_graph(name): if name == "betweentests": data = stats.get_time_between_tests() hist_data = stats.log_histogram(data, start=1.0 / (24 * 60)) chart = charts.LineChart(hist_data, data_name="histogram") chart.add_data("raw", [(x,) for x in data]) return chart elif name == "sessions": data = stats.get_mean_score_over_sessions() approx_data = stats.approximate(data, n_points=12) chart = charts.MultiLineChart(approx_data, y_axis=(0.0, 1, 0.1), x_axis=(0, 1, 0.1), data_name="approximate") chart.add_data("raw", data) two_colours = charts.color_desc(2).split(",") three_colours = ",".join((two_colours[0], two_colours[1], two_colours[1])) chart["chco"] = three_colours return chart raise KeyError(name)
def basic(request): "Calculates and displays some basic statistics." context = {} # Number of users num_users = stats.count_active_users() context['num_users'] = num_users # Number of questions answered num_responses = models.MultipleChoiceResponse.objects.count() context['num_responses'] = num_responses context['responses_per_user'] = num_responses / float(num_users) num_tests = models.TestSet.objects.exclude(end_time=None).count() context['num_tests'] = num_tests ( context['mean_tbt'], context['std_tbt'], ) = basic_stats(stats.get_time_between_tests()) context['log_start_time'] = models.TestSet.objects.order_by( 'start_time')[0].start_time context['log_end_time'] = models.TestSet.objects.order_by( '-start_time', )[0].start_time context['tests_per_user'] = num_tests / float(num_users) context['responses_per_test'] = num_responses / float(num_tests) all_responses = models.MultipleChoiceResponse.objects context['mean_score'] = ( all_responses.filter(option__is_correct=True).count() / float(all_responses.count())) test_stats = stats.get_test_size_stats() pretty_results = [(k, 100 * t, 100 * c) for (k, t, c) in test_stats] context['test_dist'] = pretty_results context['time_used_mean'], context['time_used_std'] = \ stats.get_mean_time_used() return render_to_response("analysis/basic.html", context, RequestContext(request))
def _build_time_graph(name): if name == 'betweentests': data = stats.get_time_between_tests() hist_data = stats.log_histogram(data, start=1.0 / (24 * 60)) chart = charts.LineChart(hist_data, data_name='histogram') chart.add_data('raw', [(x, ) for x in data]) return chart elif name == 'sessions': data = stats.get_mean_score_over_sessions() approx_data = stats.approximate(data, n_points=12) chart = charts.MultiLineChart(approx_data, y_axis=(0.0, 1, 0.1), x_axis=(0, 1, 0.1), data_name='approximate') chart.add_data('raw', data) two_colours = charts.color_desc(2).split(',') three_colours = ','.join( (two_colours[0], two_colours[1], two_colours[1])) chart['chco'] = three_colours return chart raise KeyError(name)