Further polishing for subjects

This commit is contained in:
Keannu Christian Bernasol 2023-06-27 18:15:31 +08:00
parent de1dabf53c
commit 492a605557
28 changed files with 225 additions and 151 deletions

View file

@ -1,6 +1,7 @@
# Generated by Django 4.2.2 on 2023-06-27 05:57
# Generated by Django 4.2.2 on 2023-06-27 09:44
from django.db import migrations, models
import django.db.models.deletion
class Migration(migrations.Migration):
@ -15,8 +16,15 @@ class Migration(migrations.Migration):
name='Course',
fields=[
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('course_name', models.CharField(max_length=64)),
('course_shortname', models.CharField(max_length=16)),
('name', models.CharField(max_length=64)),
('shortname', models.CharField(max_length=16)),
],
),
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')),
],
),
]

View file

@ -0,0 +1,27 @@
# Generated by Django 4.2.2 on 2023-06-27 09:44
from django.db import migrations, models
import django.db.models.deletion
class Migration(migrations.Migration):
initial = True
dependencies = [
('courses', '0001_initial'),
('subjects', '0001_initial'),
]
operations = [
migrations.AddField(
model_name='subjectcourse',
name='subject',
field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='subjects.subject'),
),
migrations.AddField(
model_name='course',
name='subjects',
field=models.ManyToManyField(related_name='SubjectCourse_course', through='courses.SubjectCourse', to='subjects.subject'),
),
]

View file

@ -1,23 +0,0 @@
# Generated by Django 4.2.2 on 2023-06-27 07:31
from django.db import migrations
class Migration(migrations.Migration):
dependencies = [
('courses', '0001_initial'),
]
operations = [
migrations.RenameField(
model_name='course',
old_name='course_name',
new_name='name',
),
migrations.RenameField(
model_name='course',
old_name='course_shortname',
new_name='shortname',
),
]

View file

@ -1,17 +1,25 @@
from django.db import models
from django.db.models.signals import post_migrate
from django.dispatch import receiver
from django.db import models
# Create your models here.
class Course(models.Model):
name = models.CharField(max_length=64)
shortname = models.CharField(max_length=16)
subjects = models.ManyToManyField(
'subjects.Subject', related_name='SubjectCourse_course', through='courses.SubjectCourse')
def __str__(self):
return self.name
class SubjectCourse(models.Model):
subject = models.ForeignKey('subjects.Subject', on_delete=models.CASCADE)
course = models.ForeignKey(
'courses.Course', on_delete=models.CASCADE, null=True)
@receiver(post_migrate)
def populate_courses(sender, **kwargs):
if sender.name == 'courses':