From 70a013173a76737fda89ef7777013194cca0219e Mon Sep 17 00:00:00 2001 From: Étienne Loks Date: Mon, 9 Sep 2019 14:50:19 +0200 Subject: Serializations: do not export empty set --- ishtar_common/tasks.py | 49 +++++++++++++++++++++++++++++-------------------- 1 file changed, 29 insertions(+), 20 deletions(-) (limited to 'ishtar_common/tasks.py') diff --git a/ishtar_common/tasks.py b/ishtar_common/tasks.py index 2a968eb0a..91695397f 100644 --- a/ishtar_common/tasks.py +++ b/ishtar_common/tasks.py @@ -25,6 +25,7 @@ import sys from django.conf import settings from django.core.files import File from django.db.models import Q +from django.utils.translation import ugettext_lazy as _ from ishtar_common.models import Town, Department from ishtar_common.utils import task @@ -81,50 +82,58 @@ def launch_export(export_task): None, query=query, return_query=True).values_list( "id", flat=True)) if not ids: - kwargs["operation_queryset"] = Operation.objects.filter( - pk=-1) - else: - kwargs["operation_queryset"] = Operation.objects.filter( - pk__in=ids) + export_task.state = 'F' + export_task.result_info = str(_("No data to export")) + export_task.save() + return + kwargs["operation_queryset"] = Operation.objects.filter( + pk__in=ids) elif export_task.filter_type == "S": kwargs["info"]["query"]["model"] = "ArchaeologicalSite" ids = list(get_site( None, query=query, return_query=True).values_list( "id", flat=True)) if not ids: - kwargs["site_queryset"] = ArchaeologicalSite.objects.filter( - pk=-1) - else: - kwargs["site_queryset"] = ArchaeologicalSite.objects.filter( - pk__in=ids) + export_task.state = 'F' + export_task.result_info = str(_("No data to export")) + export_task.save() + return + kwargs["site_queryset"] = ArchaeologicalSite.objects.filter( + pk__in=ids) elif export_task.filter_type == "CR": kwargs["info"]["query"]["model"] = "ArchaeologicalSite" ids = list(get_contextrecord( None, query=query, return_query=True).values_list( "id", flat=True)) if not ids: - kwargs["cr_queryset"] = ContextRecord.objects.filter(pk=-1) - else: - kwargs["cr_queryset"] = ContextRecord.objects.filter(pk__in=ids) + export_task.state = 'F' + export_task.result_info = str(_("No data to export")) + export_task.save() + return + kwargs["cr_queryset"] = ContextRecord.objects.filter(pk__in=ids) elif export_task.filter_type == "F": kwargs["info"]["query"]["model"] = "Find" ids = list(get_find( None, query=query, return_query=True ).values_list("id", flat=True)) if not ids: - kwargs["find_queryset"] = Find.objects.filter(pk=-1) - else: - kwargs["find_queryset"] = Find.objects.filter(pk__in=ids) + export_task.state = 'F' + export_task.result_info = str(_("No data to export")) + export_task.save() + return + kwargs["find_queryset"] = Find.objects.filter(pk__in=ids) elif export_task.filter_type == "W": kwargs["info"]["query"]["model"] = "Warehouse" ids = list(get_warehouse( None, query=query, return_query=True ).values_list("id", flat=True)) if not ids: - kwargs["warehouse_queryset"] = Warehouse.objects.filter(pk=-1) - else: - kwargs["warehouse_queryset"] = Warehouse.objects.filter( - pk__in=ids) + export_task.state = 'F' + export_task.result_info = str(_("No data to export")) + export_task.save() + return + kwargs["warehouse_queryset"] = Warehouse.objects.filter( + pk__in=ids) kwargs["info"]["geo"] = export_task.geo if not export_task.geo: kwargs["no_geo"] = True -- cgit v1.2.3