diff options
Diffstat (limited to 'grades/migrations')
-rw-r--r-- | grades/migrations/0001_initial.py | 45 | ||||
-rw-r--r-- | grades/migrations/__init__.py | 0 | ||||
-rw-r--r-- | grades/migrations/default_grading_system.py | 36 |
3 files changed, 81 insertions, 0 deletions
diff --git a/grades/migrations/0001_initial.py b/grades/migrations/0001_initial.py new file mode 100644 index 0000000..65d711e --- /dev/null +++ b/grades/migrations/0001_initial.py @@ -0,0 +1,45 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.9.5 on 2018-02-02 06:20 +from __future__ import unicode_literals + +from django.conf import settings +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + initial = True + + dependencies = [ + migrations.swappable_dependency(settings.AUTH_USER_MODEL), + ] + + operations = [ + migrations.CreateModel( + name='GradeRange', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('order', models.IntegerField(default=0)), + ('lower_limit', models.FloatField()), + ('upper_limit', models.FloatField()), + ('grade', models.CharField(max_length=10)), + ('description', models.CharField(blank=True, max_length=127, null=True)), + ], + ), + migrations.CreateModel( + name='GradingSystem', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('name', models.CharField(max_length=255, unique=True)), + ('description', models.TextField(default='About the grading system!')), + ('can_be_used', models.BooleanField(default=False)), + ('creator', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)), + ], + ), + migrations.AddField( + model_name='graderange', + name='system', + field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='grades.GradingSystem'), + ), + ] diff --git a/grades/migrations/__init__.py b/grades/migrations/__init__.py new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/grades/migrations/__init__.py 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),] |