verbose award_type for API
This commit is contained in:
parent
3ebd859686
commit
dd1b241c41
|
|
@ -175,6 +175,12 @@ class SiteFeature(ProjectBaseMixin):
|
||||||
unique_together = ('site_settings', 'feature')
|
unique_together = ('site_settings', 'feature')
|
||||||
|
|
||||||
|
|
||||||
|
class AwardQuerySet(models.QuerySet):
|
||||||
|
|
||||||
|
def with_base_related(self):
|
||||||
|
return self.prefetch_related('award_type')
|
||||||
|
|
||||||
|
|
||||||
class Award(TranslatedFieldsMixin, URLImageMixin, models.Model):
|
class Award(TranslatedFieldsMixin, URLImageMixin, models.Model):
|
||||||
"""Award model."""
|
"""Award model."""
|
||||||
WAITING = 0
|
WAITING = 0
|
||||||
|
|
@ -200,6 +206,8 @@ class Award(TranslatedFieldsMixin, URLImageMixin, models.Model):
|
||||||
|
|
||||||
old_id = models.IntegerField(null=True, blank=True)
|
old_id = models.IntegerField(null=True, blank=True)
|
||||||
|
|
||||||
|
objects = AwardQuerySet.as_manager()
|
||||||
|
|
||||||
def __str__(self):
|
def __str__(self):
|
||||||
title = 'None'
|
title = 'None'
|
||||||
lang = TranslationSettings.get_solo().default_language
|
lang = TranslationSettings.get_solo().default_language
|
||||||
|
|
|
||||||
|
|
@ -192,6 +192,15 @@ class SiteShortSerializer(serializers.ModelSerializer):
|
||||||
]
|
]
|
||||||
|
|
||||||
|
|
||||||
|
class AwardTypeBaseSerializer(serializers.ModelSerializer):
|
||||||
|
class Meta:
|
||||||
|
model = models.AwardType
|
||||||
|
fields = (
|
||||||
|
'id',
|
||||||
|
'name',
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
class AwardBaseSerializer(serializers.ModelSerializer):
|
class AwardBaseSerializer(serializers.ModelSerializer):
|
||||||
"""Award base serializer."""
|
"""Award base serializer."""
|
||||||
|
|
||||||
|
|
@ -210,6 +219,8 @@ class AwardBaseSerializer(serializers.ModelSerializer):
|
||||||
class AwardSerializer(AwardBaseSerializer):
|
class AwardSerializer(AwardBaseSerializer):
|
||||||
"""Award serializer."""
|
"""Award serializer."""
|
||||||
|
|
||||||
|
award_type = AwardTypeBaseSerializer(read_only=True)
|
||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
model = models.Award
|
model = models.Award
|
||||||
fields = AwardBaseSerializer.Meta.fields + ['award_type', ]
|
fields = AwardBaseSerializer.Meta.fields + ['award_type', ]
|
||||||
|
|
@ -218,6 +229,8 @@ class AwardSerializer(AwardBaseSerializer):
|
||||||
class BackAwardSerializer(AwardBaseSerializer):
|
class BackAwardSerializer(AwardBaseSerializer):
|
||||||
"""Award serializer."""
|
"""Award serializer."""
|
||||||
|
|
||||||
|
award_type = AwardTypeBaseSerializer(read_only=True)
|
||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
model = models.Award
|
model = models.Award
|
||||||
fields = AwardBaseSerializer.Meta.fields + [
|
fields = AwardBaseSerializer.Meta.fields + [
|
||||||
|
|
|
||||||
|
|
@ -15,7 +15,7 @@ from main.views import SiteSettingsView, SiteListView
|
||||||
|
|
||||||
class AwardLstView(generics.ListCreateAPIView):
|
class AwardLstView(generics.ListCreateAPIView):
|
||||||
"""Award list create view."""
|
"""Award list create view."""
|
||||||
queryset = Award.objects.all()
|
queryset = Award.objects.all().with_base_related()
|
||||||
serializer_class = serializers.BackAwardSerializer
|
serializer_class = serializers.BackAwardSerializer
|
||||||
permission_classes = (permissions.IsAdminUser,)
|
permission_classes = (permissions.IsAdminUser,)
|
||||||
filterset_class = AwardFilter
|
filterset_class = AwardFilter
|
||||||
|
|
@ -23,7 +23,7 @@ class AwardLstView(generics.ListCreateAPIView):
|
||||||
|
|
||||||
class AwardRUDView(generics.RetrieveUpdateDestroyAPIView):
|
class AwardRUDView(generics.RetrieveUpdateDestroyAPIView):
|
||||||
"""Award RUD view."""
|
"""Award RUD view."""
|
||||||
queryset = Award.objects.all()
|
queryset = Award.objects.all().with_base_related()
|
||||||
serializer_class = serializers.BackAwardSerializer
|
serializer_class = serializers.BackAwardSerializer
|
||||||
permission_classes = (permissions.IsAdminUser,)
|
permission_classes = (permissions.IsAdminUser,)
|
||||||
lookup_field = 'id'
|
lookup_field = 'id'
|
||||||
|
|
|
||||||
|
|
@ -53,14 +53,14 @@ from utils.serializers import EmptySerializer
|
||||||
class AwardView(generics.ListAPIView):
|
class AwardView(generics.ListAPIView):
|
||||||
"""Awards list view."""
|
"""Awards list view."""
|
||||||
serializer_class = serializers.AwardSerializer
|
serializer_class = serializers.AwardSerializer
|
||||||
queryset = models.Award.objects.all()
|
queryset = models.Award.objects.all().with_base_related()
|
||||||
permission_classes = (permissions.AllowAny,)
|
permission_classes = (permissions.AllowAny,)
|
||||||
|
|
||||||
|
|
||||||
class AwardRetrieveView(generics.RetrieveAPIView):
|
class AwardRetrieveView(generics.RetrieveAPIView):
|
||||||
"""Award retrieve view."""
|
"""Award retrieve view."""
|
||||||
serializer_class = serializers.AwardSerializer
|
serializer_class = serializers.AwardSerializer
|
||||||
queryset = models.Award.objects.all()
|
queryset = models.Award.objects.all().with_base_related()
|
||||||
permission_classes = (permissions.IsAuthenticatedOrReadOnly,)
|
permission_classes = (permissions.IsAuthenticatedOrReadOnly,)
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user