def get_events(request, child_id): if child_id: if not re.match('^[0-9]+$', child_id): raise Exception('Invalid input') try: child = Child.objects.get(id=child_id) except Child.DoesNotExist: raise Exception("Invalid input") cv = ChildView(user=request.user, child=child) if not cv.can_view_child_schedule: raise Exception("You do not have permissions for this") start, end = get_period_date(request.GET) event_list = list( child.events.select_related('event').filter( event__start__gte=start, event__end__lte=end)) # TODO filter out 'unavailable' events. select_related_generic_prop(event_list, 'activity', 'event') return_list = process_event_list_for_fullcalendar(event_list) return HttpResponse(simplejson.dumps(return_list, default=dthandler), mimetype='application/javascript')
def get_condensed_calendar(request, child_id, **kwargs): if child_id: if not re.match('^[0-9]+$',child_id): raise Exception('Invalid input') try: child = Child.objects.get(id=child_id) except Child.DoesNotExist: raise Exception("Invalid input") childview = create_childview(user=request.user, child=child) if not childview.can_view_child_schedule: raise Exception("No permissions for this") else: raise Exception('Invalid input') start = datetime.now() start = start.replace(hour=0,minute=1,second=0) end = start + timedelta(days=7, hours=2) end = end.replace(hour=0,minute=1,second=0) days = [] day_to_array_map = {} day_counter = 0 current_day = start event_day_list = [] while not current_day.day == end.day: day = current_day.strftime('%d') day_to_array_map[day] = day_counter day_counter = day_counter + 1 event_day_list.append([]) current_day = current_day + timedelta(days=1) event_list = list(child.events.select_related('event').filter(event__start__gte = start, event__end__lte = end)) select_related_generic_prop(event_list, 'activity','event') max_events = 3 for ep in event_list: if not ep.status == '1' and not ep.status == '5': ev_day = ep.event.start.strftime('%d') ev_start = ep.event.start.strftime('%I:%M %p') ev_status = ep.status ev_index = day_to_array_map[ev_day] if len(event_day_list[ev_index]) < max_events: activity = ep.event.activity event_day_list[ev_index].append({ 'direct_url':activity.direct_url, 'type':activity.type, 'start': ev_start, 'status': ev_status, 'summary':activity.summary() }) return HttpResponse(simplejson.dumps(event_day_list), mimetype='application/javascript')
def get_events(request, child_id): if child_id: if not re.match('^[0-9]+$',child_id): raise Exception('Invalid input') try: child = Child.objects.get(id=child_id) except Child.DoesNotExist: raise Exception("Invalid input") cv = ChildView(user=request.user, child=child) if not cv.can_view_child_schedule: raise Exception("You do not have permissions for this") start, end = get_period_date(request.GET) event_list = list(child.events.select_related('event').filter(event__start__gte = start, event__end__lte = end)) # TODO filter out 'unavailable' events. select_related_generic_prop(event_list, 'activity','event') return_list = process_event_list_for_fullcalendar(event_list) return HttpResponse(simplejson.dumps(return_list, default=dthandler), mimetype='application/javascript')
def get_condensed_calendar(request, child_id, **kwargs): if child_id: if not re.match('^[0-9]+$', child_id): raise Exception('Invalid input') try: child = Child.objects.get(id=child_id) except Child.DoesNotExist: raise Exception("Invalid input") childview = create_childview(user=request.user, child=child) if not childview.can_view_child_schedule: raise Exception("No permissions for this") else: raise Exception('Invalid input') start = datetime.now() start = start.replace(hour=0, minute=1, second=0) end = start + timedelta(days=7, hours=2) end = end.replace(hour=0, minute=1, second=0) days = [] day_to_array_map = {} day_counter = 0 current_day = start event_day_list = [] while not current_day.day == end.day: day = current_day.strftime('%d') day_to_array_map[day] = day_counter day_counter = day_counter + 1 event_day_list.append([]) current_day = current_day + timedelta(days=1) event_list = list( child.events.select_related('event').filter(event__start__gte=start, event__end__lte=end)) select_related_generic_prop(event_list, 'activity', 'event') max_events = 3 for ep in event_list: if not ep.status == '1' and not ep.status == '5': ev_day = ep.event.start.strftime('%d') ev_start = ep.event.start.strftime('%I:%M %p') ev_status = ep.status ev_index = day_to_array_map[ev_day] if len(event_day_list[ev_index]) < max_events: activity = ep.event.activity event_day_list[ev_index].append({ 'direct_url': activity.direct_url, 'type': activity.type, 'start': ev_start, 'status': ev_status, 'summary': activity.summary() }) return HttpResponse(simplejson.dumps(event_day_list), mimetype='application/javascript')