diff options
Diffstat (limited to 'archaeological_operations/serializers.py')
| -rw-r--r-- | archaeological_operations/serializers.py | 20 | 
1 files changed, 16 insertions, 4 deletions
| diff --git a/archaeological_operations/serializers.py b/archaeological_operations/serializers.py index 0826a23ce..3500cdad2 100644 --- a/archaeological_operations/serializers.py +++ b/archaeological_operations/serializers.py @@ -7,26 +7,38 @@ OPERATION_MODEL_LIST = [      models.Parcel, models.ParcelOwner  ] +# TODO: administrativ acts, associated documents +  def operation_serialization(archive=False, return_empty_types=False,                              archive_name=None, operation_queryset=None,                              site_queryset=None):      result_queryset = {}      if operation_queryset: +        operation_ids = operation_queryset.values_list("id", flat=True)          result_queryset = {              models.Operation.__name__: operation_queryset, +            models.RecordRelations.__name__: +                models.RecordRelations.objects.filter( +                    left_record__id__in=operation_ids, +                    right_record__id__in=operation_ids, +                ),              models.ArchaeologicalSite.__name__:                  models.ArchaeologicalSite.objects.filter( -                    operations__id__in=operation_queryset.values_list( -                        "id", flat=True) +                    operations__id__in=operation_ids                      )          }      elif site_queryset: +        site_ids = site_queryset.values_list("id", flat=True)          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)) +                archaeological_sites__id__in=site_ids), +            models.RecordRelations.__name__: +                models.RecordRelations.objects.filter( +                    left_record__archaeological_sites__id__in=site_ids, +                    right_record__archaeological_sites__id__in=site_ids, +                ),          }      result = generic_get_results(OPERATION_MODEL_LIST, "operations", | 
