Skip to content

Commit 4749c7d

Browse files
committed
Black
1 parent ba90562 commit 4749c7d

13 files changed

+410
-137
lines changed

backend/degree/admin.py

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,14 @@
44
from django.urls import reverse
55
from django.utils.html import format_html
66

7-
from degree.models import Degree, DegreePlan, DoubleCountRestriction, Rule, SatisfactionStatus, Fulfillment
7+
from degree.models import (
8+
Degree,
9+
DegreePlan,
10+
DoubleCountRestriction,
11+
Rule,
12+
SatisfactionStatus,
13+
Fulfillment,
14+
)
815

916

1017
# Register your models here.
@@ -18,10 +25,12 @@ class RuleAdmin(admin.ModelAdmin):
1825
admin.site.register(DegreePlan)
1926
admin.site.register(SatisfactionStatus)
2027

28+
2129
@admin.register(Fulfillment)
2230
class FulfillmentAdmin(admin.ModelAdmin):
2331
autocomplete_fields = ["rules"]
2432

33+
2534
@admin.register(DoubleCountRestriction)
2635
class DoubleCountRestrictionAdmin(admin.ModelAdmin):
2736
autocomplete_fields = ["rule", "other_rule"]

backend/degree/migrations/0001_initial.py

Lines changed: 267 additions & 51 deletions
Large diffs are not rendered by default.

backend/degree/migrations/0002_alter_degreeplan_degrees.py

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,13 +6,17 @@
66
class Migration(migrations.Migration):
77

88
dependencies = [
9-
('degree', '0001_initial'),
9+
("degree", "0001_initial"),
1010
]
1111

1212
operations = [
1313
migrations.AlterField(
14-
model_name='degreeplan',
15-
name='degrees',
16-
field=models.ManyToManyField(blank=True, help_text='The degrees this degree plan is associated with.', to='degree.Degree'),
14+
model_name="degreeplan",
15+
name="degrees",
16+
field=models.ManyToManyField(
17+
blank=True,
18+
help_text="The degrees this degree plan is associated with.",
19+
to="degree.Degree",
20+
),
1721
),
1822
]

backend/degree/migrations/0003_alter_fulfillment_unique_together.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,12 +6,12 @@
66
class Migration(migrations.Migration):
77

88
dependencies = [
9-
('degree', '0002_alter_degreeplan_degrees'),
9+
("degree", "0002_alter_degreeplan_degrees"),
1010
]
1111

1212
operations = [
1313
migrations.AlterUniqueTogether(
14-
name='fulfillment',
15-
unique_together={('degree_plan', 'full_code')},
14+
name="fulfillment",
15+
unique_together={("degree_plan", "full_code")},
1616
),
1717
]

backend/degree/migrations/0004_remove_fulfillment_historical_course.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,12 +6,12 @@
66
class Migration(migrations.Migration):
77

88
dependencies = [
9-
('degree', '0003_alter_fulfillment_unique_together'),
9+
("degree", "0003_alter_fulfillment_unique_together"),
1010
]
1111

1212
operations = [
1313
migrations.RemoveField(
14-
model_name='fulfillment',
15-
name='historical_course',
14+
model_name="fulfillment",
15+
name="historical_course",
1616
),
1717
]

backend/degree/migrations/0005_degree_credits.py

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,14 +6,19 @@
66
class Migration(migrations.Migration):
77

88
dependencies = [
9-
('degree', '0004_remove_fulfillment_historical_course'),
9+
("degree", "0004_remove_fulfillment_historical_course"),
1010
]
1111

1212
operations = [
1313
migrations.AddField(
14-
model_name='degree',
15-
name='credits',
16-
field=models.DecimalField(decimal_places=2, default=32, help_text='\nThe minimum number of CUs required for this degree.\n', max_digits=4),
14+
model_name="degree",
15+
name="credits",
16+
field=models.DecimalField(
17+
decimal_places=2,
18+
default=32,
19+
help_text="\nThe minimum number of CUs required for this degree.\n",
20+
max_digits=4,
21+
),
1722
preserve_default=False,
1823
),
1924
]

backend/degree/migrations/0006_auto_20240229_1903.py

Lines changed: 28 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -9,20 +9,41 @@ class Migration(migrations.Migration):
99

