Skip to content

Commit 356b3b3

Browse files
committed
Add migration
change model to use user as pk in order to make migration extremely smooth, no real downside to this
1 parent bef2a70 commit 356b3b3

File tree

2 files changed

+92
-1
lines changed

2 files changed

+92
-1
lines changed
Lines changed: 91 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,91 @@
1+
# Mostly Generated by Django 4.2.17, create_tutors manually created
2+
3+
from django.conf import settings
4+
from django.db import migrations, models
5+
import django.db.models.deletion
6+
7+
8+
def create_tutors(apps, schema_editor):
9+
User = apps.get_model(settings.AUTH_USER_MODEL)
10+
Tutor = apps.get_model('tutoring', 'Tutor')
11+
tutoring_users = User.objects.exclude(
12+
one_hour_tutoring__isnull=True,
13+
two_hour_tutoring__isnull=True,
14+
tutoring_slots__isnull=True
15+
).distinct().iterator()
16+
Tutor.objects.bulk_create(
17+
( Tutor(user=user) for user in tutoring_users ),
18+
ignore_conflicts=True
19+
)
20+
21+
22+
class Migration(migrations.Migration):
23+
dependencies = [
24+
("auth", "0012_alter_user_first_name_max_length"),
25+
("coursesemester", "0002_auto_20210202_0225"),
26+
("tutoring", "0003_auto_20221128_1703"),
27+
]
28+
29+
operations = [
30+
migrations.CreateModel(
31+
name="Tutor",
32+
fields=[
33+
(
34+
"user",
35+
models.OneToOneField(
36+
on_delete=django.db.models.deletion.CASCADE,
37+
primary_key=True,
38+
related_name="tutoring_info",
39+
serialize=False,
40+
to=settings.AUTH_USER_MODEL,
41+
),
42+
),
43+
(
44+
"completed_courses",
45+
models.ManyToManyField(
46+
blank=True,
47+
related_name="completed_tutors",
48+
to="coursesemester.course",
49+
),
50+
),
51+
(
52+
"in_progress_courses",
53+
models.ManyToManyField(
54+
blank=True,
55+
related_name="in_progress_tutors",
56+
to="coursesemester.course",
57+
),
58+
),
59+
(
60+
"preferred_courses",
61+
models.ManyToManyField(
62+
blank=True,
63+
related_name="preferred_tutors",
64+
to="coursesemester.course",
65+
),
66+
),
67+
],
68+
),
69+
migrations.RunPython(create_tutors, elidable=True),
70+
migrations.AlterField(
71+
model_name="slot",
72+
name="tutors",
73+
field=models.ManyToManyField(
74+
blank=True, related_name="tutoring_slots", to="tutoring.tutor"
75+
),
76+
),
77+
migrations.AlterField(
78+
model_name="tutoringlogistics",
79+
name="one_hour_tutors",
80+
field=models.ManyToManyField(
81+
blank=True, related_name="one_hour_tutoring", to="tutoring.tutor"
82+
),
83+
),
84+
migrations.AlterField(
85+
model_name="tutoringlogistics",
86+
name="two_hour_tutors",
87+
field=models.ManyToManyField(
88+
blank=True, related_name="two_hour_tutoring", to="tutoring.tutor"
89+
),
90+
),
91+
]

hknweb/tutoring/models.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515

1616
class Tutor(models.Model):
1717
user = models.OneToOneField(
18-
User, on_delete=models.CASCADE, related_name="tutoring_info"
18+
User, on_delete=models.CASCADE, related_name="tutoring_info", primary_key=True
1919
)
2020
completed_courses = models.ManyToManyField(
2121
Course, blank=True, related_name="completed_tutors"

0 commit comments

Comments
 (0)