def start_conversion_job(request, client_job_token): if request.method == 'POST': # Read POST values POST_dict = request.POST.dict() export_format_name = POST_dict['export_format'].strip() del POST_dict['export_format'] source_srs = POST_dict['source_srs'].strip() del POST_dict['source_srs'] target_srs = POST_dict['target_srs'].strip() del POST_dict['target_srs'] simplify_parameter = POST_dict['simplify_parameter'].strip() del POST_dict['simplify_parameter'] download_name = POST_dict['download_name'].strip() del POST_dict['download_name'] if len(download_name) > 10: download_name = download_name[0:7] + '...' client_ip = get_client_ip(request) client_language = get_client_language(request) client_user_agent = get_client_user_agent(request) session_key = request.session.session_key job_identifier = jobidentification.get_new_job_identifier_by_client_job_token( session_key, client_job_token) job_id = job_identifier.job_id if job_id == '': return HttpResponseServerError('Error: Job Token is not valid.') job_handler = JobHandler(job_identifier) log_handler = LogHandler(job_identifier) download_handler = DownloadHandler(job_identifier) file_matcher = FileMatcher(POST_dict) for file_match in file_matcher.get_matches(): job_handler.add_file_match( job_handler.get_upload_folder_path(), file_match.get_file_dict(), file_match.get_ogr_format_name(), file_match.is_archive(), file_match.is_valid()) format_information = OgrFormat.get_format_information_by_name( export_format_name) if format_information is not None: job_handler.set_export_format_name(format_information.ogr_name) for shell_parameter in format_information.additional_parameters: if shell_parameter.use_for_writing: job_handler.add_shell_parameter( shell_parameter.prefix, shell_parameter.parameter_name, shell_parameter.parameter_value, shell_parameter.value_quotation_marks) for global_shell_parameter in GlobalOgrShellParameter.get_active_parameters(): job_handler.add_shell_parameter_object(global_shell_parameter) job_handler.set_export_format_name(export_format_name) job_handler.set_source_srs(source_srs) job_handler.set_target_srs(target_srs) job_handler.set_simplify_parameter(simplify_parameter) download_handler.set_download_caption(download_name) log_handler.set_start_time() log_handler.set_client_ip(client_ip) log_handler.set_client_language(client_language) log_handler.set_client_user_agent(client_user_agent) log_handler.set_input_type('files') log_handler.set_export_format_name( job_handler.get_export_format_name()) log_handler.set_source_srs(job_handler.get_source_srs()) log_handler.set_target_srs(job_handler.get_target_srs()) log_handler.set_simplify_parameter( job_handler.get_simplify_parameter()) jobprocessing.initialize_conversion_job(job_identifier) return HttpResponse('success') else: return redirect_to_main_page(request)
def convert_webservice(request, client_job_token): if request.method == 'POST': POST_dict = request.POST.dict() webservice_url = POST_dict['webservice_url'].strip() export_format_name = POST_dict['export_format'].strip() source_srs = POST_dict['source_srs'].strip() target_srs = POST_dict['target_srs'].strip() simplify_parameter = POST_dict['simplify_parameter'].strip() download_name = POST_dict['download_name'].strip() if len(download_name) > 10: download_name = download_name[0:7] + '...' client_ip = get_client_ip(request) client_language = get_client_language(request) client_user_agent = get_client_user_agent(request) session_key = request.session.session_key job_identifier = jobidentification.get_new_job_identifier_by_client_job_token( session_key, client_job_token) job_id = job_identifier.job_id if job_id == '': return HttpResponseServerError('Error: Job Token is not valid.') job_handler = JobHandler(job_identifier) log_handler = LogHandler(job_identifier) download_handler = DownloadHandler(job_identifier) format_information = OgrFormat.get_format_information_by_name( export_format_name) if format_information is not None: job_handler.set_export_format_name(format_information.ogr_name) for shell_parameter in format_information.additional_parameters: if shell_parameter.use_for_writing: job_handler.add_shell_parameter( shell_parameter.prefix, shell_parameter.parameter_name, shell_parameter.parameter_value, shell_parameter.value_quotation_marks) for global_shell_parameter in GlobalOgrShellParameter.get_active_parameters(): job_handler.add_shell_parameter_object(global_shell_parameter) job_handler.add_webservice_url('0', webservice_url) job_handler.set_export_format_name(export_format_name) job_handler.set_source_srs(source_srs) job_handler.set_target_srs(target_srs) job_handler.set_simplify_parameter(simplify_parameter) # Log start log_handler.set_start_time() log_handler.set_client_ip(client_ip) log_handler.set_client_language(client_language) log_handler.set_client_user_agent(client_user_agent) log_handler.set_input_type('webservice') log_handler.set_export_format_name( job_handler.get_export_format_name()) log_handler.set_source_srs(job_handler.get_source_srs()) log_handler.set_target_srs(job_handler.get_target_srs()) log_handler.set_simplify_parameter( job_handler.get_simplify_parameter()) # Conversion start jobprocessing.initialize_conversion_job(job_identifier) jobprocessing.process_webservice_urls(job_identifier) jobprocessing.create_download_file(job_identifier) download_handler.add_download_item() download_handler.set_download_caption(download_name) # Conversion end log_handler.set_end_time() log_handler.set_download_file_size( download_handler.get_download_file_size() / 1024) log_handler.set_has_download_file( download_handler.download_file_exists()) log_handler.set_all_files_converted() log_handler.set_has_no_error() # Log end jobprocessing.cleanup() response_data = {} response_data['job_id'] = job_id response_data['successful'] = download_handler.download_file_exists() return HttpResponse(json.dumps(response_data), mimetype="text/plain") return HttpResponseServerError('Error: Request not valid.')