summaryrefslogtreecommitdiff
path: root/archaeological_warehouse
diff options
context:
space:
mode:
authorÉtienne Loks <etienne.loks@iggdrasil.net>2019-09-06 20:22:55 +0200
committerÉtienne Loks <etienne.loks@iggdrasil.net>2019-09-06 20:22:55 +0200
commitf7420f6003fce4663c017633407b3044e81ce587 (patch)
tree1e4e3653789d36146acc02cc5838ac54f95a2e28 /archaeological_warehouse
parent2a70fa9be2d231cab962909b56277c81426f04a9 (diff)
downloadIshtar-f7420f6003fce4663c017633407b3044e81ce587.tar.bz2
Ishtar-f7420f6003fce4663c017633407b3044e81ce587.zip
Serialization: warehouse filter
Diffstat (limited to 'archaeological_warehouse')
-rw-r--r--archaeological_warehouse/serializers.py11
-rw-r--r--archaeological_warehouse/tests.py46
2 files changed, 43 insertions, 14 deletions
diff --git a/archaeological_warehouse/serializers.py b/archaeological_warehouse/serializers.py
index 2c44c9dcf..ed5a3f189 100644
--- a/archaeological_warehouse/serializers.py
+++ b/archaeological_warehouse/serializers.py
@@ -13,7 +13,7 @@ WAREHOUSE_MODEL_LIST = [
# TODO: associated documents
-def generate_queryset(base_query_key, ids):
+def generate_warehouse_queryset(base_query_key, ids):
warehouse_division_q, warehouse_q, container_q = None, None, None
container_loca_q = None
for find_key in ("finds", "finds_ref"):
@@ -63,20 +63,21 @@ def warehouse_serialization(archive=False, return_empty_types=False,
if operation_queryset:
operation_ids = operation_queryset.values_list("id", flat=True)
base_query_key = "base_finds__context_record__operation_id__in"
- result_queryset = generate_queryset(base_query_key, operation_ids)
+ result_queryset = generate_warehouse_queryset(base_query_key,
+ operation_ids)
elif site_queryset:
site_ids = site_queryset.values_list("id", flat=True)
base_query_key = "base_finds__context_record__"\
"archaeological_site_id__in"
- result_queryset = generate_queryset(base_query_key, site_ids)
+ result_queryset = generate_warehouse_queryset(base_query_key, site_ids)
elif cr_queryset:
cr_ids = cr_queryset.values_list("id", flat=True)
base_query_key = "base_finds__context_record__id__in"
- result_queryset = generate_queryset(base_query_key, cr_ids)
+ result_queryset = generate_warehouse_queryset(base_query_key, cr_ids)
elif find_queryset:
find_ids = find_queryset.values_list("id", flat=True)
base_query_key = "id__in"
- result_queryset = generate_queryset(base_query_key, find_ids)
+ result_queryset = generate_warehouse_queryset(base_query_key, find_ids)
elif warehouse_queryset:
warehouse_ids = warehouse_queryset.values_list("id", flat=True)
result_queryset = {
diff --git a/archaeological_warehouse/tests.py b/archaeological_warehouse/tests.py
index 52f1a96fc..6d6dbddc9 100644
--- a/archaeological_warehouse/tests.py
+++ b/archaeological_warehouse/tests.py
@@ -32,6 +32,8 @@ from archaeological_finds.models import Find
from archaeological_warehouse import models, views, forms, serializers
from archaeological_operations.serializers import operation_serialization
+from archaeological_context_records.serializers import cr_serialization
+from archaeological_finds.serializers import find_serialization
class SerializationTest(GenericSerializationTest, FindInit, TestCase):
@@ -280,7 +282,6 @@ class SerializationTest(GenericSerializationTest, FindInit, TestCase):
)
self.assertEqual(len(loca_json), 2)
- """
def test_ope_serialization_with_warehouse_filter(self):
res = self.generic_serialization_test(
operation_serialization, no_test=True,
@@ -290,18 +291,18 @@ class SerializationTest(GenericSerializationTest, FindInit, TestCase):
)
self.assertEqual(len(ope_json), 2)
- result_queryset = models.Find.objects.filter(
- uuid=self.finds[0].uuid)
+ result_queryset = models.Warehouse.objects.filter(
+ id=self.warehouses[0].pk)
res = self.generic_serialization_test(
operation_serialization, no_test=True,
- kwargs={"find_queryset": result_queryset}
+ kwargs={"warehouse_queryset": result_queryset}
)
ope_json = json.loads(
res[('operations', 'archaeological_operations__Operation')]
)
self.assertEqual(len(ope_json), 1)
- def test_cr_serialization_with_find_filter(self):
+ def test_cr_serialization_with_warehouse_filter(self):
res = self.generic_serialization_test(
cr_serialization, no_test=True,
)
@@ -311,18 +312,45 @@ class SerializationTest(GenericSerializationTest, FindInit, TestCase):
)
self.assertEqual(len(cr_json), 2)
- result_queryset = models.Find.objects.filter(
- uuid=self.finds[0].uuid)
+ result_queryset = models.Warehouse.objects.filter(
+ id=self.warehouses[0].pk)
res = self.generic_serialization_test(
cr_serialization, no_test=True,
- kwargs={"find_queryset": result_queryset}
+ kwargs={"warehouse_queryset": result_queryset}
)
cr_json = json.loads(
res[('context_records',
'archaeological_context_records__ContextRecord')]
)
self.assertEqual(len(cr_json), 1)
- """
+
+ def test_find_serialization_with_warehouse_filter(self):
+ res = self.generic_serialization_test(
+ find_serialization, no_test=True,
+ )
+ find_json = json.loads(
+ res[('finds', 'archaeological_finds__Find')]
+ )
+ self.assertEqual(len(find_json), 3)
+ bfind_json = json.loads(
+ res[('finds', 'archaeological_finds__BaseFind')]
+ )
+ self.assertEqual(len(bfind_json), 3)
+
+ result_queryset = models.Warehouse.objects.filter(
+ id=self.warehouses[0].pk)
+ res = self.generic_serialization_test(
+ find_serialization, no_test=True,
+ kwargs={"warehouse_queryset": result_queryset}
+ )
+ find_json = json.loads(
+ res[('finds', 'archaeological_finds__Find')]
+ )
+ self.assertEqual(len(find_json), 1)
+ bfind_json = json.loads(
+ res[('finds', 'archaeological_finds__BaseFind')]
+ )
+ self.assertEqual(len(bfind_json), 1)
def test_restore(self):
current_number, zip_filename = self.generic_restore_test_genzip(