diff --git a/apiserver/apiserver/api/serializers.py b/apiserver/apiserver/api/serializers.py index f07f2a5..c1738bd 100644 --- a/apiserver/apiserver/api/serializers.py +++ b/apiserver/apiserver/api/serializers.py @@ -449,9 +449,14 @@ class StudentTrainingSerializer(TrainingSerializer): attendance_status = serializers.ChoiceField(['Waiting for payment', 'Withdrawn']) +class CourseSerializer(serializers.ModelSerializer): + class Meta: + model = models.Course + fields = ['id', 'name', 'is_old', 'description'] + class SessionSerializer(serializers.ModelSerializer): student_count = serializers.SerializerMethodField() - course_name = serializers.SerializerMethodField() + course_data = serializers.SerializerMethodField() instructor_name = serializers.SerializerMethodField() datetime = serializers.DateTimeField() course = serializers.PrimaryKeyRelatedField(queryset=models.Course.objects.all()) @@ -467,8 +472,8 @@ class SessionSerializer(serializers.ModelSerializer): def get_student_count(self, obj): return len([x for x in obj.students.all() if x.attendance_status != 'Withdrawn']) - def get_course_name(self, obj): - return obj.course.name + def get_course_data(self, obj): + return CourseSerializer(obj.course).data def get_instructor_name(self, obj): if obj.instructor and hasattr(obj.instructor, 'member'): @@ -481,11 +486,6 @@ class SessionListSerializer(SessionSerializer): students = None -class CourseSerializer(serializers.ModelSerializer): - class Meta: - model = models.Course - fields = ['id', 'name'] - class CourseDetailSerializer(serializers.ModelSerializer): sessions = SessionListSerializer(many=True, read_only=True) name = serializers.CharField(max_length=100) diff --git a/webclient/src/Classes.js b/webclient/src/Classes.js index da401e5..c961986 100644 --- a/webclient/src/Classes.js +++ b/webclient/src/Classes.js @@ -28,7 +28,7 @@ function ClassTable(props) { {classes.length ? classes.map(x =>
{x}
+ ) + : + + } +Please pay the course fee of ${clazz.cost} to confirm your attendance.
{moment.utc(clazz.datetime).tz('America/Edmonton').format('llll')} {num >= 2 ? ', '+num+' students sorted by registration time.' : '.'} @@ -406,7 +406,7 @@ export function InstructorClassList(props) { {sameClasses.length ? sameClasses.map(x =>
- {moment.utc(x.datetime).tz('America/Edmonton').format('LT')} — {x.course_name} + {moment.utc(x.datetime).tz('America/Edmonton').format('LT')} — {x.course_data.name}
) : diff --git a/webclient/src/InstructorCourses.js b/webclient/src/InstructorCourses.js index ef11bab..d397cf5 100644 --- a/webclient/src/InstructorCourses.js +++ b/webclient/src/InstructorCourses.js @@ -173,7 +173,10 @@ export function InstructorCourseList(props) {Added to bottom of course list! View the course.
} + {!open && success && <> +Added to bottom of course list!
+View the course.
+ >} {open ?