Esempio n. 1
0
class MeetingDetailSerializer(BasisModelSerializer):
    invitations = MeetingInvitationSerializer(many=True, read_only=True)
    report = ContentSerializerField()
    report_author = PublicUserField(queryset=User.objects.all(),
                                    allow_null=True,
                                    required=False)
    created_by = PublicUserField(read_only=True)
    comments = CommentSerializer(read_only=True, many=True)
    content_target = CharField(read_only=True)

    class Meta:
        model = Meeting
        fields = (
            "id",
            "created_by",
            "title",
            "location",
            "start_time",
            "end_time",
            "report",
            "report_author",
            "invitations",
            "comments",
            "content_target",
        )
        read_only = True

    def create(self, validated_data):
        meeting = Meeting.objects.create(**validated_data)
        owner = validated_data["current_user"]
        meeting.invite_user(owner, owner)
        return meeting
Esempio n. 2
0
class PodcastCreateAndUpdateSerializer(BasisModelSerializer):

    description = ContentSerializerField()
    authors = PublicUserField(many=True, queryset=User.objects.all())
    thanks = PublicUserField(many=True, queryset=User.objects.all())

    class Meta:
        model = Podcast
        fields = ('id', 'source', 'description', 'authors', 'thanks')
Esempio n. 3
0
class PodcastCreateAndUpdateSerializer(BasisModelSerializer):

    description = ContentSerializerField()
    authors = PublicUserField(many=True, queryset=User.objects.all())
    thanks = PublicUserField(many=True, queryset=User.objects.all())

    class Meta:
        model = Podcast
        fields = ("id", "source", "description", "authors", "thanks")
Esempio n. 4
0
class MeetingListSerializer(BasisModelSerializer):
    report_author = PublicUserField(queryset=User.objects.all(),
                                    allow_null=True,
                                    required=False)
    created_by = PublicUserField(read_only=True)

    class Meta:
        model = Meeting
        fields = ('id', 'created_by', 'title', 'location', 'start_time',
                  'end_time', 'report_author')
Esempio n. 5
0
class ApplicationSerializer(serializers.ModelSerializer):
    user = PublicUserField(read_only=True)

    class Meta:
        model = APIApplication
        fields = [
            "id",
            "name",
            "description",
            "redirect_uris",
            "client_id",
            "client_secret",
            "user",
        ]
        read_only_fields = ["client_id", "client_secret", "user"]

    def save(self, **kwargs):
        """
        Save application with secure parameters.
        """
        request = self.context["request"]
        kwargs["user"] = request.user
        kwargs.update({
            "skip_authorization":
            False,
            "client_type":
            APIApplication.CLIENT_PUBLIC,
            "authorization_grant_type":
            APIApplication.GRANT_AUTHORIZATION_CODE,
        })
        return super().save(**kwargs)
Esempio n. 6
0
class GalleryPictureSerializer(serializers.ModelSerializer):

    file = ImageField(required=True, options={"height": 700, "smart": True})
    thumbnail = ImageField(
        source="file",
        read_only=True,
        options={"height": 200, "width": 300, "smart": True},
    )
    raw_file = FileField(source="file", read_only=True)
    comments = CommentSerializer(read_only=True, many=True)
    content_target = CharField(read_only=True)
    taggees = PublicUserField(many=True, queryset=User.objects.all(), required=False)

    class Meta:
        model = GalleryPicture
        fields = (
            "id",
            "gallery",
            "description",
            "taggees",
            "active",
            "file",
            "thumbnail",
            "raw_file",
            "comments",
            "content_target",
        )
        read_only_fields = ("raw_file", "thumbnail", "gallery")

    def validate(self, attrs):
        gallery = Gallery.objects.get(pk=self.context["view"].kwargs["gallery_pk"])
        return {"gallery": gallery, **attrs}
Esempio n. 7
0
class GalleryPictureSerializer(serializers.ModelSerializer):

    file = ImageField(required=True, options={'height': 700, 'smart': True})
    thumbnail = ImageField(source='file',
                           read_only=True,
                           options={
                               'height': 200,
                               'width': 300,
                               'smart': True
                           })
    raw_file = FileField(source='file', read_only=True)
    comments = CommentSerializer(read_only=True, many=True)
    comment_target = CharField(read_only=True)
    taggees = PublicUserField(many=True,
                              queryset=User.objects.all(),
                              required=False)

    class Meta:
        model = GalleryPicture
        fields = ('id', 'gallery', 'description', 'taggees', 'active', 'file',
                  'thumbnail', 'raw_file', 'comments', 'comment_target')
        read_only_fields = ('raw_file', 'thumbnail', 'gallery')

    def validate(self, attrs):
        gallery = Gallery.objects.get(
            pk=self.context['view'].kwargs['gallery_pk'])
        return {'gallery': gallery, **attrs}
