def get_one_subject_report(self, the_subject, parent, params):
s_name = the_subject.name
s_name_en = klx.klx_subject_name(s_name)
url = klx.KLX_STUDY_URL_FMT.format(subject=s_name_en)
ans_data = {'subject_id': the_subject.id}
if settings.TESTING:
return JsonResponse(ans_data)
# query the last order
last_order = models.Order.objects.filter(
parent=parent, status=models.Order.PAID,
subject=the_subject).order_by('-created_at').first()
if not last_order:
return HttpResponse(status=404) # Have not joined the course
ans_data['grade_id'] = last_order.grade_id
# ???????????
ans_data.update(self._get_total_nums(url, params))
# ?????????????????
ans_data.update(self._get_exercise_total_nums(url, params))
# ???????
ans_data['error_rates'] = self._get_error_rates(url, params)
# ?????????
ans_data['month_trend'] = self._get_month_trend(url, params)
# ??????/????????
ans_data['knowledges_accuracy'] = self._get_knowledges_accuracy(
url, params)
# ??????
ans_data['abilities'] = self._get_abilities(
url, params, klx.KLX_MATH_ABILITY_KEYS)
# ?????(?????????????????????)
ans_data['score_analyses'] = self._get_score_analyses(url, params)
settings.DEBUG and logger.debug(json.dumps(ans_data))
return JsonResponse(ans_data)
评论列表
文章目录