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
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)
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
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)
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
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