Example #1
0
def change_meeting(request):
    #print("come here")
    meetingid = request.POST.get('id')
    meeting = Meeting.objects.get(id=meetingid)
    # delete original meeting event relationship and events
    #mres = MeetingEventRelationship.objects.filter(meeting=meeting)
    #for mre in mres:
     #   event = mre.event
     #   event.delete()
     #   mre.delete()
    description = "Notice! Meeting information is changed !! Please decide whether  \
                you will attend again!! (original meeting event is deleted automatically)\n"

    _deletemeeting(meeting)
    group_name = request.POST.get('group_name')
    group = Group.objects.get(name=group_name)
    admin = group.admin
    title = request.POST.get('changed_title')
    description += request.POST.get('changed_description')
    start_time = request.POST.get('changed_start_time')
    end_time = request.POST.get('changed_end_time')

    meeting = Meeting(group=group, title=title, description=description,
                      start_time=start_time, end_time=end_time)
    meeting.save()

    event = Event(title=meeting.title,
                  description=meeting.description, start=meeting.start_time, end=meeting.end_time)
    event.creator = admin
    calendar = Calendar.objects.get(slug=admin.username)
    event.calendar = calendar
    event.save()
    mer = MeetingEventRelationship(meeting=meeting, event=event)
    mer.save()

    memberlist = find_all_members(group, True)
    result = 'true'
    for member in memberlist:
        if member == admin:
            continue
        status = sendmeetinginvitation(admin, member, group, meeting)
        if status is False:
            result = 'false'
    data = {'valid': result}
    data = json.dumps(data)
    mimetype = 'application/json'
    return HttpResponse(data, mimetype)
Example #2
0
def add_meeting(request):
    group_name = request.POST.get('group_name')
    title = request.POST.get('title')
    description = request.POST.get('description')
    start_time = request.POST.get('start_time')
    end_time = request.POST.get('end_time')
    group = Group.objects.get(name=group_name)
    admin = group.admin
    #find time convertor
    ##save this meeting into meeting table
    meeting = Meeting(group=group, title=title,
                      description=description, start_time=start_time, end_time=end_time)
    meeting.save()
    #bai! save event for the admin
    event = Event(title=title, description=description, start=start_time, end=end_time)
    event.creator = admin
    calendar = Calendar.objects.get(slug=admin.username)
    event.calendar = calendar
    event.save()
    #bai! save meetingeventrelationship for admin
    mer = MeetingEventRelationship(meeting=meeting, event=event)
    mer.save()

    ##send invitation to all member
    ###find all member
    memberlist = find_all_members(group, True)
    result = 'false'
    for member in memberlist:
        if member == admin:
            continue
        status = sendmeetinginvitation(admin, member, group, meeting)
        if status == True:
            result = 'true'
        else:
            result = 'false'
    data = {'valid': result}
    data = json.dumps(data)
    mimetype = 'application/json'
    return HttpResponse(data, mimetype)
Example #3
0
def accept_meeting(request):
    meeting_info = request.POST.getlist('meeting_info[]')
    username = request.POST.get('username')
    group_name = meeting_info[2]
    title = meeting_info[0]
    description = meeting_info[1]
    start_time = meeting_info[3]
    end_time = meeting_info[4]
    meetingid = meeting_info[5]

    # judge whether the member is in the meeting already
    meeting = Meeting.objects.get(id=meetingid)
    mers = MeetingEventRelationship.objects.filter(meeting=meeting)
    result = 'false'
    for mer in mers:
        if mer.event.creator.username == username:
            result = 'true'
            break

    if result == 'false':
        group = Group.objects.get(name=group_name)
        #send notification to admin
        admin = Group.objects.get(name=group_name).admin
        member = User.objects.get(username=username)
        message = username+ ' will attend the meeting ' + title + 'of group ' + group_name + '.'
        status = messageHandler.send_message(member, admin, message)
        if status == 200:
            result = 'true'
        else:
            result = 'false'
        if '-' in start_time:
            def convert(ddatetime):
                if ddatetime:
                    # ddatetime = ddatetime.split(' ')[0]
                    ddatetime = ddatetime.split('+')[0]
                    print("ddatetime is " + ddatetime)
                    time = datetime.datetime.strptime(ddatetime, '%Y-%m-%dT%H:%M:%S')
                    return time
        else:
            def convert(ddatetime):
                return datetime.datetime.utcfromtimestamp(float(ddatetime))

        #store an event of that user
        ##add event
        start_time = convert(start_time)
        end_time = convert(end_time)
        if settings.USE_TZ:
        # If USE_TZ is True, make start and end dates aware in UTC timezone
            utc = pytz.UTC
            start_time = utc.localize(start_time)
            end_time = utc.localize(end_time)
        event = Event(title=title, description=description, start=start_time, end=end_time)
        user = User.objects.get(username=username)
        calendar = Calendar.objects.get(slug=username)
        event.creator = user
        event.calendar = calendar
        event.save()

        # accept the invitation
        messageHandler.set_meetinginvitation_accept(member, group, meeting)
        #increase attendees

        # add meeting event relationship
        mer = MeetingEventRelationship(meeting=meeting, event=event)
        mer.save()
    res = {'valid': result}
    res = json.dumps(res)
    mimetype = 'application/json'
    return HttpResponse(res, mimetype)