diff options
| -rw-r--r-- | ishtar_common/admin.py | 6 | ||||
| -rw-r--r-- | ishtar_common/migrations/0103_auto_20190909_1342.py | 5 | ||||
| -rw-r--r-- | ishtar_common/models.py | 2 | ||||
| -rw-r--r-- | ishtar_common/tasks.py | 49 | 
4 files changed, 39 insertions, 23 deletions
| diff --git a/ishtar_common/admin.py b/ishtar_common/admin.py index 25dffcf72..eb2ac3a0b 100644 --- a/ishtar_common/admin.py +++ b/ishtar_common/admin.py @@ -1436,10 +1436,10 @@ launch_export_action.short_description = _("Launch export")  class ExportTaskAdmin(admin.ModelAdmin): -    readonly_fields = ("result", ) +    readonly_fields = ("result", "result_info")      exclude = ('creation_date', 'launch_date', 'finished_date') -    list_display = ["label", 'state', 'creation_date', 'launch_date', -                    'finished_date'] +    list_display = ["label", 'state', "result_info", 'creation_date', +                    'launch_date', 'finished_date']      list_filter = ['state']      actions = [launch_export_action] diff --git a/ishtar_common/migrations/0103_auto_20190909_1342.py b/ishtar_common/migrations/0103_auto_20190909_1342.py index ef03725e9..cc884d4e7 100644 --- a/ishtar_common/migrations/0103_auto_20190909_1342.py +++ b/ishtar_common/migrations/0103_auto_20190909_1342.py @@ -20,6 +20,11 @@ class Migration(migrations.Migration):      operations = [          migrations.AddField(              model_name='exporttask', +            name='result_info', +            field=models.TextField(blank=True, null=True, verbose_name='Result information'), +        ), +        migrations.AddField( +            model_name='exporttask',              name='export_conf',              field=models.BooleanField(default=True, verbose_name='Export configuration'),          ), diff --git a/ishtar_common/models.py b/ishtar_common/models.py index bcec9931e..815c86d07 100644 --- a/ishtar_common/models.py +++ b/ishtar_common/models.py @@ -5716,6 +5716,8 @@ class ExportTask(models.Model):      finished_date = models.DateTimeField(null=True, blank=True)      result = models.FileField(_("Result"), null=True, blank=True,                                upload_to="exports") +    result_info = models.TextField(_("Result information"), null=True, +                                   blank=True)      class Meta:          verbose_name = _("Export task") 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 | 
