Пример #1
0
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})
Пример #2
0
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})
Пример #3
0
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})
Пример #4
0
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})
Пример #5
0
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)