def user_logs_download(request, team_id): PARAM_USER_ID = "user" PARAM_FORMAT = "format" team = Team.objects.get(id=team_id) if not team.is_member(request.user) and not team.is_admin_account( request.user): raise Http404 download_format = request.GET.get(PARAM_FORMAT, 'csv') start, limit = utils.get_query_start_limit_dj(request) if limit > 400: limit = 400 user_id = request.GET.get(PARAM_USER_ID) logs = UserLog.objects.filter(user__id=user_id, team=team)[start:limit] output = io.BytesIO() writer = csv.writer(output) writer.writerow(["Date", "Action"]) for log in logs: writer.writerow( [log.created.strftime("%Y-%m-%d %H:%M"), log.action_type]) output = output.getvalue() response = HttpResponse(output) response['content_type'] = 'application/{0}'.format(download_format) response[ 'Content-Disposition'] = 'attachment;filename=attendance.{0}'.format( download_format) return response
def user_plans_download(request, team_id): PARAM_USER_ID = "user" PARAM_FORMAT = "format" team = Team.objects.get(id=team_id) if not team.is_member(request.user) and not team.is_admin_account( request.user): raise Http404 download_format = request.GET.get(PARAM_FORMAT, 'csv') start, limit = utils.get_query_start_limit_dj(request) if limit > 400: limit = 400 user_id = request.GET.get(PARAM_USER_ID) plan = TourPlan.objects.filter(user__id=user_id, team=team)[start:limit] output = io.BytesIO() writer = csv.writer(output) writer.writerow(["Date", "Action"]) for plan in plan: writer.writerow([plan.dated, plan.data]) response = HttpResponse(output.getvalue()) response['content_type'] = 'application/{0}'.format(download_format) response['Content-Disposition'] = 'attachment;filename=plans.{0}'.format( download_format) return response
def items_download(request, team_id): team = Team.objects.get(id=team_id) if not team.is_member(request.user) and not team.is_admin_account( request.user): raise Http404 PARAM_QUERY = 'query' PARAM_FILTERS = 'filters' PARAM_FORMAT = 'format' download_format = request.GET.get(PARAM_FORMAT, 'csv') search_options = {} query = request.GET.get(PARAM_QUERY) if query: search_options['query'] = query filters = request.GET.get(PARAM_FILTERS, '') if filters: search_options['filters'] = filters start, limit = utils.get_query_start_limit_dj(request) items = solr.download_items(team.id, search_options, start, limit, download_format) response = HttpResponse(items) response['content_type'] = 'application/{0}'.format(download_format) response['Content-Disposition'] = 'attachment;filename=items.{0}'.format( download_format) return response