From 8558c30305c0cc6adee3eff3b0e88b732b0a1c21 Mon Sep 17 00:00:00 2001 From: Samuel Gaist <samuel.gaist@idiap.ch> Date: Mon, 20 Apr 2020 11:43:33 +0200 Subject: [PATCH] [common][serializers] Use annotate_full_name method --- beat/web/common/serializers.py | 30 +++++++----------------------- 1 file changed, 7 insertions(+), 23 deletions(-) diff --git a/beat/web/common/serializers.py b/beat/web/common/serializers.py index 78b547c47..af1d85d3f 100644 --- a/beat/web/common/serializers.py +++ b/beat/web/common/serializers.py @@ -29,13 +29,11 @@ from django.contrib.auth.models import User from django.utils import six -from django.db.models import CharField, Value as V -from django.db.models.functions import Concat - from rest_framework import serializers from ..team.models import Team from ..common.utils import ensure_html +from ..common.utils import annotate_full_name from .models import Shareable, Versionable, Contribution from .exceptions import ContributionCreationError @@ -364,16 +362,9 @@ class ContributionCreationSerializer(serializers.ModelSerializer): if previous_version is not None: try: - previous_object = self.Meta.model.objects.annotate( - fullname=Concat( - "author__username", - V("/"), - "name", - V("/"), - "version", - output_field=CharField(), - ) - ).get(fullname=previous_version) + previous_object = annotate_full_name(self.Meta.model).get( + full_name=previous_version + ) except self.Meta.model.DoesNotExist: raise serializers.ValidationError( "{} '{}' not found".format( @@ -398,16 +389,9 @@ class ContributionCreationSerializer(serializers.ModelSerializer): raise serializers.ValidationError("A fork starts at 1") try: - forked_of_object = self.Meta.model.objects.annotate( - fullname=Concat( - "author__username", - V("/"), - "name", - V("/"), - "version", - output_field=CharField(), - ) - ).get(fullname=fork_of) + forked_of_object = annotate_full_name(self.Meta.model).get( + full_name=fork_of + ) except self.Meta.model.DoesNotExist: raise serializers.ValidationError( "{} '{}' fork origin not found".format( -- GitLab