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 __init__(self, *args, **kwargs): super(ArchesTestCase, self).__init__(*args, **kwargs) if settings.DEFAULT_BOUNDS == None: management.call_command('migrate') with open(os.path.join('tests/fixtures/system_settings/Arches_System_Settings_Model.json'), 'rU') as f: archesfile = JSONDeserializer().deserialize(f) ResourceGraphImporter(archesfile['graph'], True) BusinessDataImporter('tests/fixtures/system_settings/Arches_System_Settings_Local.json').import_business_data() settings.update_from_db()
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 delete_file(): from arches.app.models.system_settings import settings settings.update_from_db() logger = logging.getLogger(__name__) now = datetime.timestamp(datetime.now()) file_list = [] range = datetime.now() - timedelta(seconds=settings.CELERY_SEARCH_EXPORT_EXPIRES) exports = models.SearchExportHistory.objects.filter(exporttime__lt=range).exclude(downloadfile="") for export in exports: file_list.append(export.downloadfile.url) export.downloadfile.delete() deleted_message = _("files_deleted") logger.warning(f"{len(file_list)} {deleted_message}") return f"{len(file_list)} {deleted_message}"
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
def update_system_settings_cache(tile): if str(tile.resourceinstance_id) == settings.RESOURCE_INSTANCE_ID: settings.update_from_db()
License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details. You should have received a copy of the GNU Affero General Public License along with this program. If not, see <http://www.gnu.org/licenses/>. ''' import os import sys import inspect path = os.path.dirname(os.path.abspath(inspect.getfile( inspect.currentframe()))) if path not in sys.path: sys.path.append(path) # reverting back to the old style of setting the DJANGO_SETTINGS_MODULE env variable # refer to the following blog post under the heading "Leaking of process environment variables." # http://blog.dscpl.com.au/2012/10/requests-running-in-wrong-django.html os.environ['DJANGO_SETTINGS_MODULE'] = "hkuyg.settings" from django.core.wsgi import get_wsgi_application application = get_wsgi_application() from arches.app.models.system_settings import settings settings.update_from_db()
published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details. You should have received a copy of the GNU Affero General Public License along with this program. If not, see <http://www.gnu.org/licenses/>. ''' import os import sys import inspect path = os.path.dirname(os.path.abspath(inspect.getfile(inspect.currentframe()))) if path not in sys.path: sys.path.append(path) # reverting back to the old style of setting the DJANGO_SETTINGS_MODULE env variable # refer to the following blog post under the heading "Leaking of process environment variables." # http://blog.dscpl.com.au/2012/10/requests-running-in-wrong-django.html os.environ['DJANGO_SETTINGS_MODULE'] = "settings" from django.core.wsgi import get_wsgi_application application = get_wsgi_application() from arches.app.models.system_settings import settings settings.update_from_db()
def update_system_settings_cache(tile): if tile.resourceinstance_id == settings.RESOURCE_INSTANCE_ID: settings.update_from_db()