Beispiel #1
0
def event_json(request):
    status, id, cookie = check_login(request, 'http://scheduler.acm.case.edu/scheduler/')
    setcookie = False
    if status == False:
        return redirect_to_cas('http://scheduler.acm.case.edu/scheduler/')
    if cookie != "":
        setcookie = True
    stu = Student.objects.get(case_id=id)
    enrolls = Enrollment.objects.filter(student__case_id=id)

    response_data = []
    for enroll in enrolls:
        event = Event.objects.get(id=enroll.event_id)
        start = request.GET.get('start', None)
        end = request.GET.get('end', None)

        start_date = dateutil.parser.parse(start)
        end_date = dateutil.parser.parse(end)

        date_to_start = event.start_date if event.start_date > start_date.date() else start_date.date()
        date_to_end = event.end_date if event.end_date < end_date.date() else end_date.date()

        for dt in rrule.rrule(rrule.DAILY, dtstart=date_to_start, until=date_to_end):
            event_data = {}
            event_data['id'] = enroll.event_id
            try:
                event_data['title'] = event.meetingtime.meeting_class.dept + ' ' + str(event.meetingtime.meeting_class.class_number)
            except Exception:
                event_data['title'] = event.customevent.event_name
            event_data['allDay'] = False

            if "Su" in event.recur_type and dt.weekday() == 6:
                event_data['start'] = str(dt.date().isoformat()) + 'T' + str(event.start_time.isoformat())
                event_data['end'] = str(dt.date().isoformat()) + 'T' + str(event.end_time.isoformat())
            elif "M" in event.recur_type and dt.weekday() == 0:
                event_data['start'] = str(dt.date().isoformat()) + 'T' + str(event.start_time.isoformat())
                event_data['end'] = str(dt.date().isoformat()) + 'T' + str(event.end_time.isoformat())
            elif "Tu" in event.recur_type and dt.weekday() == 1:
                event_data['start'] = str(dt.date().isoformat()) + 'T' + str(event.start_time.isoformat())
                event_data['end'] = str(dt.date().isoformat()) + 'T' + str(event.end_time.isoformat())
            elif "W" in event.recur_type and dt.weekday() == 2:
                event_data['start'] = str(dt.date().isoformat()) + 'T' + str(event.start_time.isoformat())
                event_data['end'] = str(dt.date().isoformat()) + 'T' + str(event.end_time.isoformat())
            elif "Th" in event.recur_type and dt.weekday() == 3:
                event_data['start'] = str(dt.date().isoformat()) + 'T' + str(event.start_time.isoformat())
                event_data['end'] = str(dt.date().isoformat()) + 'T' + str(event.end_time.isoformat())
            elif "F" in event.recur_type and dt.weekday() == 4:
                event_data['start'] = str(dt.date().isoformat()) + 'T' + str(event.start_time.isoformat())
                event_data['end'] = str(dt.date().isoformat()) + 'T' + str(event.end_time.isoformat())
            elif "Sa" in event.recur_type and dt.weekday() == 5:
                event_data['start'] = str(dt.date().isoformat()) + 'T' + str(event.start_time.isoformat())
                event_data['end'] = str(dt.date().isoformat()) + 'T' + str(event.end_time.isoformat())
            else:
                continue
            response_data.append(event_data)

    response = HttpResponse(json.dumps(response_data), content_type="application/json")
    if setcookie == True:
        response.__setitem__('Set-Cookie', cookie)
    return response
Beispiel #2
0
def share(request):
    #check to see if the user is logged in
    #if not make the user login
    status, id, cookie = check_login(request, 'http://scheduler.acm.case.edu/scheduler/instructor/')
    setcookie = False
    if status == False:
        return redirect_to_cas('http://scheduler.acm.case.edu/scheduler/instructor/')
    if cookie != "":
        setcookie = True
    share_ids = Shares.objects.values_list('shareid', flat=True)
    rand = random.randint(1111111111, 9999999999)
    while rand in share_ids:
        rand = random.randint(1111111111, 9999999999)
