def get_listable_events_all(offset,span): """ Get upcoming events for a given number of weeks, including those not yet meant to be shown publically. """ begin = begin_week(datetime.today())+timedelta(days=7*offset) end = begin + timedelta(days=7*span) events = Event.objects.order_by('start').filter(finish__gte=begin) return (begin.date(),end.date(),events)
def get_listable_events_all(offset, span): """ Get upcoming events for a given number of weeks, including those not yet meant to be shown publically. """ begin = begin_week(datetime.today()) + timedelta(days=7 * offset) end = begin + timedelta(days=7 * span) events = Event.objects.order_by('start').filter(finish__gte=begin) return (begin.date(), end.date(), events)
def events_list(request): if request.user.is_staff: begin,end,events = get_listable_events_all(0,10) else: begin,end,events = get_listable_events(0,10) lookup = defaultdict(lambda: []) for event in events: lookup[begin_week(event.start)].append(event) lookup = map(lambda (begin,events): (Week(begin),events),sorted(lookup.items())) return render_to_response('events/list.html', { 'breadcrumbs': [('/','home'),('/events/','events')], 'events':lookup, 'future':Event.objects.in_future().select_related('type'), },context_instance=RequestContext(request,{},[path_processor]))
def calendar(request, delta): ''' Main Calendar view for website presents a Table of events for the current week, and 4 successors ''' offset = int(delta) if request.user.is_staff: begin, end, events = get_listable_events_all(offset, 4) else: begin, end, events = get_listable_events(offset, 4) # lookup :: BEGIN_WEEK -> DAY -> EVENT lookup = defaultdict(lambda: defaultdict(lambda: [])) for event in events: for event_date in event.days(): lookup[begin_week(event_date)][event_date.weekday()].append(event) # tidy information iter, events = begin, [] while iter <= end: week_vals = [] for i in range(0, 7): iter_date = iter + timedelta(i) if (iter == begin and i == 0) or iter_date.day == 1: val = month(iter_date.month) else: val = "" week_vals.append((val + " " + str(iter_date.day), lookup[iter][i])) events.append((safe_week_for(iter), week_vals)) iter += a_week return render_to_response('events/calendar.html', { 'breadcrumbs': [('/', 'home'), ('/events/', 'events'), ('/events/calendar/', 'calendar')], 'events': events, 'current': date.today(), 'prev': offset - 1, 'next': offset + 1, 'future': Event.objects.in_future().select_related('type'), }, context_instance=RequestContext( request, {}, [path_processor]))
def events_list(request): if request.user.is_staff: begin, end, events = get_listable_events_all(0, 10) else: begin, end, events = get_listable_events(0, 10) lookup = defaultdict(lambda: []) for event in events: lookup[begin_week(event.start)].append(event) lookup = map(lambda (begin, events): (Week(begin), events), sorted(lookup.items())) return render_to_response( 'events/list.html', { 'breadcrumbs': [('/', 'home'), ('/events/', 'events')], 'events': lookup, 'future': Event.objects.in_future().select_related('type'), }, context_instance=RequestContext(request, {}, [path_processor]))
def calendar(request,delta): ''' Main Calendar view for website presents a Table of events for the current week, and 4 successors ''' offset = int(delta) if request.user.is_staff: begin,end,events = get_listable_events_all(offset,4) else: begin,end,events = get_listable_events(offset,4) # lookup :: BEGIN_WEEK -> DAY -> EVENT lookup = defaultdict(lambda: defaultdict(lambda:[])) for event in events: for event_date in event.days(): lookup[begin_week(event_date)][event_date.weekday()].append(event) # tidy information iter,events = begin,[] while iter <= end: week_vals = [] for i in range(0,7): iter_date = iter+timedelta(i) if (iter==begin and i==0) or iter_date.day==1: val = month(iter_date.month) else: val = "" week_vals.append((val+" "+str(iter_date.day),lookup[iter][i])) events.append((safe_week_for(iter),week_vals)) iter += a_week return render_to_response('events/calendar.html',{ 'breadcrumbs': [('/','home'),('/events/','events'),('/events/calendar/','calendar')], 'events':events, 'current':date.today(), 'prev':offset-1, 'next':offset+1, 'future':Event.objects.in_future().select_related('type'), },context_instance=RequestContext(request,{},[path_processor]))
def get_listable_events(offset, span): begin = begin_week(datetime.today()) + timedelta(days=7 * offset) end = begin + timedelta(days=7 * span) events = Event.objects.order_by('start').filter(finish__gte=begin).exclude( displayFrom__gte=datetime.now()) return (begin.date(), end.date(), events)
def get_listable_events(offset,span): begin = begin_week(datetime.today())+timedelta(days=7*offset) end = begin + timedelta(days=7*span) events = Event.objects.order_by('start').filter(finish__gte=begin).exclude(displayFrom__gte=datetime.now()) return (begin.date(),end.date(),events)