Overhauled the entire subjects app to be more simplified and to remove anomalies when filtering in queries

This commit is contained in:
Keannu Christian Bernasol 2023-07-26 12:14:19 +08:00
parent 4b82ffbbc2
commit 0eff07a1ae
25 changed files with 122 additions and 407 deletions

View file

@ -1,4 +1,4 @@
# Generated by Django 4.2.3 on 2023-07-18 07:43
# Generated by Django 4.2.3 on 2023-07-26 03:53
from django.conf import settings
from django.db import migrations, models
@ -10,10 +10,10 @@ class Migration(migrations.Migration):
initial = True
dependencies = [
('semesters', '0001_initial'),
migrations.swappable_dependency(settings.AUTH_USER_MODEL),
('courses', '0001_initial'),
('year_levels', '0001_initial'),
migrations.swappable_dependency(settings.AUTH_USER_MODEL),
('semesters', '0001_initial'),
]
operations = [
@ -21,52 +21,26 @@ class Migration(migrations.Migration):
name='Subject',
fields=[
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('name', models.CharField(max_length=64)),
('code', models.CharField(max_length=16)),
('name', models.CharField(max_length=64, unique=True)),
],
),
migrations.CreateModel(
name='SubjectYearLevel',
name='SubjectCode',
fields=[
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('code', models.CharField(max_length=16, unique=True)),
],
),
migrations.CreateModel(
name='SubjectInstance',
fields=[
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('code', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='subjects.subjectcode')),
('course', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='courses.course')),
('semester', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='semesters.semester')),
('students', models.ManyToManyField(blank=True, to=settings.AUTH_USER_MODEL)),
('subject', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='subjects.subject')),
('year_level', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='year_levels.year_level')),
],
),
migrations.CreateModel(
name='SubjectSemester',
fields=[
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('semester', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='semesters.semester')),
('subject', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='subjects.subject')),
],
),
migrations.CreateModel(
name='SubjectCourse',
fields=[
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('course', models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, to='courses.course')),
('subject', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='subjects.subject')),
],
),
migrations.AddField(
model_name='subject',
name='courses',
field=models.ManyToManyField(related_name='SubjectCourse_subject', through='subjects.SubjectCourse', to='courses.course'),
),
migrations.AddField(
model_name='subject',
name='semesters',
field=models.ManyToManyField(related_name='SubjectSemester_subject', through='subjects.SubjectSemester', to='semesters.semester'),
),
migrations.AddField(
model_name='subject',
name='students',
field=models.ManyToManyField(to=settings.AUTH_USER_MODEL),
),
migrations.AddField(
model_name='subject',
name='year_levels',
field=models.ManyToManyField(related_name='SubjectYearLevel_subject', through='subjects.SubjectYearLevel', to='year_levels.year_level'),
),
]

View file

@ -1,76 +0,0 @@
# Generated by Django 4.2.3 on 2023-07-18 10:28
from django.conf import settings
from django.db import migrations, models
import django.db.models.deletion
class Migration(migrations.Migration):
dependencies = [
('year_levels', '0002_alter_year_level_name_alter_year_level_shortname'),
migrations.swappable_dependency(settings.AUTH_USER_MODEL),
('courses', '0003_alter_course_name_alter_course_shortname'),
('semesters', '0002_alter_semester_name_alter_semester_shortname'),
('subjects', '0001_initial'),
]
operations = [
migrations.AlterField(
model_name='subject',
name='code',
field=models.CharField(max_length=16, unique=True),
),
migrations.AlterField(
model_name='subject',
name='name',
field=models.CharField(max_length=64, unique=True),
),
migrations.AlterField(
model_name='subject',
name='students',
field=models.ManyToManyField(blank=True, to=settings.AUTH_USER_MODEL),
),
migrations.AlterField(
model_name='subjectcourse',
name='course',
field=models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, to='courses.course', to_field='name'),
),
migrations.AlterField(
model_name='subjectcourse',
name='subject',
field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='subjects.subject', to_field='name'),
),
migrations.AlterField(
model_name='subjectsemester',
name='semester',
field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='semesters.semester', to_field='name'),
),
migrations.AlterField(
model_name='subjectsemester',
name='subject',
field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='subjects.subject', to_field='name'),
),
migrations.AlterField(
model_name='subjectyearlevel',
name='subject',
field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='subjects.subject', to_field='name'),
),
migrations.AlterField(
model_name='subjectyearlevel',
name='year_level',
field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='year_levels.year_level', to_field='name'),
),
migrations.AlterUniqueTogether(
name='subjectcourse',
unique_together={('subject', 'course')},
),
migrations.AlterUniqueTogether(
name='subjectsemester',
unique_together={('subject', 'semester')},
),
migrations.AlterUniqueTogether(
name='subjectyearlevel',
unique_together={('subject', 'year_level')},
),
]

View file

@ -1,29 +0,0 @@
# Generated by Django 4.2.3 on 2023-07-19 07:04
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('subjects', '0002_alter_subject_code_alter_subject_name_and_more'),
]
operations = [
migrations.CreateModel(
name='SubjectCode',
fields=[
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('code', models.CharField(max_length=16, unique=True)),
],
),
migrations.RemoveField(
model_name='subject',
name='code',
),
migrations.AddField(
model_name='subject',
name='code',
field=models.ManyToManyField(to='subjects.subjectcode'),
),
]

View file

@ -1,18 +0,0 @@
# Generated by Django 4.2.3 on 2023-07-19 07:09
from django.db import migrations
class Migration(migrations.Migration):
dependencies = [
('subjects', '0003_subjectcode_remove_subject_code_subject_code'),
]
operations = [
migrations.RenameField(
model_name='subject',
old_name='code',
new_name='codes',
),
]