コード例 #1
0
	def test_grade(self):
		grade = get_grade("_Test Grading Scale", 80)
		self.assertEquals("A", grade)

		grade = get_grade("_Test Grading Scale", 70)
		self.assertEquals("B", grade)
		
コード例 #2
0
ファイル: assessment_result.py プロジェクト: giangdn/teama
 def validate_grade(self):
     self.total_score = 0.0
     for d in self.details:
         d.grade = get_grade(self.grading_scale,
                             (flt(d.score) / d.maximum_score) * 100)
         self.total_score += d.score
     self.grade = get_grade(self.grading_scale,
                            (self.total_score / self.maximum_score) * 100)
コード例 #3
0
	def add_score_and_recalculate_grade(result, assessment_group, assessment_criteria):
		formatted_assessment_result[result.student][result.course][assessment_group]\
			[assessment_criteria]["maximum_score"] += result.maximum_score
		formatted_assessment_result[result.student][result.course][assessment_group]\
			[assessment_criteria]["score"] += result.score
		tmp_grade = get_grade(result.grading_scale, ((formatted_assessment_result[result.student][result.course]
			[assessment_group][assessment_criteria]["score"])/(formatted_assessment_result[result.student]
			[result.course][assessment_group][assessment_criteria]["maximum_score"]))*100)
		formatted_assessment_result[result.student][result.course][assessment_group]\
			[assessment_criteria]["grade"] = tmp_grade
コード例 #4
0
 def add_score_and_recalculate_grade(result, assessment_group,
                                     assessment_criteria):
     formatted_assessment_result[result.student][result.course][assessment_group]\
      [assessment_criteria]["maximum_score"] += result.maximum_score
     formatted_assessment_result[result.student][result.course][assessment_group]\
      [assessment_criteria]["score"] += result.score
     tmp_grade = get_grade(
         result.grading_scale,
         ((formatted_assessment_result[result.student][result.course]
           [assessment_group][assessment_criteria]["score"]) /
          (formatted_assessment_result[result.student][result.course]
           [assessment_group][assessment_criteria]["maximum_score"])) * 100)
     formatted_assessment_result[result.student][result.course][assessment_group]\
      [assessment_criteria]["grade"] = tmp_grade
コード例 #5
0
    def get_result_map():
        result_dict = defaultdict(dict)
        kounter = defaultdict(dict)
        assessment_result = frappe.db.sql(
            '''select ar.student, ard.assessment_criteria, ard.grade, ard.score
			from `tabAssessment Result` ar, `tabAssessment Result Detail` ard
			where ar.assessment_plan in (%s) and ar.name=ard.parent and ar.docstatus=1
			order by ard.assessment_criteria''' %
            ', '.join(['%s'] * len(assessment_plan_list)),
            tuple(assessment_plan_list),
            as_dict=1)

        for result in assessment_result:
            if "total_score" in result_dict[result.student]:
                total_score = result_dict[
                    result.student]["total_score"] + result.score
            else:
                total_score = result.score
            total = get_grade(grading_scale,
                              (total_score / total_maximum_score) * 100)

            if result.grade in kounter[result.assessment_criteria]:
                kounter[result.assessment_criteria][result.grade] += 1
            else:
                kounter[result.assessment_criteria].update({result.grade: 1})

            if "Total" not in kounter:
                kounter["Total"] = {}

            if "total" in result_dict[result.student]:
                prev_grade = result_dict[result.student]["total"]
                prev_grade_count = kounter["Total"].get(prev_grade) - 1
                kounter["Total"].update({prev_grade: prev_grade_count})
            latest_grade_count = kounter["Total"].get(
                total) + 1 if kounter["Total"].get(total) else 1
            kounter["Total"].update({total: latest_grade_count})

            result_dict[result.student].update({
                frappe.scrub(result.assessment_criteria):
                result.grade,
                frappe.scrub(result.assessment_criteria) + "_score":
                result.score,
                "total_score":
                total_score,
                "total":
                total
            })

        return result_dict, kounter
コード例 #6
0
	def get_result_map():
		result_dict = defaultdict(dict)
		kounter = defaultdict(dict)
		assessment_result = frappe.db.sql('''select ar.student, ard.assessment_criteria, ard.grade, ard.score
			from `tabAssessment Result` ar, `tabAssessment Result Detail` ard
			where ar.assessment_plan in (%s) and ar.name=ard.parent and ar.docstatus=1
			order by ard.assessment_criteria''' %', '.join(['%s']*len(assessment_plan_list)),
			tuple(assessment_plan_list), as_dict=1)

		for result in assessment_result:
			if "total_score" in result_dict[result.student]:
				total_score = result_dict[result.student]["total_score"] + result.score
			else:
				total_score = result.score
			total = get_grade(grading_scale, (total_score/total_maximum_score)*100)

			if result.grade in kounter[result.assessment_criteria]:
				kounter[result.assessment_criteria][result.grade] += 1
			else:
				kounter[result.assessment_criteria].update({result.grade: 1})

			if "Total" not in kounter:
				kounter["Total"] = {}

			if "total" in result_dict[result.student]:
				prev_grade = result_dict[result.student]["total"]
				prev_grade_count = kounter["Total"].get(prev_grade) - 1
				kounter["Total"].update({prev_grade: prev_grade_count})
			latest_grade_count = kounter["Total"].get(total)+1 if kounter["Total"].get(total) else 1
			kounter["Total"].update({total: latest_grade_count})

			result_dict[result.student].update({
					frappe.scrub(result.assessment_criteria): result.grade,
					frappe.scrub(result.assessment_criteria)+"_score": result.score,
					"total_score": total_score,
					"total": total
				})

		return result_dict, kounter
コード例 #7
0
	def validate_grade(self):
		self.total_score = 0.0
		for d in self.details:
			d.grade = get_grade(self.grading_scale, (flt(d.score)/d.maximum_score)*100)
			self.total_score += d.score
		self.grade = get_grade(self.grading_scale, (self.total_score/self.maximum_score)*100)