def accept_mentorship_request(request): user = request.user requestor = request.GET.get('requestor') requestor = User.objects.get(username=requestor) status = False if MenteeSentRequest.objects.filter( mentor=user.account.mentor, mentee=requestor.account.mentee).exists(): # executes only if, requestor is not already a mentee of the user and it is the requestor that sent the # mentorship request to the user MyMentee.objects.create(mentor=user.account.mentor, mentee=requestor.account.mentee) MyMentor.objects.create(mentor=user.account.mentor, mentee=requestor.account.mentee) MenteeSentRequest.objects.filter( mentor=user.account.mentor, mentee=requestor.account.mentee).delete() MentorshipRequestMessage.objects.filter( mentor=user.account.mentor, mentee=requestor.account.mentee).delete() send_email_custom( [requestor.email], 'Mentorship Request Accepted!', f'{request.user.username} has accepted your mentorship request!') status = True return JsonResponse({"success": status})
def reject_mentorship_request(request): user = request.user to_reject = request.GET.get('requestor') to_reject = User.objects.get(username=to_reject) reject_reason = request.GET.get('reject_reason') status = False if MenteeSentRequest.objects.filter( mentor=user.account.mentor, mentee=to_reject.account.mentee).exists(): # Delete a request only if the request exists MenteeSentRequest.objects.filter( mentor=user.account.mentor, mentee=to_reject.account.mentee).delete() MentorshipRequestMessage.objects.filter( mentor=user.account.mentor, mentee=to_reject.account.mentee).delete() RejectedMentorshipRequest.objects.create( mentor=user.account.mentor, mentee=to_reject.account.mentee, reject_reason=reject_reason) send_email_custom( to=[user.email, to_reject.email], subject='Mentorship Request Rejected', body= f'{user.first_name} rejected the mentorship request sent by {to_reject.first_name}.\nREASON: {reject_reason}' ) status = True return JsonResponse({"success": status})
def send_mentorship_request(request): user = request.user requestee = request.GET.get('requestee') requestee = User.objects.get(username=requestee) sop = request.GET.get('sop') expectations = request.GET.get('expectations') commitment = request.GET.get('commitment') status = False status_code = 0 if MenteeSentRequest.objects.filter( mentee=user.account.mentee, mentor=requestee.account.mentor).exists(): # Checks if mentee has already sent a request to the mentor status_code = 1 elif MyMentor.objects.filter(mentee=user.account.mentee, mentor=requestee.account.mentor).exists(): # Checks if the user is already a mentee of the requestee status_code = 2 elif len(MenteeSentRequest.objects.filter( mentee=user.account.mentee)) + len( MyMentor.objects.filter(mentee=user.account.mentee)) == 3: # If mentee has already sent 3 requests status_code = 3 elif len(MyMentee.objects.filter(mentor=requestee.account.mentor)) + len( MenteeSentRequest.objects.filter( mentor=requestee.account.mentor)) == 5: # If mentor already has 5 mentees (or has received 5 requests) status_code = 4 else: # Everything is fine status = True MentorshipRequestMessage.objects.create( mentee=user.account.mentee, mentor=requestee.account.mentor, sop=sop, expectations=expectations, commitment=commitment) MenteeSentRequest.objects.create(mentee=user.account.mentee, mentor=requestee.account.mentor) send_email_custom( to=[user.email], subject="Request sent", body=f"Your request to {requestee.first_name} has been sent!") send_email_custom(to=[requestee.email], subject="Request received", body=f"You have a request from {user.first_name}.") return JsonResponse({"success": status, "status_code": status_code})
def edit_meeting(request): user = request.user req = json.loads(request.body) meeting_id = req['id'] meeting_title = req['title'] meeting_agenda = req['agenda'] meeting_url = req['meeting_url'] meeting_time = req['time'] success = True meeting = Meeting.objects.get(id=meeting_id) #Check if the current user is either the creator or the guest of the meeting if not (meeting.creator == user.account or meeting.guest == user.account): #Some random user is trying to change the details success = False else: meeting.title = meeting_title meeting.agenda = meeting_agenda meeting.meeting_url = meeting_url meeting.time = meeting_time meeting.save() creator, guest = meeting.creator.user, meeting.guest.user email_subject = "Meeting updated" email_body = """Meeting updated by {}. New meeting details: Creator: {} Guest: {} Title: {} Agenda: {} URL: {} Time: {} """.replace('\t', '').format(user.username, creator.username, guest.username, meeting.title, meeting.agenda, meeting.meeting_url, meeting.time) send_email_custom(to=[creator.email, guest.email], subject=email_subject, body=email_body) return JsonResponse({'success': success})
def add_meeting(request): user = request.user req = json.loads(request.body) guest_name = req.get('guest_name') if not guest_name: print('[ERROR] guest_name is None') return JsonResponse({'success': False}) guest = User.objects.filter(username=guest_name).first() req['time'] = make_aware(datetime.strptime(req['time'], '%Y-%m-%dT%H:%M')) meeting = Meeting.objects.create(creator=user.account, guest=guest.account, title=req['title'], agenda=req['agenda'], time=req['time'], meeting_url=req['meeting_url']) response = {'success': True} email_subject = "Meeting created" email_body = """Meeting details: Creator: {} Guest: {} Title: {} Agenda: {} URL: {} Time: {} """.replace('\t', '').format(user.username, guest.username, meeting.title, meeting.agenda, meeting.meeting_url, meeting.time) send_email_custom(to=[user.email, guest.email], subject=email_subject, body=email_body) return JsonResponse(response)