def post(self, request, *args, **kwargs): # create meeting request which is from web respData = {"meetingid":0,"msg":""} clubid = 0 try: clubid = int(kwargs['pk']) except: pass if clubid <= 0: respData["msg"] = "Club-Meeting not matching" return Response(respData, status=status.HTTP_400_BAD_REQUEST) (validate,errcode) = self.validate_post_data(request) if validate: (meetingid,cmcode) = MeetingUtil.createNormalMeeting(request,clubid) if meetingid != 0: respData["meetingid"] = meetingid respData["msg"] = cmcode return Response(respData) else: respData["meetingid"] = meetingid respData["msg"] = cmcode return Response(respData,status=status.HTTP_400_BAD_REQUEST) else: respData["meetingid"] = 0 respData["msg"] = errcode return Response(respData, status=status.HTTP_400_BAD_REQUEST)
def post(self, request, *args, **kwargs): respData = {} try: meetingid = int(kwargs['m_pk']) clubid = 0 if 'c_pk' in kwargs: clubid = int(kwargs['c_pk']) if not MeetingUtil.validateClubMeetingPermission(request, clubid, meetingid): return Response({"msg":"club-meeting no matching"}, status=status.HTTP_400_BAD_REQUEST) pk = int(kwargs['pk']) optionid = int(request.DATA["option"]) myvote = self.get_vote_existing(pk, request.user.id) if myvote is not None: if myvote.option.id != optionid: myvote.option = VoteOption.objects.get(id__exact=optionid) myvote.save(); respData["code"] = "ok" else: respData["code"] = "ok" respData["msg"] = "already voted" return Response(respData) else: myvote = Vote() myvote.item = VoteItem.objects.get(id__exact=pk) myvote.option = VoteOption.objects.get(id__exact=optionid) myvote.voter = Person.objects.get(id__exact=request.user.id) myvote.save() respData["code"] = "ok" return Response(respData) except: pass return Response(respData,status=status.HTTP_400_BAD_REQUEST)
def get(self, request, *args, **kwargs): respData = {} try: mid = int(kwargs['pk']) clubid = 0 if 'c_pk' in kwargs: clubid = int(kwargs['c_pk']) if not MeetingUtil.validateClubMeetingPermission(request, clubid, 0): return Response({"msg":"club-meeting no matching"}, status=status.HTTP_400_BAD_REQUEST) except: pass if mid == 0: rankings = RoleLiker.objects.select_related().values('liker_roleTaken').filter(like__exact=1).annotate(total=Count('roleTaken')).order_by('-total') else: rankings = RoleLiker.objects.select_related().values('liker_roleTaken').filter(meeting_id__exact=mid,like__exact=1).annotate(total=Count('roleTaken')).order_by('-total') for ranking in rankings: roleTaken = RoleTaken.objects.get(id__exact=ranking["roleTaken"]) ranking["title"] = roleTaken.title ranking["name"] = roleTaken.ownerName() data_dict = self.ValuesQuerySetToDict(rankings) str_json = simplejson.dumps(data_dict) data_json = simplejson.loads(str_json) respData["ranking"] = data_json return Response(respData)
def get(self, request, *args, **kwargs): meetingid = 0 arit = 0 respData = {"users":[], "extra":""} try: meetingid = int(kwargs['pk']) except: pass clubid = 0 if 'c_pk' in kwargs: clubid = int(kwargs['c_pk']) if not MeetingUtil.validateClubMeetingPermission(request, clubid, meetingid): return Response({"msg":"club-meeting no matching"}, status=status.HTTP_400_BAD_REQUEST) extra = self.get_extra_ar(request, clubid, meetingid) if extra: respData["extra"] = extra if request.GET.get("arit"): try: arit = int(request.GET.get("arit")) except: pass arids = self.get_ars(request,clubid,meetingid,arit) if len(arids) > 0: respData["users"] = arids return Response(respData) return Response(respData)
def post(self, request, *args, **kwargs): respData = {} try: meetingid = int(kwargs['m_pk']) clubid = 0 if 'c_pk' in kwargs: clubid = int(kwargs['c_pk']) if not MeetingUtil.validateClubMeetingPermission(request, clubid, meetingid): return Response({"msg":"club-meeting no matching"}, status=status.HTTP_400_BAD_REQUEST) pk = int(kwargs['pk']) status = int(request.DATA["status"]) if pk is 0: items = VoteItem.objects.filter(meeting_id__exact=meetingid) for item in items: item.status=status item.save() respData["code"] = "ok" return Response(respData) else: item = VoteItem.objects.get(id__exact=pk) item.status=status item.save() respData["code"] = "ok" return Response(respData) except: pass return Response(respData,status=status.HTTP_400_BAD_REQUEST)
def post_delete_av(self,meetingid,userid): try: rts = RoleTaken.objects.filter(meeting_id__exact=meetingid,owner_id__exact=userid) for rt in rts: if rt.roletype == RoleEnum.Speaker or rt.roletype == RoleEnum.TTM: rt.title = rt.title.split(":")[0]+":" else: rt.title = rt.title rt.ctask = "" rt.ltask = "" rt.owner = None rt.save() MeetingUtil.updateRelatedRoles(rt) MeetingUtil.updateRelatedActivities(rt) except: pass
def get(self, request, *args, **kwargs): pk = kwargs['pk'] clubid = 0 if 'c_pk' in kwargs: clubid = int(kwargs['c_pk']) if not MeetingUtil.validateClubMeetingPermission(request, clubid, pk): return Response({"club-meeting no matching"}, status=status.HTTP_400_BAD_REQUEST) roleTaken = self.get_object(pk) serializer = RoleTakenNormalSerializer(roleTaken) return Response(serializer.data)
def get(self, request, *args, **kwargs): respData = {} try: meetingid = int(kwargs['m_pk']) clubid = 0 if 'c_pk' in kwargs: clubid = int(kwargs['c_pk']) if not MeetingUtil.validateClubMeetingPermission(request, clubid, meetingid): return Response({"msg":"club-meeting no matching"}, status=status.HTTP_400_BAD_REQUEST) pk = int(kwargs['pk']) results = [] if pk is 0: items = VoteItem.objects.filter(meeting_id__exact=meetingid) for item in items: rankings = Vote.objects.select_related().values('option').filter(item_id__exact=item.id).annotate(total=Count('option')).order_by('-total') for ranking in rankings: option = VoteOption.objects.get(id__exact=ranking["option"]) ranking["name"] = option.name ranking["desc"] = option.desc data_dict = self.ValuesQuerySetToDict(rankings) str_json = simplejson.dumps(data_dict) data_json = simplejson.loads(str_json) itemSerializer = VoteItemSerializer(item, many=False) itemjson = itemSerializer.data itemjson["ranking"] = data_json results.append(itemjson) else: rankings = Vote.objects.select_related().values('option').filter(item_id__exact=pk).annotate(total=Count('option')).order_by('-total') item = VoteItem.objects.get(id__exact=pk) itemSerializer = VoteItemSerializer(item, many=False) itemjson = itemSerializer.data for ranking in rankings: option = VoteOption.objects.get(id__exact=ranking["option"]) ranking["name"] = option.name ranking["desc"] = option.desc data_dict = self.ValuesQuerySetToDict(rankings) str_json = simplejson.dumps(data_dict) data_json = simplejson.loads(str_json) itemjson["ranking"]=data_json results.append(itemjson) respData["items"] = results return Response(respData) except: pass return Response(respData, status=status.HTTP_400_BAD_REQUEST)
def post(self, request, *args, **kwargs): # update meeting request which is from web respData = {"meetingid":0,"msg":"","refresh":False,"nversion":0} pk = 0 try: pk = kwargs['pk'] clubid = 0 if 'c_pk' in kwargs: clubid = int(kwargs['c_pk']) except: respData["meetingid"] = 0 respData["msg"] = "Meeting id is invalid!" return Response(respData, status=status.HTTP_400_BAD_REQUEST) if not MeetingUtil.validateClubMeetingPermission(request, clubid, pk): respData["msg"] = "Club-Meeting not matching" return Response({respData}, status=status.HTTP_400_BAD_REQUEST) (validate,errcode) = self.validate_post_data(request) if validate: (meetingid,ecode,refresh,nversion) = MeetingUtil.updateMeeting(pk,request,clubid) if meetingid != 0: respData["meetingid"] = meetingid respData["msg"] = ecode respData["nversion"] = nversion return Response(respData) else: respData["meetingid"] = meetingid respData["msg"] = ecode respData["refresh"] = refresh return Response(respData,status=status.HTTP_400_BAD_REQUEST) else: respData["meetingid"] = 0 respData["msg"] = errcode return Response(respData, status=status.HTTP_400_BAD_REQUEST)
def post(self, request, *args, **kwargs): # update meeting request which is from web respData = {"meetingid":0,"msg":""} pk = 0 clubid = 0 if 'c_pk' in kwargs: clubid = int(kwargs['c_pk']) mstatus = 0 try: pk = int(kwargs['pk']) except: respData["meetingid"] = 0 respData["msg"] = "Meeting id is invalid!" return Response(respData, status=status.HTTP_400_BAD_REQUEST) if not MeetingUtil.validateClubMeetingPermission(request, clubid, pk): respData["msg"] = "Club-Meeting not matching" return Response(respData, status=status.HTTP_400_BAD_REQUEST) if request.GET.get("s"): try: mstatus = int(request.GET.get("s")) except: pass meetingid = MeetingUtil.changeMeetingStatus(request,pk,mstatus) if meetingid != 0: respData["meetingid"] = meetingid respData["msg"] = "Meeting {} is updated successfully!".format(meetingid) return Response(respData) else: respData["meetingid"] = meetingid respData["msg"] = "Meeting doesn't exist or status is invalid!" return Response(respData,status=status.HTTP_400_BAD_REQUEST)
def get(self, request, *args, **kwargs): respData = {} pk = kwargs['pk'] clubid = 0 if 'c_pk' in kwargs: clubid = int(kwargs['c_pk']) if not MeetingUtil.validateClubMeetingPermission(request, clubid, pk): respData["msg"] = "Club-Meeting not matching" return Response(respData, status=status.HTTP_400_BAD_REQUEST) meeting = self.get_meeting_object(pk) if meeting: if meeting.rt_meeting: serializer = RoleTakenNormalSerializer(meeting.rt_meeting.all(), many=True) respData = serializer.data return Response(respData) else: return Response(respData, status=status.HTTP_400_BAD_REQUEST)
def post(self, request, *args, **kwargs): meetingid = 0 action = 99999 respData = {"code":"Attendance vote error!"} try: meetingid = int(kwargs['pk']) action = int(request.GET.get("action")) except: pass clubid = 0 if 'c_pk' in kwargs: clubid = int(kwargs['c_pk']) if not MeetingUtil.validateClubMeetingPermission(request, clubid, meetingid): return Response({"msg":"club-meeting no matching"}, status=status.HTTP_400_BAD_REQUEST) if action == 1: if self.get_av_existing(request, clubid, meetingid)==False: requestDATA = {} requestDATA["owner"] = request.user.id requestDATA["meeting"] = meetingid requestDATA["av"] = True serializer = AddMeetingAvSerializer(data=requestDATA) if serializer.is_valid(): serializer.save() respData["code"] = "ok" return Response(respData) return Response(respData,status=status.HTTP_400_BAD_REQUEST) else: respData["code"] = "ok" return Response(respData) elif action == 0: self.delete_av(request,clubid,meetingid) respData["code"] = "ok" return Response(respData) else: return Response(respData,status=status.HTTP_400_BAD_REQUEST)
def get(self, request, *args, **kwargs): respData = {"stats":[]} aid = 0 try: roleid = int(kwargs['pk']) meetingid = int(kwargs['m_pk']) clubid = 0 if 'c_pk' in kwargs: clubid = int(kwargs['c_pk']) if not MeetingUtil.validateClubMeetingPermission(request, clubid, meetingid): return Response({"msg":"club-meeting no matching"}, status=status.HTTP_400_BAD_REQUEST) aid = int(request.GET.get("aid")) except: pass stats = self.get_stats(request,meetingid,aid,roleid) respData["stats"] = stats return Response(respData)
def get(self, request, *args, **kwargs): respData = {} try: meetingid = int(kwargs['m_pk']) clubid = 0 if 'c_pk' in kwargs: clubid = int(kwargs['c_pk']) if not MeetingUtil.validateClubMeetingPermission(request, clubid, meetingid): return Response({"msg":"club-meeting no matching"}, status=status.HTTP_400_BAD_REQUEST) meeting = self.get_meeting_object(meetingid) if meeting and meeting.voteitem_meeting: serializer = VoteItemFullSerializer(meeting.voteitem_meeting.all(), many=True) respData["mid"] = meeting.id respData["items"] = serializer.data return Response(respData) else: return Response(respData, status=status.HTTP_400_BAD_REQUEST) except: pass return Response(respData, status=status.HTTP_400_BAD_REQUEST)
def post(self, request, *args, **kwargs): respData = {} items = request.DATA["items"] try: meetingid = int(kwargs['m_pk']) clubid = 0 if 'c_pk' in kwargs: clubid = int(kwargs['c_pk']) if not MeetingUtil.validateClubMeetingPermission(request, clubid, meetingid): return Response({"msg":"club-meeting no matching"}, status=status.HTTP_400_BAD_REQUEST) with transaction.commit_on_success(): VoteItem.objects.filter(meeting_id__exact=meetingid).delete() items = request.DATA["items"] for item in items: newItem = VoteItem() newItem.meeting = Meeting.objects.get(id__exact=meetingid) newItem.seq = int(item["seq"]) newItem.type = int(item["type"]) newItem.status = int(item["status"]) newItem.title = item["title"] newItem.save() options = item["options"] for option in options: newOption = VoteOption() newOption.item = newItem uid = int(option["owner"]) if(uid!=0): newOption.owner = Person.objects.get(id__exact=uid) newOption.name = option["name"] newOption.desc = option["desc"] newOption.save() respData["code"] = "ok" return Response(respData) except: pass return Response(respData,status=status.HTTP_400_BAD_REQUEST)
def post(self, request, *args, **kwargs): roleid = 0 respData = {"code":"comment error!"} try: meetingid = int(kwargs['m_pk']) roleid = int(kwargs['pk']) clubid = 0 if 'c_pk' in kwargs: clubid = int(kwargs['c_pk']) if not MeetingUtil.validateClubMeetingPermission(request, clubid, meetingid): return Response({"msg":"club-meeting no matching"}, status=status.HTTP_400_BAD_REQUEST) except: pass evaluateeRole = RoleTaken.objects.get(id__exact = roleid) receiver = Person.objects.get(id__exact = evaluateeRole.ownerid) sender = Person.objects.get(id__exact = request.user.id) try: msgfname = sender.displayname except: msgfname = sender.username messageid = MessageUtil.sendFriendConversation(sender.id, msgfname, receiver.id, request.DATA["msg"]) request.DATA["meeting"] = meetingid request.DATA["roleTaken"] = roleid request.DATA["evaluator"] = request.user.id request.DATA["message"] = messageid serializer = RoleCommentSerializer(data=request.DATA) if serializer.is_valid(): serializer.save() respData["code"] = "ok" return Response(respData) return Response(respData,status=status.HTTP_400_BAD_REQUEST)
def post(self, request, *args, **kwargs): respData = {"err":""} action = 99999 pk = kwargs['pk'] clubid = 0 meetingid=0 if 'c_pk' in kwargs: clubid = int(kwargs['c_pk']) if 'm_pk' in kwargs: meetingid = int(kwargs['m_pk']) if not MeetingUtil.validateClubMeetingPermission(request, clubid, meetingid): respData['err'] = "club-meeting no matching" return Response(respData, status=status.HTTP_400_BAD_REQUEST) try: action = int(request.GET.get("action")) except: pass ##############temp code for authentication testing AnonymousUser #if isinstance(request.user,AnonymousUser): # request.user = Person.objects.get(pk=1) ############################# if action == 1: roleTaken = self.get_object(pk) if roleTaken.roletype == RoleEnum.CustomAll: respData['err'] = "Sorry, this role is not allowed to be taken." return Response(respData, status=status.HTTP_400_BAD_REQUEST) ################################################# if "userid" in request.DATA and request.DATA["userid"] > 0: request.DATA["owner"] = request.DATA["userid"] else: request.DATA["owner"] = request.user.id #---------conflicts while mult-persons try to take the same role with mobile/web--------- if roleTaken.owner: if roleTaken.owner.id != request.DATA["owner"]: respData['err'] = "Sorry, this role has been taken by {}.".format(roleTaken.name) return Response(respData, status=status.HTTP_400_BAD_REQUEST) #------------------------------------------------------ if roleTaken.roletype != RoleEnum.Speaker and "ctask" in request.DATA: del(request.DATA["ctask"]) if roleTaken.roletype != RoleEnum.Speaker and roleTaken.roletype != RoleEnum.IE \ and roleTaken.roletype != RoleEnum.TTM and roleTaken.roletype != RoleEnum.TTE \ and roleTaken.roletype != RoleEnum.Workshop and roleTaken.roletype != RoleEnum.CustomWithTitle: del(request.DATA["title"]) if roleTaken.roletype == RoleEnum.IE: if "ltask" not in request.DATA: request.DATA["ltask"]=roleTaken.ltask if self.preValidateTask(roleTaken,request) == False: respData['err'] = "Invalid task" return Response(respData, status=status.HTTP_400_BAD_REQUEST) ################################################# serializer = RoleTakenUpdSerializer(roleTaken, data=request.DATA) if serializer.is_valid(): serializer.save() self.postProcessToRelatedRoles(serializer.object) self.postProcessToActivity(serializer.object) self.postProcessToAttendance(serializer.object) del(serializer.data["owner"]) serializer.data["userid"] = roleTaken.userid serializer.data["name"] = roleTaken.name return Response(serializer.data) respData['err'] = serializer.errors return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST) elif action == 0: roleTaken = self.get_object(pk) ################################################# resetDATA = {} #---------conflicts while mult-persons try to take the same role with mobile/web--------- if roleTaken.owner and roleTaken.owner.id != request.user.id: respData['err'] = "Sorry, this role has been taken by {}.".format(roleTaken.name) return Response(respData, status=status.HTTP_400_BAD_REQUEST) #------------------------------------------------------ #handle title, Speaker/TTM/Workshop/CustomWithTitle are required if roleTaken.roletype == RoleEnum.Speaker or roleTaken.roletype == RoleEnum.TTM \ or roleTaken.roletype == RoleEnum.Workshop or roleTaken.roletype == RoleEnum.CustomWithTitle: resetDATA["title"] = roleTaken.title.split(":")[0]+":" else: resetDATA["title"] = roleTaken.title #handle duration resetDATA["ctask"] = "" resetDATA["ltask"] = "" resetDATA["owner"] = None ################################################# serializer = RoleTakenUpdSerializer(roleTaken, data=resetDATA) if serializer.is_valid(): serializer.save() self.postProcessToRelatedRoles(serializer.object) self.postProcessToActivity(serializer.object) del(serializer.data["owner"]) serializer.data["userid"] = 0 serializer.data["name"] = "" return Response(serializer.data) respData['err'] = serializer.errors return Response(respData, status=status.HTTP_400_BAD_REQUEST) pass else: respData['err'] = "Invalid Action" return Response(status=status.HTTP_400_BAD_REQUEST)
def postProcessToActivity(self,roleTaken): MeetingUtil.updateRelatedActivities(roleTaken)
def postProcessToRelatedRoles(self,roleTaken): MeetingUtil.updateRelatedRoles(roleTaken)
def preValidateTask(self,roleTaken,request): return MeetingUtil.validateTask(roleTaken.roletype, request)
def post(self, request, *args, **kwargs): meetingid = 0 respData = {"code":"Attendance Record Error!"} try: meetingid = int(kwargs['pk']) except: pass clubid = 0 if 'c_pk' in kwargs: clubid = int(kwargs['c_pk']) if not MeetingUtil.validateClubMeetingPermission(request, clubid, meetingid): return Response({"msg":"club-meeting no matching"}, status=status.HTTP_400_BAD_REQUEST) #we don't need such auto meeting mapping here if meetingid == 0: return Response(respData,status=status.HTTP_400_BAD_REQUEST) try: mtg = Meeting.objects.get(id__exact=meetingid) if "extra" in request.DATA and request.DATA["extra"] : mtg.extraattd = request.DATA["extra"] mtg.save_nover() # not changing meeting info. dont update version elif mtg.extraattd: mtg.extraattd = "" mtg.save_nover() # not changing meeting info. dont update version except: pass if "users" in request.DATA: if len(request.DATA["users"]) > 0: errorIndication = False #pre handling: reset all ars to false of this meeting self.reset_ars(meetingid) for userid in request.DATA["users"]: serializer = None requestDATA = {} requestDATA["owner"] = userid requestDATA["meeting"] = meetingid requestDATA["ar"] = True ar = self.get_ar(meetingid,userid) if ar: serializer = AddMeetingArSerializer(ar,data=requestDATA) else: serializer = AddMeetingArSerializer(data=requestDATA) if serializer.is_valid(): serializer.save() else: errorIndication = True #post handling: delete all ar&av with False self.clear_ars(meetingid) if errorIndication == False: respData["code"] = "ok" return Response(respData) else: return Response(respData,status=status.HTTP_400_BAD_REQUEST) else: self.reset_ars(meetingid) self.clear_ars(meetingid) respData["code"] = "ok" return Response(respData) return Response(respData,status=status.HTTP_400_BAD_REQUEST)
def post(self, request, *args, **kwargs): roleid = 0 action = 99999 aid = 0 respData = {"code":"like error!"} try: meetingid = int(kwargs['m_pk']) roleid = int(kwargs['pk']) clubid = 0 if 'c_pk' in kwargs: clubid = int(kwargs['c_pk']) if not MeetingUtil.validateClubMeetingPermission(request, clubid, meetingid): return Response({"msg":"club-meeting no matching"}, status=status.HTTP_400_BAD_REQUEST) action = int(request.GET.get("action")) aid = int(request.GET.get("aid")) except: pass if action == 1: if self.get_like_existing(request, meetingid, aid, roleid)==False: requestDATA = {} arrelation = ARRelation.objects.get(roletaken_id__exact=roleid, activity_id__exact=aid) requestDATA["meeting"] = meetingid requestDATA["arrelation"] = arrelation.id requestDATA["evaluator"] = request.user.id requestDATA["like"] = 1 serializer = RoleLikerSerializer(data=requestDATA) if serializer.is_valid(): serializer.save() respData["code"] = "ok" #send Club Conversation role = RoleTaken.objects.get(id__exact = roleid) owner = Person.objects.get(id__exact = role.ownerid) sender = Person.objects.get(id__exact = request.user.id) try: msgfname = sender.displayname except: msgfname = sender.username if(clubid != 0): msgtouser = clubid else: msgtouser = role.meeting.term.club.id msgcontent = owner.displayname + "'s " + role.title + " got ♥ from " + sender.displayname MessageUtil.sendClubConversation(sender.id,msgfname, msgtouser, msgcontent) return Response(respData) return Response(respData,status=status.HTTP_400_BAD_REQUEST) else: self.update_like(request,meetingid,aid,roleid,1) respData["code"] = "ok" return Response(respData) elif action == 0: self.update_like(request,meetingid,aid,roleid,0) respData["code"] = "ok" return Response(respData) else: return Response(respData,status=status.HTTP_400_BAD_REQUEST)
def post(self, request, *args, **kwargs): roleid = 0 aid = 0 respData = {"code":"stats error!"} try: meetingid = int(kwargs['m_pk']) roleid = int(kwargs['pk']) clubid = 0 if 'c_pk' in kwargs: clubid = int(kwargs['c_pk']) if not MeetingUtil.validateClubMeetingPermission(request, clubid, meetingid): return Response({"msg":"club-meeting no matching"}, status=status.HTTP_400_BAD_REQUEST) aid = int(request.GET.get("aid")) except: pass timerPermission = True counterPermission = True passedPermission = True if "timer" in request.DATA: if self.set_stats_permission(request,meetingid,RoleEnum.Timer): timerPermission = True else: timerPermission = False if "ahcount" in request.DATA: if self.set_stats_permission(request,meetingid,RoleEnum.AhCounter): counterPermission = True else: counterPermission = False if "passed" in request.DATA: if self.set_evaluating_permission(request,meetingid,roleid): passedPermission = True else: passedPermission = False if timerPermission is True and counterPermission is True and passedPermission is True: if(self.get_stats_existing(request, meetingid, aid, roleid)): self.update_stat(request,meetingid, aid, roleid) respData["code"] = "ok" if "passed" in request.DATA: self.save_comments(clubid,roleid,request) return Response(respData) else: if aid is 0: arrelation = ARRelation.objects.get(roletaken_id__exact=roleid) else: arrelation = ARRelation.objects.get(roletaken_id__exact=roleid, activity_id__exact=aid) request.DATA["meeting"] = meetingid request.DATA["arrelation"] = arrelation.id request.DATA["evaluator"] = request.user.id serializer = RoleEvaluatingSerializer(data=request.DATA) if serializer.is_valid(): serializer.save() if "passed" in request.DATA: self.save_comments(clubid,roleid,request) respData["code"] = "ok" return Response(respData) return Response(respData,status=status.HTTP_400_BAD_REQUEST) else: return Response(respData,status=status.HTTP_400_BAD_REQUEST)