Skip to content

Instantly share code, notes, and snippets.

@alfredrumss
Created February 20, 2019 11:54
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save alfredrumss/c52c57679c58f5bdb9141ae2ee4c0a3e to your computer and use it in GitHub Desktop.
Save alfredrumss/c52c57679c58f5bdb9141ae2ee4c0a3e to your computer and use it in GitHub Desktop.
@classmethod
def post(self, request, *args, **kwargs):
from .serializers import HomePageSerializer
from experience.serializers import ExperienceTranslation, ExperienceTranslationPerformanceDetailDateSerializer
from event.serializers import EventTranslation, EventTranslationPerformanceDetailDateSerializer
if 'HTTP_ACCEPT_LANGUAGE' in request.META.keys() and \
request.META.get('HTTP_ACCEPT_LANGUAGE') in \
dict(settings.LANGUAGES).keys():
serializer = HomePageSerializer(data=request.data)
if serializer.is_valid():
headers = [HeaderTranslationSerializer(translation).data
for translation in HeaderTranslation.objects.filter(header__active=True,
header__type_header=request.data['type_header'],
language=request.META.get(
'HTTP_ACCEPT_LANGUAGE')).order_by(
'-created_at')]
experiences = [ExperienceTranslationPerformanceDetailDateSerializer(translation).data
for translation in ExperienceTranslation.objects.filter(language=request.META.get('HTTP_ACCEPT_LANGUAGE'))[:4]]
events = [EventTranslationPerformanceDetailDateSerializer(translation).data
for translation in EventTranslation.objects.filter(language=request.META.get('HTTP_ACCEPT_LANGUAGE'))[:3]]
tracks = [TrackTranslationSerializer(translation).data
for translation in TrackTranslation.objects.filter(language=request.META.get('HTTP_ACCEPT_LANGUAGE'))]
return Response({
'headers': headers,
'experiences': experiences,
'events': events,
'tracks': tracks
})
else:
return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
else:
return Response({'message': 'Must be sent the language in the Header and must exist'},
status=status.HTTP_400_BAD_REQUEST)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment