Skip to content
Snippets Groups Projects
Commit f95d5e3f authored by Bastien Abadie's avatar Bastien Abadie
Browse files

Merge branch 'base-template-everywhere' into 'master'

Avoid thousands of SQL queries when opening many endpoints in the browser

See merge request !1352
parents 17b2335d f9b78547
No related branches found
No related tags found
1 merge request!1352Avoid thousands of SQL queries when opening many endpoints in the browser
......@@ -49,8 +49,18 @@ class MetaDataUpdateSerializer(MetaDataLightSerializer):
"""
Allow editing MetaData
"""
entity = serializers.PrimaryKeyRelatedField(queryset=Entity.objects.none(), required=False, allow_null=True)
worker_version = serializers.PrimaryKeyRelatedField(queryset=WorkerVersion.objects.all(), required=False, allow_null=True)
entity = serializers.PrimaryKeyRelatedField(
queryset=Entity.objects.none(),
required=False,
allow_null=True,
style={'base_template': 'input.html'},
)
worker_version = serializers.PrimaryKeyRelatedField(
queryset=WorkerVersion.objects.all(),
required=False,
allow_null=True,
style={'base_template': 'input.html'},
)
class Meta:
model = MetaData
......@@ -79,7 +89,12 @@ class CorpusSerializer(serializers.ModelSerializer):
rights = serializers.SerializerMethodField(read_only=True)
types = ElementTypeLightSerializer(many=True, read_only=True)
authorized_users = serializers.SerializerMethodField(read_only=True)
thumbnail = serializers.PrimaryKeyRelatedField(queryset=Element.objects.none(), allow_null=True, default=None)
thumbnail = serializers.PrimaryKeyRelatedField(
queryset=Element.objects.none(),
allow_null=True,
default=None,
style={'base_template': 'input.html'},
)
thumbnail_url = serializers.SerializerMethodField(read_only=True)
class Meta:
......@@ -320,7 +335,8 @@ class ElementSerializer(ElementSlimSerializer):
write_only=True,
help_text='Link this element to an image by UUID via a polygon. '
'When the image is updated, if there was an image before and the polygon is not updated, '
'the previous polygon is reused. Otherwise, a polygon filling the new image is used.'
'the previous polygon is reused. Otherwise, a polygon filling the new image is used.',
style={'base_template': 'input.html'},
)
polygon = LinearRingField(
required=False,
......
......@@ -124,11 +124,18 @@ class EntityCreateSerializer(BaseEntitySerializer):
"""
Serialize an entity with a possible parents and children
"""
corpus = serializers.PrimaryKeyRelatedField(queryset=Corpus.objects.none())
corpus = serializers.PrimaryKeyRelatedField(
queryset=Corpus.objects.none(),
style={'base_template': 'input.html'},
)
metas = serializers.HStoreField(child=serializers.CharField(), required=False)
children = EntityLinkSerializer(many=True, read_only=True)
parents = EntityLinkSerializer(many=True, read_only=True)
worker_version = serializers.PrimaryKeyRelatedField(queryset=WorkerVersion.objects.all(), default=None)
worker_version = serializers.PrimaryKeyRelatedField(
queryset=WorkerVersion.objects.all(),
default=None,
style={'base_template': 'input.html'},
)
class Meta:
model = Entity
......@@ -162,9 +169,18 @@ class EntityLinkCreateSerializer(EntityLinkSerializer):
"""
Serialize an entity with a possible parents and children
"""
parent = serializers.PrimaryKeyRelatedField(queryset=Entity.objects.none())
child = serializers.PrimaryKeyRelatedField(queryset=Entity.objects.none())
role = serializers.PrimaryKeyRelatedField(queryset=Entity.objects.none())
parent = serializers.PrimaryKeyRelatedField(
queryset=Entity.objects.none(),
style={'base_template': 'input.html'},
)
child = serializers.PrimaryKeyRelatedField(
queryset=Entity.objects.none(),
style={'base_template': 'input.html'},
)
role = serializers.PrimaryKeyRelatedField(
queryset=EntityRole.objects.none(),
style={'base_template': 'input.html'},
)
class Meta:
model = EntityLink
......@@ -200,6 +216,7 @@ class TranscriptionEntitySerializer(serializers.ModelSerializer):
queryset=WorkerVersion.objects.all(),
source='worker_version',
default=None,
style={'base_template': 'input.html'},
)
class Meta:
......
......@@ -81,9 +81,20 @@ class ClassificationCreateSerializer(serializers.ModelSerializer):
"""
Serializer to create a single classification, defaulting to manual
"""
element = serializers.PrimaryKeyRelatedField(queryset=Element.objects.using('default').none())
ml_class = serializers.PrimaryKeyRelatedField(queryset=MLClass.objects.using('default').none())
worker_version = serializers.PrimaryKeyRelatedField(queryset=WorkerVersion.objects.all(), allow_null=True, default=None)
element = serializers.PrimaryKeyRelatedField(
queryset=Element.objects.using('default').none(),
style={'base_template': 'input.html'},
)
ml_class = serializers.PrimaryKeyRelatedField(
queryset=MLClass.objects.using('default').none(),
style={'base_template': 'input.html'},
)
worker_version = serializers.PrimaryKeyRelatedField(
queryset=WorkerVersion.objects.all(),
allow_null=True,
default=None,
style={'base_template': 'input.html'},
)
confidence = serializers.FloatField(
min_value=0,
max_value=1,
......@@ -243,7 +254,12 @@ class TranscriptionCreateSerializer(serializers.ModelSerializer):
"""
Allows the insertion of a manual transcription attached to an element
"""
worker_version = serializers.PrimaryKeyRelatedField(queryset=WorkerVersion.objects.all(), required=False, allow_null=True)
worker_version = serializers.PrimaryKeyRelatedField(
queryset=WorkerVersion.objects.all(),
required=False,
allow_null=True,
style={'base_template': 'input.html'},
)
score = serializers.FloatField(
min_value=0,
max_value=1,
......@@ -333,7 +349,8 @@ class ElementTranscriptionsBulkSerializer(serializers.Serializer):
)
worker_version = serializers.PrimaryKeyRelatedField(
queryset=WorkerVersion.objects.all(),
help_text='A WorkerVersion ID that transcriptions will refer to'
help_text='A WorkerVersion ID that transcriptions will refer to',
style={'base_template': 'input.html'},
)
transcriptions = SimpleTranscriptionSerializer(
many=True,
......@@ -394,7 +411,10 @@ class TranscriptionBulkItemSerializer(serializers.Serializer):
class TranscriptionBulkSerializer(serializers.Serializer):
worker_version = serializers.PrimaryKeyRelatedField(queryset=WorkerVersion.objects.all())
worker_version = serializers.PrimaryKeyRelatedField(
queryset=WorkerVersion.objects.all(),
style={'base_template': 'input.html'},
)
transcriptions = TranscriptionBulkItemSerializer(many=True)
def validate(self, data):
......@@ -449,8 +469,13 @@ class ClassificationsSerializer(serializers.Serializer):
parent = serializers.PrimaryKeyRelatedField(
# The real queryset is set in __init__
queryset=Element.objects.none(),
style={'base_template': 'input.html'},
)
worker_version = serializers.PrimaryKeyRelatedField(
queryset=WorkerVersion.objects.all(),
default=None,
style={'base_template': 'input.html'},
)
worker_version = serializers.PrimaryKeyRelatedField(queryset=WorkerVersion.objects.all(), default=None)
classifications = ClassificationBulkSerializer(many=True, allow_empty=False)
def __init__(self, *args, **kwargs):
......
......@@ -208,6 +208,7 @@ class ImageUploadSerializer(ImageSerializer):
queryset=ImageServer.objects.exclude(s3_bucket=None),
required=False,
write_only=True,
style={'base_template': 'input.html'},
)
path = IIIFPathField(
required=False,
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment