diff options
author | prathamesh | 2018-02-08 14:29:38 +0530 |
---|---|---|
committer | adityacp | 2018-03-21 17:32:41 +0530 |
commit | b3f5721f3cf4225902000f2f76e5138135383792 (patch) | |
tree | 21ab4b9c9d4ad5d900c1de15f7254faea689094b /grades/migrations/default_grading_system.py | |
parent | 06abd01fd28eb10aafd18dd60b790549e0233edc (diff) | |
download | online_test-b3f5721f3cf4225902000f2f76e5138135383792.tar.gz online_test-b3f5721f3cf4225902000f2f76e5138135383792.tar.bz2 online_test-b3f5721f3cf4225902000f2f76e5138135383792.zip |
Add weightage for Quiz and Create Grading System App
App Name: grades
Grading System provides with the grade for a given value.
It contains different grade ranges.
Has its own default grading system.
Allows you to modify and add grading system wth grade ranges.
To be done:
- Need to add README
- Good UI
- There are fields like can_be_used and order in models for future use.
- More tests
App name: Yaksh
Now every quiz has a default weightage of 100%, can be changed.
An aggregate is calculated for a given course.
Using grades app a grade is provide to the aggregate value.
Diffstat (limited to 'grades/migrations/default_grading_system.py')
-rw-r--r-- | grades/migrations/default_grading_system.py | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/grades/migrations/default_grading_system.py b/grades/migrations/default_grading_system.py new file mode 100644 index 0000000..1629d29 --- /dev/null +++ b/grades/migrations/default_grading_system.py @@ -0,0 +1,36 @@ +from django.db import migrations + +def create_default_system(apps, schema_editor): + GradingSystem = apps.get_model('grades', 'GradingSystem') + GradeRange = apps.get_model('grades', 'GradeRange') + db = schema_editor.connection.alias + + default_system = GradingSystem.objects.using(db).create(name='default', + can_be_used=True) + GradeRange.objects.using(db).create(system=default_system, order=1, lower_limit=0, + upper_limit=40, grade='F', description='Fail') + GradeRange.objects.using(db).create(system=default_system, order=2, lower_limit=40, + upper_limit=55, grade='P', description='Pass') + GradeRange.objects.using(db).create(system=default_system, order=3, lower_limit=55, + upper_limit=60, grade='C', description='Average') + GradeRange.objects.using(db).create(system=default_system, order=4, lower_limit=60, + upper_limit=75, grade='B', description='Satisfactory') + GradeRange.objects.using(db).create(system=default_system, order=5, lower_limit=75, + upper_limit=90, grade='A', description='Good') + GradeRange.objects.using(db).create(system=default_system, order=6, lower_limit=90, + upper_limit=101, grade='A+', description='Excellent') + + +def delete_default_system(apps, schema_editor): + GradingSystem = apps.get_model('grades', 'GradingSystem') + GradeRange = apps.get_model('grades', 'GradeRange') + db = schema_editor.connection.alias + + default_system = GradingSystem.objects.using(db).get(creator=None) + GradeRange.object.using(db).filter(system=default_system).delete() + default_system.delete() + + +class Migration(migrations.Migration): + dependencies = [('grades', '0001_initial'),] + operations = [migrations.RunPython(create_default_system, delete_default_system),] |