diff --git a/app/api/feedbacks.py b/app/api/feedbacks.py index a0c6c2ee3e..28ddd0a7a3 100644 --- a/app/api/feedbacks.py +++ b/app/api/feedbacks.py @@ -14,6 +14,7 @@ from app.models.feedback import Feedback from app.models.event import Event from app.models.session import Session +from app.models.user import User class FeedbackListPost(ResourceList): @@ -72,7 +73,17 @@ def query(self, view_kwargs): :return: """ query_ = self.session.query(Feedback) - query_ = event_query(self, query_, view_kwargs) + if view_kwargs.get('user_id'): + # feedbacks under an user + user = safe_query(self, User, 'id', view_kwargs['user_id'], 'user_id') + query_ = query_.join(User, User.id == Feedback.user_id).filter(User.id == user.id) + elif view_kwargs.get('session_id'): + # feedbacks under a session + session = safe_query(self, Session, 'id', view_kwargs['session_id'], 'session_id') + query_ = query_.join(Session, Session.id == Feedback.session_id).filter(Session.id == session.id) + else: + # feedbacks under an event + query_ = event_query(self, query_, view_kwargs) return query_ view_kwargs = True diff --git a/app/api/schema/users.py b/app/api/schema/users.py index 3ce250ec81..3bb20dc3d9 100644 --- a/app/api/schema/users.py +++ b/app/api/schema/users.py @@ -90,7 +90,7 @@ class Meta: many=True, type_='notification') feedbacks = Relationship( - attribute='feedbacks', + attribute='feedback', self_view='v1.user_feedback', self_view_kwargs={'id': ''}, related_view='v1.feedback_list',