def user_calendar(request, token): user = get_user_by_token_or_404(token, purpose='user-request-calendar') three_months_ago = timezone.now() - timedelta(days=31 * 3) queryset = FoiRequest.objects.filter( user=user ).filter( Q(due_date__gte=three_months_ago) | Q(last_message__gte=three_months_ago) ).select_related('law') cal = icalendar.Calendar() cal.add('prodid', '-//{site_name} //{domain}//'.format( site_name=settings.SITE_NAME, domain=settings.SITE_URL.split('/')[-1] )) cal.add('version', '2.0') cal.add('method', 'PUBLISH') for obj in queryset: add_ical_events(obj, cal) response = HttpResponse(cal.to_ical(), content_type='text/calendar; charset=utf-8') response['Content-Disposition'] = 'attachment; filename=events.ics' return response
def get_queryset(self): token = self.kwargs['token'] user = get_user_by_token_or_404(token, purpose='user-request-feed') self.filtered_objs = { 'user': user } self.filter_data = { 'user': token } return FoiRequest.objects.filter(user=user)