1010
dependencies = [
1111
migrations.swappable_dependency(settings.AUTH_USER_MODEL),
12-
('degree', '0005_degree_credits'),
12+
("degree", "0005_degree_credits"),
1313
]
1414

1515
operations = [
1616
migrations.CreateModel(
17-
name='DockedCourse',
17+
name="DockedCourse",
1818
fields=[
19-
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
20-
('full_code', models.CharField(blank=True, help_text='The dash-joined department and code of the course, e.g., `CIS-120`', max_length=16)),
21-
('person', models.ForeignKey(help_text='The user the docked course belongs to.', on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)),
19+
(
20+
"id",
21+
models.BigAutoField(
22+
auto_created=True, primary_key=True, serialize=False, verbose_name="ID"
23+
),
24+
),
25+
(
26+
"full_code",
27+
models.CharField(
28+
blank=True,
29+
help_text="The dash-joined department and code of the course, e.g., `CIS-120`",
30+
max_length=16,
31+
),
32+
),
33+
(
34+
"person",
35+
models.ForeignKey(
36+
help_text="The user the docked course belongs to.",
37+
on_delete=django.db.models.deletion.CASCADE,
38+
to=settings.AUTH_USER_MODEL,
39+
),
40+
),
2241
],
2342
),
2443
migrations.AddConstraint(
25-
model_name='dockedcourse',
26-
constraint=models.UniqueConstraint(fields=('person', 'full_code'), name='unique docked course'),
44+
model_name="dockedcourse",
45+
constraint=models.UniqueConstraint(
46+
fields=("person", "full_code"), name="unique docked course"
47+
),
2748
),
2849
]

backend/degree/migrations/0007_alter_dockedcourse_full_code.py

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,13 +6,18 @@
66
class Migration(migrations.Migration):
77

88
dependencies = [
9-
('degree', '0006_auto_20240229_1903'),
9+
("degree", "0006_auto_20240229_1903"),
1010
]
1111

1212
operations = [
1313
migrations.AlterField(
14-
model_name='dockedcourse',
15-
name='full_code',
16-
field=models.CharField(blank=True, db_index=True, help_text='The dash-joined department and code of the course, e.g., `CIS-120`', max_length=16),
14+
model_name="dockedcourse",
15+
name="full_code",
16+
field=models.CharField(
17+
blank=True,
18+
db_index=True,
19+
help_text="The dash-joined department and code of the course, e.g., `CIS-120`",
20+
max_length=16,
21+
),
1722
),
1823
]

backend/degree/serializers.py

Lines changed: 31 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -5,14 +5,23 @@
55

66
from courses.models import Course
77
from courses.serializers import CourseListSerializer, CourseDetailSerializer
8-
from degree.models import Degree, DegreePlan, DoubleCountRestriction, Fulfillment, Rule, DockedCourse
8+
from degree.models import (
9+
Degree,
10+
DegreePlan,
11+
DoubleCountRestriction,
12+
Fulfillment,
13+
Rule,
14+
DockedCourse,
15+
)
916
from courses.util import get_current_semester
1017

18+
1119
class DegreeListSerializer(serializers.ModelSerializer):
1220
class Meta:
1321
model = Degree
1422
fields = "__all__"
1523

24+
1625
class SimpleCourseSerializer(serializers.ModelSerializer):
1726
id = serializers.ReadOnlyField(
1827
source="full_code",
@@ -24,19 +33,19 @@ class SimpleCourseSerializer(serializers.ModelSerializer):
2433
)
2534

2635
course_quality = serializers.DecimalField(
27-
max_digits=4, decimal_places=3, read_only=True, help_text='course_quality_help'
36+
max_digits=4, decimal_places=3, read_only=True, help_text="course_quality_help"
2837
)
2938
difficulty = serializers.DecimalField(
30-
max_digits=4, decimal_places=3, read_only=True, help_text='difficulty_help'
39+
max_digits=4, decimal_places=3, read_only=True, help_text="difficulty_help"
3140
)
3241
instructor_quality = serializers.DecimalField(
3342
max_digits=4,
3443
decimal_places=3,
3544
read_only=True,
36-
help_text='instructor_quality_help',
45+
help_text="instructor_quality_help",
3746
)
3847
work_required = serializers.DecimalField(
39-
max_digits=4, decimal_places=3, read_only=True, help_text='work_required_help'
48+
max_digits=4, decimal_places=3, read_only=True, help_text="work_required_help"
4049
)
4150

