summaryrefslogtreecommitdiff
path: root/yaksh/models.py
diff options
context:
space:
mode:
authorprathamesh2018-02-13 12:48:19 +0530
committeradityacp2018-03-21 17:32:41 +0530
commitf06a5d2ffbb1a06320935841a4ba24720e651985 (patch)
tree8b72047eafb25abb2b4556ce4633c9b10375ef5b /yaksh/models.py
parent24bce890f07b6696ef1e910443a41a54840a6e90 (diff)
downloadonline_test-f06a5d2ffbb1a06320935841a4ba24720e651985.tar.gz
online_test-f06a5d2ffbb1a06320935841a4ba24720e651985.tar.bz2
online_test-f06a5d2ffbb1a06320935841a4ba24720e651985.zip
Change default grading system behaviour
Cannot edit default system. Code as per PEP8 standards. Updates grade after regrade or manual grading Field change from total marks to percentage Removed unused fields from grades app
Diffstat (limited to 'yaksh/models.py')
-rw-r--r--yaksh/models.py20
1 files changed, 14 insertions, 6 deletions
diff --git a/yaksh/models.py b/yaksh/models.py
index f76feed..1ecb1f8 100644
--- a/yaksh/models.py
+++ b/yaksh/models.py
@@ -738,13 +738,22 @@ class CourseStatus(models.Model):
course = models.ForeignKey(Course)
user = models.ForeignKey(User)
grade = models.CharField(max_length=255, null=True, blank=True)
- total_marks = models.FloatField(default=0.0)
+ percentage = models.FloatField(default=0.0)
+
+ def get_grade(self):
+ return self.grade
def set_grade(self):
- grade = self.course.grading_system.get_grade(self.total_marks)
- self.grade = grade
+ if self.is_course_complete():
+ self.calculate_percentage()
+ if self.course.grading_system is None:
+ grading_system = GradingSystem.objects.get(name='default')
+ else:
+ grading_system = self.course.grading_system
+ grade = grading_system.get_grade(self.percentage)
+ self.grade = grade
- def calculate_total_marks(self):
+ def calculate_percentage(self):
if self.is_course_complete():
quizzes = self.course.get_quizzes()
total_weightage = 0
@@ -755,8 +764,7 @@ class CourseStatus(models.Model):
quiz, self.user.id, self.course.id)
out_of = quiz.questionpaper_set.first().total_marks
sum += (marks/out_of)*quiz.weightage
- self.total_marks = (sum/total_weightage)*100
- self.set_grade()
+ self.percentage = (sum/total_weightage)*100
def is_course_complete(self):