def export_list(request, username, id_string, export_type): if export_type == Export.GDOC_EXPORT: redirect_url = reverse( export_list, kwargs={ 'username': username, 'id_string': id_string, 'export_type': export_type}) token = _get_google_token(request, redirect_url) if isinstance(token, HttpResponse): return token owner = get_object_or_404(User, username=username) xform = get_object_or_404(XForm, id_string=id_string, user=owner) if not has_permission(xform, owner, request): return HttpResponseForbidden(_(u'Not shared.')) if should_create_new_export(xform, export_type): try: create_async_export( xform, export_type, query=None, force_xlsx=True) except Export.ExportTypeError: return HttpResponseBadRequest( _("%s is not a valid export type" % export_type)) context = RequestContext(request) context.username = owner.username context.xform = xform # TODO: better output e.g. Excel instead of XLS context.export_type = export_type context.export_type_name = Export.EXPORT_TYPE_DICT[export_type] exports = Export.objects.filter(xform=xform, export_type=export_type)\ .order_by('-created_on') context.exports = exports return render_to_response('export_list.html', context_instance=context)
def create_export(request, username, id_string, export_type): owner = get_object_or_404(User, username=username) xform = get_object_or_404(XForm, id_string=id_string, user=owner) if not has_permission(xform, owner, request): return HttpResponseForbidden(_(u'Not shared.')) query = request.POST.get("query") force_xlsx = request.POST.get('xlsx') == 'true' try: create_async_export(xform, export_type, query, force_xlsx) except Export.ExportTypeError: return HttpResponseBadRequest( _("%s is not a valid export type" % export_type)) else: audit = { "xform": xform.id_string, "export_type": export_type } audit_log(Actions.EXPORT_CREATED, request.user, owner, _("Created %(export_type)s export on '%(id_string)s'.") %\ { 'export_type': export_type.upper(), 'id_string': xform.id_string, }, audit, request) return HttpResponseRedirect(reverse( export_list, kwargs={ "username": username, "id_string": id_string, "export_type": export_type }) )
def create_export(request, username, id_string, export_type): owner = get_object_or_404(User, username=username) xform = get_object_or_404(XForm, id_string=id_string, user=owner) if not has_permission(xform, owner, request): return HttpResponseForbidden(_(u'Not shared.')) query = request.POST.get("query") force_xlsx = request.POST.get('xls') != 'true' # export options group_delimiter = request.POST.get("options[group_delimiter]", '/') if group_delimiter not in ['.', '/']: return HttpResponseBadRequest( _("%s is not a valid delimiter" % group_delimiter)) # default is True, so when dont_.. is yes # split_select_multiples becomes False split_select_multiples = request.POST.get( "options[dont_split_select_multiples]", "no") == "no" options = { 'group_delimiter': group_delimiter, 'split_select_multiples': split_select_multiples } try: create_async_export(xform, export_type, query, force_xlsx, options) except Export.ExportTypeError: return HttpResponseBadRequest( _("%s is not a valid export type" % export_type)) else: audit = { "xform": xform.id_string, "export_type": export_type } audit_log( Actions.EXPORT_CREATED, request.user, owner, _("Created %(export_type)s export on '%(id_string)s'.") % { 'export_type': export_type.upper(), 'id_string': xform.id_string, }, audit, request) return HttpResponseRedirect(reverse( export_list, kwargs={ "username": username, "id_string": id_string, "export_type": export_type }) )
def create_export(request, username, id_string, export_type): owner = get_object_or_404(User, username=username) xform = get_object_or_404(XForm, id_string=id_string, user=owner) if not has_permission(xform, owner, request): return HttpResponseForbidden(_(u'Not shared.')) query = request.POST.get("query") force_xlsx = request.POST.get('xlsx') == 'true' try: create_async_export(xform, export_type, query, force_xlsx) except Export.ExportTypeError: return HttpResponseBadRequest(_("%s is not a valid export type" % export_type)) else: return HttpResponseRedirect( reverse(export_list, kwargs={"username": username, "id_string": id_string, "export_type": export_type } ) )