Пример #1
0
class SpeakerOrgaSerializer(SpeakerSerializer):
    email = CharField(source="user.email")
    answers = AnswerSerializer(Answer.objects.none(), many=True, read_only=True)
    availabilities = AvailabilitySerializer(
        Availability.objects.none(), many=True, read_only=True
    )

    def get_submissions(self, obj):
        return obj.user.submissions.filter(event=obj.event).values_list(
            "code", flat=True
        )

    class Meta(SpeakerSerializer.Meta):
        fields = SpeakerSerializer.Meta.fields + ("answers", "email", "availabilities")
Пример #2
0
    def _serialize(self, event, instance):
        if instance:
            availabilities = AvailabilitySerializer(
                instance.availabilities.all(), many=True).data
        else:
            availabilities = []

        return json.dumps({
            'availabilities': availabilities,
            'event': {
                'timezone': event.timezone,
                'date_from': str(event.date_from),
                'date_to': str(event.date_to),
            },
        })
Пример #3
0
    def _serialize(self, event, instance):
        if instance:
            availabilities = AvailabilitySerializer(
                instance.availabilities.all(), many=True).data
        else:
            availabilities = []

        return json.dumps({
            "availabilities": availabilities,
            "event": {
                "timezone": event.timezone,
                "date_from": str(event.date_from),
                "date_to": str(event.date_to),
            },
        })
Пример #4
0
 def get(self, request, event, talkid, roomid):
     talk = request.event.wip_schedule.talks.filter(pk=talkid).first()
     room = request.event.rooms.filter(pk=roomid).first()
     if not (talk and room):
         return JsonResponse({'results': []})
     if talk.submission.availabilities:
         availabilitysets = [
             room.availabilities.all(),
             talk.submission.availabilities,
         ]
         availabilities = Availability.intersection(*availabilitysets)
     else:
         availabilities = room.availabilities.all()
     return JsonResponse(
         {'results': AvailabilitySerializer(availabilities, many=True).data}
     )
Пример #5
0
    def _serialize(self, event, instance):
        def is_valid(availability):
            return availability["end"] > availability["start"]

        if instance:
            availabilities = AvailabilitySerializer(
                instance.availabilities.all(), many=True).data
        else:
            availabilities = []

        return json.dumps({
            "availabilities": [a for a in availabilities if is_valid(a)],
            "event": {
                "timezone": event.timezone,
                "date_from": str(event.date_from),
                "date_to": str(event.date_to),
            },
        })
Пример #6
0
    def serialize(self) -> dict:
        from pretalx.api.serializers.room import AvailabilitySerializer

        return AvailabilitySerializer(self).data