def load_data(request): """ Load data from uploaded file or disk. Note: A uploaded file will be saved on `SMUGGLER_FIXTURE_DIR` if the submit button with name "_loadandsave" was pressed. """ form = ImportFileForm() if request.method == 'POST': data = [] if request.POST.has_key('_load') or request.POST.has_key('_loadandsave'): form = ImportFileForm(request.POST, request.FILES) if form.is_valid(): uploaded_file = request.FILES['file'] file_name = uploaded_file.name file_format = file_name.split('.')[-1] if request.POST.has_key('_loadandsave'): destination_path = os.path.join(SMUGGLER_FIXTURE_DIR, file_name) save_uploaded_file_on_disk(uploaded_file, destination_path) file_data = open(destination_path, 'r') elif uploaded_file.multiple_chunks(): file_data = open(uploaded_file.temporary_file_path(), 'r') else: file_data = uploaded_file.read() data.append((file_format, file_data)) elif request.POST.has_key('_loadfromdisk'): query_dict = request.POST.copy() del(query_dict['_loadfromdisk']) del(query_dict['csrfmiddlewaretoken']) selected_files = query_dict.values() for file_name in selected_files: file_path = os.path.join(SMUGGLER_FIXTURE_DIR, file_name) file_format = file_name.split('.')[-1] file_data = open(file_path, 'r') data.append((file_format, file_data)) counter = 0 for format, stream in data: objects = serializers.deserialize(format, stream) for obj in objects: counter += 1 obj.save() if data: user_msg = ('%(obj_count)d object(s) from %(file_count)d file(s) ' 'loaded with success.') # TODO: pluralize user_msg = _(user_msg) % { 'obj_count': counter, 'file_count': len(data) } messages.add_message(request, messages.INFO, user_msg) context = { 'files_available': get_file_list(SMUGGLER_FIXTURE_DIR) \ if SMUGGLER_FIXTURE_DIR else [], 'smuggler_fixture_dir': SMUGGLER_FIXTURE_DIR, 'import_file_form': form, } return render_to_response('smuggler/load_data_form.html', context, context_instance=RequestContext(request))
def load_data(request): """ Load data from uploaded file or disk. Note: A uploaded file will be saved on `SMUGGLER_FIXTURE_DIR` if the submit button with name "_loadandsave" was pressed. """ form = ImportFileForm() if request.method == 'POST': data = [] if request.POST.has_key('_load') or request.POST.has_key( '_loadandsave'): form = ImportFileForm(request.POST, request.FILES) if form.is_valid(): uploaded_file = request.FILES['file'] file_name = uploaded_file.name file_format = file_name.split('.')[-1] if request.POST.has_key('_loadandsave'): destination_path = os.path.join(SMUGGLER_FIXTURE_DIR, file_name) save_uploaded_file_on_disk(uploaded_file, destination_path) file_data = open(destination_path, 'r') elif uploaded_file.multiple_chunks(): file_data = open(uploaded_file.temporary_file_path(), 'r') else: file_data = uploaded_file.read() data.append((file_format, file_data)) elif request.POST.has_key('_loadfromdisk'): query_dict = request.POST.copy() del (query_dict['_loadfromdisk']) del (query_dict['csrfmiddlewaretoken']) selected_files = query_dict.values() for file_name in selected_files: file_path = os.path.join(SMUGGLER_FIXTURE_DIR, file_name) file_format = file_name.split('.')[-1] file_data = open(file_path, 'r') data.append((file_format, file_data)) if data: try: obj_count = load_requested_data(data) user_msg = ( '%(obj_count)d object(s) from %(file_count)d file(s) ' 'loaded with success.') # TODO: pluralize user_msg = _(user_msg) % { 'obj_count': obj_count, 'file_count': len(data) } messages.add_message(request, messages.INFO, user_msg) except (IntegrityError, ObjectDoesNotExist), e: messages.add_message( request, messages.ERROR, _(u'An exception occurred while loading data: %s') % unicode(e))
def load_data(request): """ Load data from uploaded file or disk. Note: A uploaded file will be saved on `SMUGGLER_FIXTURE_DIR` if the submit button with name "_loadandsave" was pressed. """ form = ImportFileForm() if request.method == "POST": data = [] if request.POST.has_key("_load") or request.POST.has_key("_loadandsave"): form = ImportFileForm(request.POST, request.FILES) if form.is_valid(): uploaded_file = request.FILES["file"] file_name = uploaded_file.name file_format = file_name.split(".")[-1] if request.POST.has_key("_loadandsave"): destination_path = os.path.join(SMUGGLER_FIXTURE_DIR, file_name) save_uploaded_file_on_disk(uploaded_file, destination_path) file_data = open(destination_path, "r") elif uploaded_file.multiple_chunks(): file_data = open(uploaded_file.temporary_file_path(), "r") else: file_data = uploaded_file.read() data.append((file_format, file_data)) elif request.POST.has_key("_loadfromdisk"): query_dict = request.POST.copy() del (query_dict["_loadfromdisk"]) del (query_dict["csrfmiddlewaretoken"]) selected_files = query_dict.values() for file_name in selected_files: file_path = os.path.join(SMUGGLER_FIXTURE_DIR, file_name) file_format = file_name.split(".")[-1] file_data = open(file_path, "r") data.append((file_format, file_data)) counter = 0 for format, stream in data: objects = serializers.deserialize(format, stream) for obj in objects: counter += 1 obj.save() if data: user_msg = "%(obj_count)d object(s) from %(file_count)d file(s) " "loaded with success." # TODO: pluralize user_msg = _(user_msg) % {"obj_count": counter, "file_count": len(data)} request.user.message_set.create(message=user_msg) context = { "files_available": get_file_list(SMUGGLER_FIXTURE_DIR) if SMUGGLER_FIXTURE_DIR else [], "smuggler_fixture_dir": SMUGGLER_FIXTURE_DIR, "import_file_form": form, } return render_to_response("smuggler/load_data_form.html", context, context_instance=RequestContext(request))
def load_data(request): """ Load data from uploaded file or disk. Note: A uploaded file will be saved on `SMUGGLER_FIXTURE_DIR` if the submit button with name "_loadandsave" was pressed. """ form = ImportFileForm() if request.method == 'POST': data = [] if request.POST.has_key('_load') or request.POST.has_key('_loadandsave'): form = ImportFileForm(request.POST, request.FILES) if form.is_valid(): uploaded_file = request.FILES['file'] file_name = uploaded_file.name file_format = file_name.split('.')[-1] if request.POST.has_key('_loadandsave'): destination_path = os.path.join(SMUGGLER_FIXTURE_DIR, file_name) save_uploaded_file_on_disk(uploaded_file, destination_path) file_data = open(destination_path, 'r') elif uploaded_file.multiple_chunks(): file_data = open(uploaded_file.temporary_file_path(), 'r') else: file_data = uploaded_file.read() data.append((file_format, file_data)) elif request.POST.has_key('_loadfromdisk'): query_dict = request.POST.copy() del(query_dict['_loadfromdisk']) del(query_dict['csrfmiddlewaretoken']) selected_files = query_dict.values() for file_name in selected_files: file_path = os.path.join(SMUGGLER_FIXTURE_DIR, file_name) file_format = file_name.split('.')[-1] file_data = open(file_path, 'r') data.append((file_format, file_data)) if data: try: obj_count = load_requested_data(data) user_msg = ('%(obj_count)d object(s) from %(file_count)d file(s) ' 'loaded with success.') # TODO: pluralize user_msg = _(user_msg) % { 'obj_count': obj_count, 'file_count': len(data) } messages.add_message(request, messages.INFO, user_msg) except (IntegrityError, ObjectDoesNotExist), e: messages.add_message(request, messages.ERROR, _(u'An exception occurred while loading data: %s') % unicode(e))