diff options
Diffstat (limited to 'archaeological_context_records/serializers.py')
-rw-r--r-- | archaeological_context_records/serializers.py | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/archaeological_context_records/serializers.py b/archaeological_context_records/serializers.py new file mode 100644 index 000000000..98f7d2226 --- /dev/null +++ b/archaeological_context_records/serializers.py @@ -0,0 +1,41 @@ +from ishtar_common.serializers import generic_get_results, archive_serialization +from archaeological_context_records import models + + +CR_MODEL_LIST = [ + models.Dating, models.ContextRecord, models.RecordRelations +] + +# TODO: associated documents + + +def cr_serialization(archive=False, return_empty_types=False, + archive_name=None, operation_queryset=None, + site_queryset=None, cr_queryset=None): + result_queryset = {} + """ + if operation_queryset: + result_queryset = { + models.ContextRecord.__name__: operation_queryset, + models.ArchaeologicalSite.__name__: + models.ArchaeologicalSite.objects.filter( + operations__id__in=operation_queryset.values_list( + "id", flat=True) + ) + } + elif site_queryset: + result_queryset = { + models.ArchaeologicalSite.__name__: site_queryset, + models.Operation.__name__: models.Operation.objects.filter( + archaeological_sites__id__in=site_queryset.values_list( + "id", flat=True)) + } + """ + + result = generic_get_results(CR_MODEL_LIST, "context_records", + result_queryset=result_queryset) + full_archive = archive_serialization( + result, archive_dir="operations", archive=archive, + return_empty_types=return_empty_types, archive_name=archive_name, + ) + return full_archive |