def export_search_results(self, userid, request_values, format, report_link): from arches.app.search.search_export import SearchResultsExporter from arches.app.models.system_settings import settings settings.update_from_db() create_user_task_record(self.request.id, self.name, userid) _user = User.objects.get(id=userid) email = request_values["email"] export_name = request_values["exportName"][0] new_request = HttpRequest() new_request.method = "GET" new_request.user = _user for k, v in request_values.items(): new_request.GET.__setitem__(k, v[0]) new_request.path = request_values["path"] if format == "tilexl": exporter = SearchResultsExporter(search_request=new_request) export_files, export_info = exporter.export(format, report_link) wb = export_files[0]["outputfile"] with NamedTemporaryFile() as tmp: wb.save(tmp.name) tmp.seek(0) stream = tmp.read() export_files[0]["outputfile"] = tmp exportid = exporter.write_export_zipfile(export_files, export_info) else: exporter = SearchResultsExporter(search_request=new_request) files, export_info = exporter.export(format, report_link) exportid = exporter.write_export_zipfile(files, export_info) search_history_obj = models.SearchExportHistory.objects.get(pk=exportid) return { "taskid": self.request.id, "msg": _( "Your search {} is ready for download. You have 24 hours to access this file, after which we'll automatically remove it." ).format(export_name), "notiftype_name": "Search Export Download Ready", "context": dict( greeting=_("Hello,\nYour request to download a set of search results is now ready."), link=exportid, button_text=_("Download Now"), closing=_("Thank you"), email=email, name=export_name, email_link=str(settings.ARCHES_NAMESPACE_FOR_DATA_EXPORT).rstrip("/") + "/files/" + str(search_history_obj.downloadfile), ), }
def export_search_results(self, userid, request_values, format): from arches.app.search.search_export import SearchResultsExporter from arches.app.models.system_settings import settings settings.update_from_db() create_user_task_record(self.request.id, self.name, userid) _user = User.objects.get(id=userid) email = request_values["email"] export_name = request_values["exportName"][0] new_request = HttpRequest() new_request.method = "GET" new_request.user = _user for k, v in request_values.items(): new_request.GET.__setitem__(k, v[0]) new_request.path = request_values["path"] exporter = SearchResultsExporter(search_request=new_request) files, export_info = exporter.export(format) exportid = exporter.write_export_zipfile(files, export_info) return { "taskid": self.request.id, "msg": _( "Your search {} is ready for download. You have 24 hours to access this file, after which we'll automatically remove it." ).format(export_name), "notiftype_name": "Search Export Download Ready", "context": dict( greeting=_("Hello,\nYour request to download a set of search results is now ready."), link=exportid, button_text=_("Download Now"), closing=_("Thank you"), email=email, name=export_name, ), }
def export_search_results(self, userid, request_values, format): from arches.app.models.system_settings import settings settings.update_from_db() create_user_task_record(self.request.id, self.name, userid) _user = User.objects.get(id=userid) email = request_values["email"] export_name = request_values["exportName"][0] new_request = HttpRequest() new_request.method = "GET" new_request.user = _user for k, v in request_values.items(): new_request.GET.__setitem__(k, v[0]) new_request.path = request_values["path"] exporter = SearchResultsExporter(search_request=new_request) files, export_info = exporter.export(format) exportid = exporter.write_export_zipfile(files, export_info) context = dict( greeting= "Hello,\nYour request to download a set of search results is now ready.", link=exportid, button_text="Download Now", closing="Thank you", email=email, name=export_name, ) response = { "taskid": self.request.id, "msg": export_name, "notiftype_name": "Search Export Download Ready", "context": context } return response