Skip to content

Commit

Permalink
added semester-wide comments
Browse files Browse the repository at this point in the history
  • Loading branch information
el-agua committed Sep 8, 2024
1 parent d32d45b commit d44f92e
Show file tree
Hide file tree
Showing 4 changed files with 32 additions and 8 deletions.
4 changes: 4 additions & 0 deletions backend/courses/serializers.py
Original file line number Diff line number Diff line change
Expand Up @@ -484,6 +484,7 @@ class CommentSerializer(serializers.ModelSerializer):
section = serializers.CharField(source="section.full_code", read_only=True)
base = serializers.SerializerMethodField()
parent = serializers.SerializerMethodField()
semester = serializers.CharField(source="section.course.semester", read_only=True)

def get_votes(self, obj):
return len(obj.upvotes.values_list("id")) - len(obj.downvotes.values_list("id"))
Expand Down Expand Up @@ -511,6 +512,7 @@ class Meta:
"base",
"parent",
"path",
"semester"
]


Expand All @@ -522,6 +524,7 @@ class CommentListSerializer(serializers.ModelSerializer):
parent = serializers.SerializerMethodField()
user_upvoted = serializers.BooleanField()
user_downvoted = serializers.BooleanField()
semester = serializers.CharField(source="section.course.semester", read_only=True)

def get_votes(self, obj):
return len(obj.upvotes.values_list("id")) - len(obj.downvotes.values_list("id"))
Expand Down Expand Up @@ -551,4 +554,5 @@ class Meta:
"path",
"user_upvoted",
"user_downvoted",
"semester",
]
14 changes: 10 additions & 4 deletions backend/review/views.py
Original file line number Diff line number Diff line change
Expand Up @@ -872,17 +872,20 @@ class CommentList(generics.ListAPIView):

def get(self, request, semester, course_code):
print("HELLO")
semester_arg = request.query_params.get("semester") or "all"
print(semester)
# semester_arg = request.query_params.get("semester") or "all"
semester_arg = semester or "all"
instructor = request.query_params.get("instructor") or "all"
sort_by = request.query_params.get("sort_by") or "oldest"
sort_by = request.query_params.get("sort_by") or "newest"
page = request.query_params.get("page") or 0
page_size = request.query_params.get("page_size") or 10
page_size = request.query_params.get("page_size") or 20

queryset = og_queryset = self.get_queryset()

print(queryset)
# add filters
if semester_arg != "all":
queryset = queryset.all().filter(semester=semester_arg)
queryset = queryset.all().filter(section__course__semester=semester_arg)
if instructor != "all":
queryset = queryset.all().filter(instructor=instructor)

Expand Down Expand Up @@ -923,11 +926,14 @@ def get(self, request, semester, course_code):
def get_queryset(self):
course_code = self.kwargs["course_code"]
semester = self.kwargs["semester"] or "all"
print("I MADE IT HERE", semester)
try:
if semester == "all":
course = Course.objects.filter(full_code=course_code).latest("semester")
else:
print("HI1")
course = get_course_from_code_semester(course_code, None)
print("HI2")
except Http404:
return Response({"message": "Course not found."}, status=status.HTTP_404_NOT_FOUND)
topic = course.topic
Expand Down
11 changes: 9 additions & 2 deletions frontend/review/src/components/DetailsBox.js
Original file line number Diff line number Diff line change
Expand Up @@ -127,9 +127,9 @@ const CommentsTab = forwardRef(

useEffect(() => {
setIsLoading(true);
apiComments(course, "2022A", null, null)
apiComments(course, "all", null, null)
.then(res => {
console.log("fetching comments", res);
console.log("fetching comments now", res);
setComments(res.comments.map(c => ({ ...c, created_at: new Date(c.created_at), modified_at: new Date(c.modified_at) })));
setSemesterList(res.semesters);
})
Expand Down Expand Up @@ -231,7 +231,14 @@ const CommentsTab = forwardRef(
<Comment comment={c} />
))}
</div>

</div>
<div>
<button className="btn">1</button>
<button className="btn">2</button>
<button className="btn">3</button>
<button className="btn">4</button>
</div>
</div>
</div>
);
Expand Down
11 changes: 9 additions & 2 deletions frontend/review/src/utils/api.js
Original file line number Diff line number Diff line change
Expand Up @@ -266,12 +266,19 @@ export function apiReplies(commentId) {
export function apiUserComment(course) {
console.log("fetching user comment");
return Promise.resolve({});
if(course === "CIS-120") return Promise.resolve(fakeUserComment);
}

// export function apiUserComment(course, semester) {
// return apiFetch(
// `${API_DOMAIN}/api/review/${semester ? encodeURIComponent(semester) : "all"}/course_comments/${encodeURIComponent(course)}`
// )
// }

export function apiComments(course, semester, professorId, sortBy) {
return apiFetch(
`${API_DOMAIN}/api/review/${encodeURIComponent(semester)}/course_comments/${encodeURIComponent(course)}`

`${API_DOMAIN}/api/review/${semester ? encodeURIComponent(semester) : "all"}/course_comments/${encodeURIComponent(course)}`

)
}

Expand Down

0 comments on commit d44f92e

Please sign in to comment.