def vote_results_csv(request):
ctx = request.context
user_id = authenticated_userid(request)
if not user_id:
raise HTTPUnauthorized
histogram = request.GET.get('histogram', None)
if histogram:
try:
histogram = int(histogram)
except ValueError as e:
raise HTTPBadRequest(e)
if histogram > 25:
raise HTTPBadRequest(
"Please select at most 25 bins in the histogram.")
widget = ctx._instance.widget
if widget.activity_state != "ended":
permissions = ctx.get_permissions()
if P_ADMIN_DISC not in permissions:
raise HTTPUnauthorized()
output = BytesIO()
output_utf8 = TextIOWrapper(output, encoding='utf-8')
ctx._instance.csv_results(output_utf8, histogram)
output_utf8.detach()
output.seek(0)
return Response(body_file=output, content_type='text/csv', charset="utf-8")
评论列表
文章目录