Beispiel #3
0
def customevent(request):
    #check to see if the user is logged in
    #if not make the user login
    status, id, cookie = check_login(request, 'http://scheduler.acm.case.edu/scheduler/instructor/')
    if status == False:
        return redirect_to_cas('http://scheduler.acm.case.edu/scheduler/instructor/')
    form = None
    if request.method == "POST":
        form = EventForm(request.POST)
        if form.is_valid():
            name = form.cleaned_data['event_title']
            start_time = form.cleaned_data['start_time']
            end_time = form.cleaned_data['end_time']
            sdate = form.cleaned_data['start_date']
            edate = form.cleaned_data['end_date']
            
            startTimeArr = parse_time(start_time)
            endTimeArr = parse_time(end_time)

            try:
                loc = form.cleaned_data['location']
            except:
                loc = ""

            dayStr = ''
            if form.cleaned_data['su']:
                dayStr += 'Su'
            if form.cleaned_data['m']:
                dayStr += 'M'
            if form.cleaned_data['tu']:
                dayStr += 'Tu'
            if form.cleaned_data['w']:
                dayStr += 'W'
            if form.cleaned_data['th']:
                dayStr += 'Th'
            if form.cleaned_data['f']:
                dayStr += 'F'
            if form.cleaned_data['sa']:
                dayStr += 'Sa'

            #event = CustomEvent(start_time=datetime.time(startTimeArr[0], startTimeArr[1]), end_time=datetime.time(endTimeArr[0], endTimeArr[1]), recur_type=days, event_name=name)
            event = CustomEvent(start_time=datetime.time(startTimeArr[0], startTimeArr[1]), end_time=datetime.time(endTimeArr[0], endTimeArr[1]), start_date=sdate, end_date=edate, recur_type=dayStr, event_name=name, location=loc)
            event.save()

            stu = Student.objects.get(case_id=id)
            enroll = Enrollment(student_id=stu.pk, event_id=event.id)
            enroll.save()
            return HttpResponseRedirect('/scheduler/')
    response = HttpResponseBadRequest('Custom Event Creation Failed')
    #response['submittedForm'] = form
    return response
Beispiel #4
0
def share(request):
    #check to see if the user is logged in
    #if not make the user login
    status, id, cookie = check_login(
        request, 'http://scheduler.acm.case.edu/scheduler/instructor/')
    setcookie = False
    if status == False:
        return redirect_to_cas(
            'http://scheduler.acm.case.edu/scheduler/instructor/')
    if cookie != "":
        setcookie = True
    share_ids = Shares.objects.values_list('shareid', flat=True)
    rand = random.randint(1111111111, 9999999999)
    while rand in share_ids:
        rand = random.randint(1111111111, 9999999999)
Beispiel #5
0
def schedule(request):
    #check to see if the user is logged in
    #if not make the user login
    status, id, cookie = check_login(request, 'http://scheduler.acm.case.edu/scheduler/')
    setcookie = False
    if status == False:
        return redirect_to_cas('http://scheduler.acm.case.edu/scheduler/')
    if cookie != "":
        setcookie = True
        
    eventForm = EventForm()

    response = render(request, 'schedule.html', {'eventForm' : eventForm, 'id' : id})
    if setcookie == True:
        response.__setitem__('Set-Cookie', cookie)
    return response
Beispiel #6
0
def customevent(request):
    #check to see if the user is logged in
    #if not make the user login
    status, id, cookie = check_login(
        request, 'http://scheduler.acm.case.edu/scheduler/instructor/')
    if status == False:
        return redirect_to_cas(
            'http://scheduler.acm.case.edu/scheduler/instructor/')
    form = None
    if request.method == "POST":
        form = EventForm(request.POST)
        if form.is_valid():
            name = form.cleaned_data['event_title']
            start_time = form.cleaned_data['start_time']
            end_time = form.cleaned_data['end_time']
            sdate = form.cleaned_data['start_date']
            edate = form.cleaned_data['end_date']

            startTimeArr = parse_time(start_time)
            endTimeArr = parse_time(end_time)

            try:
                loc = form.cleaned_data['location']
            except:
                loc = ""

            dayStr = ''
            if form.cleaned_data['su']:
                dayStr += 'Su'
            if form.cleaned_data['m']:
                dayStr += 'M'
            if form.cleaned_data['tu']:
                dayStr += 'Tu'
            if form.cleaned_data['w']:
                dayStr += 'W'
            if form.cleaned_data['th']:
                dayStr += 'Th'
            if form.cleaned_data['f']:
                dayStr += 'F'
            if form.cleaned_data['sa']:
                dayStr += 'Sa'

            #event = CustomEvent(start_time=datetime.time(startTimeArr[0], startTimeArr[1]), end_time=datetime.time(endTimeArr[0], endTimeArr[1]), recur_type=days, event_name=name)
            event = CustomEvent(start_time=datetime.time(
                startTimeArr[0], startTimeArr[1]),
                                end_time=datetime.time(endTimeArr[0],
                                                       endTimeArr[1]),
                                start_date=sdate,
                                end_date=edate,
                                recur_type=dayStr,
                                event_name=name,
                                location=loc)
            event.save()

            stu = Student.objects.get(case_id=id)
            enroll = Enrollment(student_id=stu.pk, event_id=event.id)
            enroll.save()
            return HttpResponseRedirect('/scheduler/')
    response = HttpResponseBadRequest('Custom Event Creation Failed')
    #response['submittedForm'] = form
    return response