diff --git a/beat/web/dataformats/serializers.py b/beat/web/dataformats/serializers.py index 68fee96f423c4a9288da3ab288e3bf5adf046f9e..d44afda1c0db72e9044bb29cb16f4186c00ec04a 100644 --- a/beat/web/dataformats/serializers.py +++ b/beat/web/dataformats/serializers.py @@ -27,7 +27,12 @@ from rest_framework import serializers -from ..common.serializers import ContributionSerializer, VersionableSerializer, DynamicFieldsSerializer, ContributionCreationSerializer +from ..common.serializers import ( + ContributionSerializer, + VersionableSerializer, + DynamicFieldsSerializer, + ContributionCreationSerializer, +) from ..algorithms.models import Algorithm from ..databases.models import Database, DatabaseSet @@ -36,7 +41,7 @@ from .models import DataFormat import beat.core.dataformat -#---------------------------------------------------------- +# ---------------------------------------------------------- class DataFormatCreationSerializer(ContributionCreationSerializer): @@ -45,7 +50,7 @@ class DataFormatCreationSerializer(ContributionCreationSerializer): beat_core_class = beat.core.dataformat -#---------------------------------------------------------- +# ---------------------------------------------------------- class BaseSerializer(DynamicFieldsSerializer): @@ -53,37 +58,37 @@ class BaseSerializer(DynamicFieldsSerializer): accessibility = serializers.SerializerMethodField() class Meta(DynamicFieldsSerializer.Meta): - fields = '__all__' - default_fields = ['name', 'short_description', 'accessibility'] + fields = "__all__" + default_fields = ["name", "short_description", "accessibility"] def get_accessibility(self, obj): return obj.get_sharing_display().lower() -#---------------------------------------------------------- +# ---------------------------------------------------------- class ReferencedDataFormatSerializer(BaseSerializer): class Meta(BaseSerializer.Meta): model = DataFormat - default_fields = BaseSerializer.Meta.default_fields + ['creation_date'] + default_fields = BaseSerializer.Meta.default_fields + ["creation_date"] -#---------------------------------------------------------- +# ---------------------------------------------------------- class ReferencingSerializer(BaseSerializer): is_owner = serializers.SerializerMethodField() class Meta(BaseSerializer.Meta): - default_fields = BaseSerializer.Meta.default_fields + ['is_owner', 'version',] + default_fields = BaseSerializer.Meta.default_fields + ["is_owner", "version"] def get_is_owner(self, obj): - if hasattr(obj, 'author'): - return obj.author == self.context.get('user') + if hasattr(obj, "author"): + return obj.author == self.context.get("user") -#---------------------------------------------------------- +# ---------------------------------------------------------- class ReferencingDataFormatSerializer(ReferencingSerializer): @@ -91,7 +96,7 @@ class ReferencingDataFormatSerializer(ReferencingSerializer): model = DataFormat -#---------------------------------------------------------- +# ---------------------------------------------------------- class ReferencingAlgorithmSerializer(ReferencingSerializer): @@ -99,59 +104,78 @@ class ReferencingAlgorithmSerializer(ReferencingSerializer): model = Algorithm -#---------------------------------------------------------- +# ---------------------------------------------------------- class ReferencingDatabaseSerializer(VersionableSerializer): class Meta: model = Database - default_fields = ['name', 'short_description'] + default_fields = ["name", "short_description"] -#---------------------------------------------------------- +# ---------------------------------------------------------- class DataFormatSerializer(ContributionSerializer): extend = serializers.SerializerMethodField() - referenced_dataformats = ReferencedDataFormatSerializer(many=True, source="referenced_formats") - needed_dataformats = ReferencedDataFormatSerializer(many=True, source='all_needed_dataformats') + referenced_dataformats = ReferencedDataFormatSerializer( + many=True, source="referenced_formats" + ) + needed_dataformats = ReferencedDataFormatSerializer( + many=True, source="all_needed_dataformats" + ) referencing_dataformats = serializers.SerializerMethodField() referencing_algorithms = serializers.SerializerMethodField() referencing_databases = serializers.SerializerMethodField() class Meta(ContributionSerializer.Meta): model = DataFormat - default_fields = ContributionSerializer.Meta.default_fields + ['extend'] + default_fields = ContributionSerializer.Meta.default_fields + ["extend"] def get_extend(self, obj): return obj.extend.fullname() if obj.extend else None - def get_referencing_dataformats(self, obj): - user = self.context.get('user') + user = self.context.get("user") dataformats = obj.referencing.for_user(user, True) - serializer = ReferencingDataFormatSerializer(dataformats, many=True, context=self.context) + serializer = ReferencingDataFormatSerializer( + dataformats, many=True, context=self.context + ) return serializer.data - def get_referencing_algorithms(self, obj): - user = self.context.get('user') - algorithms = Algorithm.objects.for_user(user, True).filter(endpoints=obj.algorithm_endpoints.all()).distinct() - serializer = ReferencingAlgorithmSerializer(algorithms, many=True, context=self.context) + user = self.context.get("user") + algorithms = ( + Algorithm.objects.for_user(user, True) + .filter(endpoints=obj.algorithm_endpoints.all()) + .distinct() + ) + serializer = ReferencingAlgorithmSerializer( + algorithms, many=True, context=self.context + ) return serializer.data - def get_referencing_databases(self, obj): - databaseset = DatabaseSet.objects.filter(template__outputs=obj.database_outputs.distinct()) - databases = Database.objects.filter(protocols__sets=databaseset).distinct().order_by('name') - serializer = ReferencingDatabaseSerializer(databases, many=True, context=self.context) + databaseset = DatabaseSet.objects.filter( + template__outputs=obj.database_outputs.distinct() + ) + databases = ( + Database.objects.filter(protocols__sets=databaseset) + .distinct() + .order_by("name") + ) + serializer = ReferencingDatabaseSerializer( + databases, many=True, context=self.context + ) return serializer.data -#---------------------------------------------------------- +# ---------------------------------------------------------- class FullDataFormatSerializer(DataFormatSerializer): - class Meta(DataFormatSerializer.Meta): - default_fields = DataFormatSerializer.Meta.default_fields + DataFormatSerializer.Meta.extra_fields + default_fields = ( + DataFormatSerializer.Meta.default_fields + + DataFormatSerializer.Meta.extra_fields + )