diff options
Diffstat (limited to 'ishtar_common/serializers.py')
| -rw-r--r-- | ishtar_common/serializers.py | 55 | 
1 files changed, 37 insertions, 18 deletions
| diff --git a/ishtar_common/serializers.py b/ishtar_common/serializers.py index 1b18ccab5..e59c1aa3c 100644 --- a/ishtar_common/serializers.py +++ b/ishtar_common/serializers.py @@ -43,11 +43,11 @@ def get_type_models():  def type_serialization(archive=False, return_empty_types=False, -                       archive_name=None): +                       archive_name=None, info=None):      result = generic_get_results(get_type_models(), "types")      return archive_serialization(result, archive_dir="types", archive=archive,                                   return_empty_types=return_empty_types, -                                 archive_name=archive_name) +                                 archive_name=archive_name, info=info)  CONF_MODEL_LIST = [ @@ -147,7 +147,7 @@ def document_serialization(archive=False, return_empty_types=False,          queries.update(cr_serialization(**get_queryset_attr))          queries.update(find_serialization(**get_queryset_attr))          queries.update(warehouse_serialization(**get_queryset_attr)) -        q = None +        document_ids = set()          for model, attr in (                  ("Operation", "operations"),                  ("ArchaeologicalSite", "sites"), @@ -155,13 +155,13 @@ def document_serialization(archive=False, return_empty_types=False,                  ("Find", "finds"),                  ("Warehouse", "warehouses"),                  ("Container", "containers")): -            values = queries[model].values_list("id", flat=True) -            base_q = Q(**{attr + "__id__in": values}) -            if not q: -                q = base_q -            else: -                q |= base_q -        result_queryset["Document"] = models.Document.objects.filter(q) +            values = list(queries[model].values_list("id", flat=True)) +            document_ids.update( +                models.Document.objects.filter( +                    **{attr + "__id__in": values}).values_list( +                    "id", flat=True)) +        result_queryset["Document"] = models.Document.objects.filter( +            id__in=document_ids)      result = generic_get_results([models.Document], "documents",                                   result_queryset=result_queryset) @@ -213,33 +213,52 @@ def document_serialization(archive=False, return_empty_types=False,  def full_serialization(operation_queryset=None, site_queryset=None,                         cr_queryset=None, find_queryset=None, -                       warehouse_queryset=None, archive=True): -    archive_name = type_serialization(archive=archive) +                       warehouse_queryset=None, archive=True, no_geo=True, +                       info=None): +    # print("type") +    archive_name = type_serialization(archive=archive, info=info) +    # print("conf")      conf_serialization(archive=archive, archive_name=archive_name) +    # print("importer")      importer_serialization(archive=archive, archive_name=archive_name) -    geo_serialization(archive=archive, archive_name=archive_name) +    # print("geo") +    geo_serialization(archive=archive, archive_name=archive_name, no_geo=no_geo) +    # print("directory")      directory_serialization(archive=archive, archive_name=archive_name) -    document_serialization(archive=archive, archive_name=archive_name) -    operation_serialization( +    # print("document") +    document_serialization(          archive=archive,          archive_name=archive_name, operation_queryset=operation_queryset,          site_queryset=site_queryset, cr_queryset=cr_queryset,          find_queryset=find_queryset, warehouse_queryset=warehouse_queryset) +    # print("operation") +    operation_serialization( +        archive=archive, +        archive_name=archive_name, operation_queryset=operation_queryset, +        site_queryset=site_queryset, cr_queryset=cr_queryset, +        find_queryset=find_queryset, warehouse_queryset=warehouse_queryset, +        no_geo=no_geo) +    # print("cr")      cr_serialization(          archive=archive,          archive_name=archive_name, operation_queryset=operation_queryset,          site_queryset=site_queryset, cr_queryset=cr_queryset, -        find_queryset=find_queryset, warehouse_queryset=warehouse_queryset) +        find_queryset=find_queryset, warehouse_queryset=warehouse_queryset, +        no_geo=no_geo) +    # print("find")      find_serialization(          archive=archive,          archive_name=archive_name, operation_queryset=operation_queryset,          site_queryset=site_queryset, cr_queryset=cr_queryset, -        find_queryset=find_queryset, warehouse_queryset=warehouse_queryset) +        find_queryset=find_queryset, warehouse_queryset=warehouse_queryset, +        no_geo=no_geo) +    # print("warehouse")      warehouse_serialization(          archive=archive,          archive_name=archive_name, operation_queryset=operation_queryset,          site_queryset=site_queryset, cr_queryset=cr_queryset, -        find_queryset=find_queryset, warehouse_queryset=warehouse_queryset) +        find_queryset=find_queryset, warehouse_queryset=warehouse_queryset, +        no_geo=no_geo)      return archive_name | 
