5
5
6
6
from courses .models import Course
7
7
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
+ )
9
16
from courses .util import get_current_semester
10
17
18
+
11
19
class DegreeListSerializer (serializers .ModelSerializer ):
12
20
class Meta :
13
21
model = Degree
14
22
fields = "__all__"
15
23
24
+
16
25
class SimpleCourseSerializer (serializers .ModelSerializer ):
17
26
id = serializers .ReadOnlyField (
18
27
source = "full_code" ,
@@ -24,19 +33,19 @@ class SimpleCourseSerializer(serializers.ModelSerializer):
24
33
)
25
34
26
35
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"
28
37
)
29
38
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"
31
40
)
32
41
instructor_quality = serializers .DecimalField (
33
42
max_digits = 4 ,
34
43
decimal_places = 3 ,
35
44
read_only = True ,
36
- help_text = ' instructor_quality_help' ,
45
+ help_text = " instructor_quality_help" ,
37
46
)
38
47
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"
40
49
)
41
50
42
51
class Meta :
@@ -53,13 +62,14 @@ class Meta:
53
62
]
54
63
read_only_fields = fields
55
64
65
+
56
66
class RuleSerializer (serializers .ModelSerializer ):
57
67
q_json = serializers .ReadOnlyField (help_text = "JSON representation of the q object" )
58
68
59
69
class Meta :
60
70
model = Rule
61
71
fields = "__all__"
62
-
72
+
63
73
def to_representation (self , instance ):
64
74
data = super (RuleSerializer , self ).to_representation (instance )
65
75
data .q = ""
@@ -89,14 +99,23 @@ class Meta:
89
99
90
100
class FulfillmentSerializer (serializers .ModelSerializer ):
91
101
course = serializers .SerializerMethodField ()
102
+
92
103
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
+ )
94
111
if course is not None :
95
112
return SimpleCourseSerializer (course ).data
96
113
return None
97
-
114
+
98
115
# 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
+ )
100
119
101
120
def to_internal_value (self , data ):
102
121
data = data .copy ()
@@ -149,7 +168,7 @@ class DegreePlanListSerializer(serializers.ModelSerializer):
149
168
150
169
# degree_ids = serializers.PrimaryKeyRelatedField(
151
170
# many=True,
152
- # required=False,
171
+ # required=False,
153
172
# source="degrees",
154
173
# queryset=Degree.objects.all(),
155
174
# help_text="The degree_id this degree plan belongs to.",
@@ -167,8 +186,7 @@ class DegreePlanDetailSerializer(serializers.ModelSerializer):
167
186
# help_text="The courses used to fulfill degree plan.",
168
187
# )
169
188
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"
172
190
)
173
191
174
192
person = serializers .HiddenField (default = serializers .CurrentUserDefault ())
@@ -184,4 +202,4 @@ class DockedCourseSerializer(serializers.ModelSerializer):
184
202
185
203
class Meta :
186
204
model = DockedCourse
187
- fields = "__all__"
205
+ fields = "__all__"
0 commit comments