Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions accounts/constants.py
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
BASE_REVIEW = 2
30 changes: 26 additions & 4 deletions accounts/views.py
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,10 @@

from fluent.settings import CHAT_MAKING_QUEUE


from accounts.constants import (
BASE_REVIEW,
)
from accounts.serializers import (
ConversationStarterSerializer,
ProfileSerializer,
Expand All @@ -32,7 +36,6 @@
TopicSerializer,
TipsSerializer
)

from accounts.models import (
Profile,
Queue,
Expand Down Expand Up @@ -197,7 +200,6 @@ def start(self, request):
'talk_id': talk.id
})
else:
print("HERE")
queue = Queue.objects.create(
user=user_profile.user.id,
topic=topic,
Expand Down Expand Up @@ -266,17 +268,22 @@ class ReviewViewSet(viewsets.GenericViewSet):
# permission_classes = (permissions.IsAuthenticated,)
queryset = Review.objects.all()
serializer_class = ReviewSerializer

@transaction.atomic
def create(self, request):
talk_history = get_object_or_404(TalkHistory, id=request.data['talk_id'])
user = get_object_or_404(User, id=request.data['user'])
if len(Review.objects.filter(user=user, talk_id=talk_history))>0:

if len(Review.objects.filter(user=user, talk_id=talk_history)) > 0:
return Response({
'message': 'Review already exists'
})
if not (talk_history.user1 == user or talk_history == user):

if not (talk_history.user1 == user or talk_history.user2 == user):
return Response({
'message': 'User not in talk'
})

if talk_history.is_valid:
review = Review.objects.create(
user=user,
Expand All @@ -286,13 +293,28 @@ def create(self, request):
note=request.data['note'],
talk_id=talk_history
)

review.save()
self.applyRating(request)

return Response({
'message':'OK'
})

return Response({
'message': 'Talk is not valid',
})

def applyRating(self, request):
user = get_object_or_404(User, id=request.data['user'])
user_profile = get_object_or_404(Profile, user=user)

new_rating = user_profile.rating
new_rating = new_rating + (request.data['clarity'] - BASE_REVIEW)*5 + (request.data['pacing'] - BASE_REVIEW)*5 + (request.data['pronunciation'] - BASE_REVIEW)*5
new_rating = new_rating - random.randint(-5, 5) # adjustment

user_profile.rating = new_rating
user_profile.save()


class TalkViewSet(viewsets.GenericViewSet):
Expand Down