diff options
author | Étienne Loks <etienne.loks@iggdrasil.net> | 2019-09-09 14:50:19 +0200 |
---|---|---|
committer | Étienne Loks <etienne.loks@iggdrasil.net> | 2019-09-09 14:50:19 +0200 |
commit | a2e9910ac21364a72440d0563db3f677f2a0297e (patch) | |
tree | 578a0b57c6b0b0c565dfb24529de52487ea6bbab /ishtar_common/tasks.py | |
parent | ad9727f91af7d1fdde26bb29118d99623d6c65cb (diff) | |
download | Ishtar-a2e9910ac21364a72440d0563db3f677f2a0297e.tar.bz2 Ishtar-a2e9910ac21364a72440d0563db3f677f2a0297e.zip |
Serializations: do not export empty set
Diffstat (limited to 'ishtar_common/tasks.py')
-rw-r--r-- | ishtar_common/tasks.py | 49 |
1 files changed, 29 insertions, 20 deletions
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 |