示例#1
0
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
示例#2
0
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
示例#3
0
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