Hide keyboard shortcuts

Hot-keys on this page

r m x p   toggle line displays

j k   next/prev highlighted chunk

0   (zero) top of page

1   (one) first highlighted chunk

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

81

82

83

84

85

86

87

88

89

90

91

92

from rest_framework import serializers 

 

from backend_app.models.abstract.base import BaseModelSerializer 

from backend_app.models.abstract.essentialModule import EssentialModuleSerializer 

from backend_app.models.course import Course 

from backend_app.models.courseFeedback import CourseFeedback 

from backend_app.models.exchange import Exchange 

 

 

class CourseFeedbackSerializer(EssentialModuleSerializer): 

course_code = serializers.SerializerMethodField() # needed for the front 

course_title = serializers.SerializerMethodField() # needed for the front 

 

def get_course_code(self, obj): 

return obj.course.code 

 

def get_course_title(self, obj): 

return obj.course.title 

 

def update(self, instance, validated_data): 

instance.untouched = False 

return super().update(instance, validated_data) 

 

class Meta: 

model = CourseFeedback 

fields = EssentialModuleSerializer.Meta.fields + ( 

"course_code", 

"course_title", 

"language", 

"comment", 

"adequation", 

"would_recommend", 

"working_dose", 

"following_ease", 

"untouched", 

) 

 

 

COURSE_FIELDS = BaseModelSerializer.Meta.fields + ( 

"course_feedback", 

"code", 

"title", 

"link", 

"ects", 

"category", 

"profile", 

"tsh_profile", 

) 

 

 

class CourseSerializerSimple(BaseModelSerializer): 

class Meta: 

model = Course 

fields = COURSE_FIELDS 

read_only_fields = COURSE_FIELDS 

 

 

class CourseSerializer(CourseSerializerSimple): 

course_feedback = CourseFeedbackSerializer(many=False, read_only=True) 

 

 

EXCHANGE_FIELDS = BaseModelSerializer.Meta.fields + ( 

"year", 

"semester", 

"duration", 

"double_degree", 

"master_obtained", 

"student_major_and_semester", 

"student_major", 

"student_minor", 

"student_option", 

"exchange_courses", 

"university", 

"student", 

) 

 

 

class ExchangeSerializerSimple(BaseModelSerializer): 

exchange_courses = CourseSerializerSimple(many=True, read_only=True) 

student = serializers.SerializerMethodField() 

 

def get_student(self, obj): 

return self.get_user_related_field(obj.student) 

 

class Meta: 

model = Exchange 

fields = EXCHANGE_FIELDS 

read_only_fields = EXCHANGE_FIELDS 

 

 

class ExchangeSerializer(ExchangeSerializerSimple): 

exchange_courses = CourseSerializer(many=True, read_only=True)