Esempio n. 8
0
class CompanyAdminDetailSerializer(BasisModelSerializer):
    comments = CommentSerializer(read_only=True, many=True)
    content_target = CharField(read_only=True)

    student_contact = PublicUserField(required=False,
                                      allow_null=True,
                                      queryset=User.objects.all())
    semester_statuses = SemesterStatusDetailSerializer(many=True,
                                                       read_only=True)
    company_contacts = CompanyContactSerializer(many=True, read_only=True)

    logo = ImageField(required=False, options={"height": 500})
    files = CompanyFileSerializer(many=True, read_only=True)

    class Meta:
        model = Company
        fields = (
            "id",
            "name",
            "student_contact",
            "description",
            "phone",
            "company_type",
            "website",
            "address",
            "payment_mail",
            "comments",
            "content_target",
            "semester_statuses",
            "active",
            "admin_comment",
            "logo",
            "files",
            "company_contacts",
        )
Esempio n. 9
0
class ApplicationSerializer(serializers.ModelSerializer):
    user = PublicUserField(read_only=True)

    class Meta:
        model = APIApplication
        fields = [
            'id', 'name', 'description', 'redirect_uris', 'client_id',
            'client_secret', 'user'
        ]
        read_only_fields = ['client_id', 'client_secret', 'user']

    def save(self, **kwargs):
        """
        Save application with secure parameters.
        """
        request = self.context['request']
        kwargs['user'] = request.user
        kwargs.update({
            'skip_authorization':
            False,
            'client_type':
            APIApplication.CLIENT_PUBLIC,
            'authorization_grant_type':
            APIApplication.GRANT_AUTHORIZATION_CODE,
        })
        return super().save(**kwargs)
Esempio n. 10
0
class UserEmailCreateSerializer(serializers.Serializer):

    user = PublicUserField(queryset=User.objects.all())
    internal_email = EmailAddressField(queryset=EmailAddress.objects.all())
    internal_email_enabled = serializers.BooleanField()

    def create(self, validated_data):
        user = validated_data["user"]
        internal_email = validated_data["internal_email"]
        internal_email_enabled = validated_data["internal_email_enabled"]

        user.internal_email = internal_email
        user.internal_email_enabled = internal_email_enabled
        user.save()

        return user

    def to_representation(self, instance):
        serializer = UserEmailSerializer(instance=instance)
        return serializer.data

    def validate_user(self, user):
        if user.internal_email_id is not None:
            raise exceptions.ValidationError(
                "User already has a internal email.")
        return user
Esempio n. 11
0
class UserEmailSerializer(GSuiteAddressSerializer):

    user = PublicUserField(read_only=True, source='*')
    internal_email = EmailAddressField(queryset=EmailAddress.objects.all(), validators=[])

    class Meta:
        model = User
        fields = ('id', 'user', 'internal_email', 'internal_email_enabled')
Esempio n. 12
0
class MeetingListSerializer(BasisModelSerializer):
    report_author = PublicUserField(queryset=User.objects.all(),
                                    allow_null=True,
                                    required=False)
    created_by = PublicUserField(read_only=True)

    class Meta:
        model = Meeting
        fields = (
            "id",
            "created_by",
            "title",
            "location",
            "start_time",
            "end_time",
            "report_author",
        )
Esempio n. 13
0
class MembershipHistorySerializer(serializers.ModelSerializer):

    abakus_group = AbakusGroupField(read_only=True)
    user = PublicUserField(read_only=True)

    class Meta:
        model = MembershipHistory
        fields = ("id", "user", "abakus_group", "role", "start_date", "end_date")
Esempio n. 14
0
class MeetingDetailSerializer(BasisModelSerializer):
    invitations = MeetingInvitationSerializer(many=True, read_only=True)
    report = ContentSerializerField()
    report_author = PublicUserField(queryset=User.objects.all(),
                                    allow_null=True,
                                    required=False)
    created_by = PublicUserField(read_only=True)

    class Meta:
        model = Meeting
        fields = ('id', 'created_by', 'title', 'location', 'start_time',
                  'end_time', 'report', 'report_author', 'invitations')

    def create(self, validated_data):
        meeting = Meeting.objects.create(**validated_data)
        owner = validated_data['current_user']
        meeting.invite_user(owner, owner)
        return meeting
Esempio n. 15
0
class MembershipHistorySerializer(serializers.ModelSerializer):

    abakus_group = AbakusGroupField(read_only=True)
    user = PublicUserField(read_only=True)

    class Meta:
        model = MembershipHistory
        fields = ('id', 'user', 'abakus_group', 'role', 'start_date',
                  'end_date')
