summaryrefslogtreecommitdiff
path: root/grades/migrations
diff options
context:
space:
mode:
Diffstat (limited to 'grades/migrations')
-rw-r--r--grades/migrations/0001_initial.py45
-rw-r--r--grades/migrations/__init__.py0
-rw-r--r--grades/migrations/default_grading_system.py36
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),]