Ejemplo n.º 1
0
def test_submitter_serializer_without_profile(submission):
    user = submission.speakers.first()
    user.profiles.all().delete()
    data = SubmitterSerializer(user, context={'event': submission.event}).data
    assert data.keys() == {'name', 'code', 'biography', 'avatar'}
    assert data['name'] == user.name
    assert data['code'] == user.code
    assert data['biography'] == ''
Ejemplo n.º 2
0
def test_submitter_serializer_without_profile(submission):
    with scope(event=submission.event):
        user = submission.speakers.first()
        user.profiles.all().delete()
        data = SubmitterSerializer(user, context={
            "event": submission.event
        }).data
    assert data.keys() == {"name", "code", "biography", "avatar"}
    assert data["name"] == user.name
    assert data["code"] == user.code
    assert data["biography"] == ""
Ejemplo n.º 3
0
 def get_speakers(self, obj):
     request = self.context.get('request')
     has_slots = obj.slots.filter(is_visible=True) and obj.state == SubmissionStates.CONFIRMED
     has_permission = request and request.user.has_perm('orga.view_speakers', request.event)
     if has_slots or has_permission:
         return SubmitterSerializer(obj.speakers.all(), many=True).data
     return []
Ejemplo n.º 4
0
class SubmissionSerializer(I18nAwareModelSerializer):
    speakers = SubmitterSerializer(many=True)
    submission_type = SlugRelatedField(slug_field='name', read_only=True)
    slot = SlotSerializer(TalkSlot.objects.filter(is_visible=True),
                          read_only=True)
    duration = SerializerMethodField()

    def get_duration(self, obj):
        return obj.export_duration

    class Meta:
        model = Submission
        fields = (
            'code',
            'speakers',
            'title',
            'submission_type',
            'state',
            'abstract',
            'description',
            'duration',
            'do_not_record',
            'content_locale',
            'slot',
            'image',
        )
Ejemplo n.º 5
0
 def get_speakers(self, obj):
     has_slots = (obj.slots.filter(is_visible=True)
                  and obj.state == SubmissionStates.CONFIRMED)
     if has_slots or self.can_view_speakers:
         return SubmitterSerializer(
             obj.speakers.all(),
             many=True,
             context=self.context,
         ).data
     return []
Ejemplo n.º 6
0
class SubmissionSerializer(I18nAwareModelSerializer):
    speakers = SubmitterSerializer(many=True)
    submission_type = SlugRelatedField(slug_field='name', read_only=True)
    track = SlugRelatedField(slug_field='name', read_only=True)
    slot = SlotSerializer(TalkSlot.objects.filter(is_visible=True),
                          read_only=True)
    duration = SerializerMethodField()
    answers = SerializerMethodField()

    @property
    def is_orga(self):
        request = self.context.get('request')
        if request:
            return request.user.has_perm('orga.view_submissions',
                                         request.event)
        return False

    @staticmethod
    def get_duration(obj):
        return obj.export_duration

    def get_answers(self, obj):
        if self.is_orga:
            return AnswerSerializer(Answer.objects.filter(submission=obj),
                                    many=True).data
        return []

    class Meta:
        model = Submission
        fields = (
            'code',
            'speakers',
            'title',
            'submission_type',
            'track',
            'state',
            'abstract',
            'description',
            'duration',
            'do_not_record',
            'is_featured',
            'content_locale',
            'slot',
            'image',
            'answers',
        )
Ejemplo n.º 7
0
def test_submitter_serializer(submission):
    user = submission.speakers.first()
    data = SubmitterSerializer(user, context={'event': submission.event}).data
    assert data.keys() == {'name', 'code', 'biography', 'avatar'}
    assert data['name'] == user.name
    assert data['code'] == user.code
Ejemplo n.º 8
0
def test_submitter_serializer(submission):
    user = submission.speakers.first()
    data = SubmitterSerializer(user, context={"event": submission.event}).data
    assert data.keys() == {"name", "code", "biography", "avatar"}
    assert data["name"] == user.name
    assert data["code"] == user.code