Esempio n. 16
0
class UserEmailSerializer(GSuiteAddressSerializer):

    user = PublicUserField(read_only=True, source="*")
    internal_email = EmailAddressField(queryset=EmailAddress.objects.all(),
                                       validators=[])

    class Meta:
        model = User
        fields = ("id", "user", "internal_email", "internal_email_enabled")
Esempio n. 17
0
class CompanyAdminListSerializer(BasisModelSerializer):
    semester_statuses = SemesterStatusSerializer(many=True, read_only=True)
    student_contact = PublicUserField(required=False,
                                      queryset=User.objects.all())

    class Meta:
        model = Company
        fields = ('id', 'name', 'semester_statuses', 'student_contact',
                  'admin_comment', 'active')
Esempio n. 18
0
class FollowerSerializer(serializers.ModelSerializer):

    follower = PublicUserField(read_only=True)

    class Meta:
        fields = ("id", "follower", "target")

    def save(self, **kwargs):
        request = self.context["request"]
        kwargs["follower"] = request.user
        return super().save(**kwargs)
Esempio n. 19
0
class GallerySerializer(BasisModelSerializer):

    cover = GalleryCoverField(queryset=GalleryPicture.objects.all(),
                              required=False)
    photographers = PublicUserField(many=True, queryset=User.objects.all())
    event = PublicEventField(queryset=Event.objects.all(), required=False)

    class Meta:
        model = Gallery
        fields = ('id', 'title', 'description', 'location', 'taken_at',
                  'created_at', 'event', 'photographers', 'cover',
                  'public_metadata')
        read_only_fields = ('created_at', 'pictures')
Esempio n. 20
0
class ObjectPermissionsSerializerMixin(serializers.Serializer):
    class Meta:
        fields = (
            "can_edit_users",
            "can_view_groups",
            "can_edit_groups",
            "require_auth",
        )

    can_edit_users = PublicUserField(
        queryset=User.objects.all(), allow_null=True, required=False, many=True
    )
    can_edit_groups = AbakusGroupField(
        queryset=AbakusGroup.objects.all(), allow_null=True, required=False, many=True
    )
    can_view_groups = AbakusGroupField(
        queryset=AbakusGroup.objects.all(), allow_null=True, required=False, many=True
    )
Esempio n. 21
0
class MembershipSerializer(serializers.ModelSerializer):
    user = PublicUserField(queryset=User.objects.all())

    class Meta:
        model = Membership
        fields = (
            "id",
            "user",
            "abakus_group",
            "role",
            "is_active",
            "email_lists_enabled",
            "created_at",
        )
        read_only_fields = ("created_at", "abakus_group")

    def validate(self, attrs):
        group = AbakusGroup.objects.get(
            pk=self.context["view"].kwargs["group_pk"])
        return {"abakus_group": group, **attrs}
Esempio n. 22
0
class CompanyAdminDetailSerializer(BasisModelSerializer):
    comments = CommentSerializer(read_only=True, many=True)
    comment_target = CharField(read_only=True)

    student_contact = PublicUserField(required=False,
                                      allow_null=True,
                                      queryset=User.objects.all())
    semester_statuses = SemesterStatusDetailSerializer(many=True,
                                                       read_only=True)
    company_contacts = CompanyContactSerializer(many=True, read_only=True)

    logo = ImageField(required=False, options={'height': 500})
    files = CompanyFileSerializer(many=True, read_only=True)

    class Meta:
        model = Company
        fields = ('id', 'name', 'student_contact', 'description', 'phone',
                  'company_type', 'website', 'address', 'payment_mail',
                  'comments', 'comment_target', 'semester_statuses', 'active',
                  'admin_comment', 'logo', 'files', 'company_contacts')
Esempio n. 23
0
class GallerySerializer(BasisModelSerializer):

    cover = GalleryCoverField(queryset=GalleryPicture.objects.all(), required=False)
    photographers = PublicUserField(many=True, queryset=User.objects.all())
    event = PublicEventField(queryset=Event.objects.all(), required=False)

    class Meta:
        model = Gallery
        fields = (
            "id",
            "title",
            "description",
            "location",
            "taken_at",
            "created_at",
            "event",
            "photographers",
            "cover",
            "public_metadata",
        )
        read_only_fields = ("created_at", "pictures")
Esempio n. 24
0
class MembershipSerializer(serializers.ModelSerializer):
    user = PublicUserField(queryset=User.objects.all())

    class Meta:
        model = Membership
        fields = (
            'id',
            'user',
            'abakus_group',
            'role',
            'is_active',
            'email_lists_enabled',
            'created_at',
        )
        read_only_fields = (
            'created_at',
            'abakus_group',
        )

    def validate(self, attrs):
        group = AbakusGroup.objects.get(
            pk=self.context['view'].kwargs['group_pk'])
        return {'abakus_group': group, **attrs}