4251
class Meta:
@@ -53,13 +62,14 @@ class Meta:
5362
]
5463
read_only_fields = fields
5564

65+
5666
class RuleSerializer(serializers.ModelSerializer):
5767
q_json = serializers.ReadOnlyField(help_text="JSON representation of the q object")
5868

5969
class Meta:
6070
model = Rule
6171
fields = "__all__"
62-
72+
6373
def to_representation(self, instance):
6474
data = super(RuleSerializer, self).to_representation(instance)
6575
data.q = ""
@@ -89,14 +99,23 @@ class Meta:
8999

90100
class FulfillmentSerializer(serializers.ModelSerializer):
91101
course = serializers.SerializerMethodField()
102+
92103
def get_course(self, obj):
93-
course = Course.with_reviews.filter(full_code=obj.full_code, semester__lte=get_current_semester()).order_by("-semester").first()
104+
course = (
105+
Course.with_reviews.filter(
106+
full_code=obj.full_code, semester__lte=get_current_semester()
107+
)
108+
.order_by("-semester")
109+
.first()
110+
)
94111
if course is not None:
95112
return SimpleCourseSerializer(course).data
96113
return None
97-
114+
98115
# TODO: add a get_queryset method to only allow rules from the degree plan
99-
rules = serializers.PrimaryKeyRelatedField(many=True, queryset=Rule.objects.all(), required=False)
116+
rules = serializers.PrimaryKeyRelatedField(
117+
many=True, queryset=Rule.objects.all(), required=False
118+
)
100119

101120
def to_internal_value(self, data):
102121
data = data.copy()
@@ -149,7 +168,7 @@ class DegreePlanListSerializer(serializers.ModelSerializer):
149168

150169
# degree_ids = serializers.PrimaryKeyRelatedField(
151170
# many=True,
152-
# required=False,
171+
# required=False,
153172
# source="degrees",
154173
# queryset=Degree.objects.all(),
155174
# help_text="The degree_id this degree plan belongs to.",
@@ -167,8 +186,7 @@ class DegreePlanDetailSerializer(serializers.ModelSerializer):
167186
# help_text="The courses used to fulfill degree plan.",
168187
# )
169188
degrees = DegreeDetailSerializer(
170-
many=True,
171-
help_text="The degrees belonging to this degree plan"
189+
many=True, help_text="The degrees belonging to this degree plan"
172190
)
173191

174192
person = serializers.HiddenField(default=serializers.CurrentUserDefault())
@@ -184,4 +202,4 @@ class DockedCourseSerializer(serializers.ModelSerializer):
184202

185203
class Meta:
186204
model = DockedCourse
187-
fields = "__all__"
205+
fields = "__all__"

backend/degree/urls.py

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,14 +2,22 @@
22
from rest_framework.routers import DefaultRouter
33
from rest_framework_nested.routers import NestedDefaultRouter
44

5-
from degree.views import DegreePlanViewset, DegreeViewset, FulfillmentViewSet, courses_for_rule, DockedCourseViewset
5+
from degree.views import (
6+
DegreePlanViewset,
7+
DegreeViewset,
8+
FulfillmentViewSet,
9+
courses_for_rule,
10+
DockedCourseViewset,
11+
)
612

713

814
router = DefaultRouter(trailing_slash=False)
915
router.register(r"degreeplans", DegreePlanViewset, basename="degreeplan")
1016
router.register(r"degrees", DegreeViewset, basename="degree")
1117
router.register(r"docked", DockedCourseViewset)
12-
fulfillments_router = NestedDefaultRouter(router, r"degreeplans", lookup="degreeplan", trailing_slash=False)
18+
fulfillments_router = NestedDefaultRouter(
19+
router, r"degreeplans", lookup="degreeplan", trailing_slash=False
20+
)
1321
fulfillments_router.register(r"fulfillments", FulfillmentViewSet, basename="degreeplan-fulfillment")
1422

1523
urlpatterns = [

0 commit comments

Comments
 (0)