示例#1
0
class QualificationSerializer(serializers.ModelSerializer):
    qt = ReadOnlyField(source="qualification")
    desc = ReadOnlyField(source="description")

    class Meta:
        model = Qualification
        fields = ['qt', 'desc']
class ReaderStudySerializer(HyperlinkedModelSerializer):
    questions = QuestionSerializer(many=True, read_only=True)
    hanging_list_images = SerializerMethodField()
    help_text = ReadOnlyField()
    case_text = ReadOnlyField(source="cleaned_case_text")

    class Meta:
        model = ReaderStudy
        fields = (
            "api_url",
            "slug",
            "description",
            "help_text",
            "hanging_list_images",
            "is_valid",
            "pk",
            "questions",
            "title",
            "is_educational",
            "has_ground_truth",
            "case_text",
            "allow_answer_modification",
            "allow_case_navigation",
            "allow_show_all_annotations",
        )

    def get_hanging_list_images(self, obj: ReaderStudy):
        """Used by hanging_list_images serializer field."""
        return obj.get_hanging_list_images_for_user(
            user=self.context["request"].user)
示例#3
0
class WorkSerializer(serializers.ModelSerializer):
    wp = ReadOnlyField(source="workprofile")
    desc = ReadOnlyField(source="description")

    class Meta:
        model = Work
        fields = ['wp', 'desc']
示例#4
0
class TypeSerializer(serializers.ModelSerializer):
    gt = ReadOnlyField(source="key")
    desc = ReadOnlyField(source="description")

    class Meta:
        model = Type
        fields = ['gt', 'desc']
示例#5
0
class ProviderSerializer(ModelSerializer, MetaNameSerializer):
    """Provider Serializer"""

    assigned_application_slug = ReadOnlyField(source="application.slug")
    assigned_application_name = ReadOnlyField(source="application.name")

    component = SerializerMethodField()

    def get_component(self, obj: Provider) -> str:  # pragma: no cover
        """Get object component so that we know how to edit the object"""
        # pyright: reportGeneralTypeIssues=false
        if obj.__class__ == Provider:
            return ""
        return obj.component

    class Meta:

        model = Provider
        fields = [
            "pk",
            "name",
            "authorization_flow",
            "property_mappings",
            "component",
            "assigned_application_slug",
            "assigned_application_name",
            "verbose_name",
            "verbose_name_plural",
            "meta_model_name",
        ]
示例#6
0
class QualificationSerializer(serializers.ModelSerializer):
    mob = ReadOnlyField(source="mobile")
    em = ReadOnlyField(source="email")

    class Meta:
        model = Student
        fields = ['mob', 'em']
示例#7
0
class ApplicationSerializer(ModelSerializer):
    """Application Serializer"""

    launch_url = ReadOnlyField(source="get_launch_url")
    provider_obj = ProviderSerializer(source="get_provider", required=False)

    meta_icon = ReadOnlyField(source="get_meta_icon")

    class Meta:

        model = Application
        fields = [
            "pk",
            "name",
            "slug",
            "provider",
            "provider_obj",
            "launch_url",
            "meta_launch_url",
            "meta_icon",
            "meta_description",
            "meta_publisher",
            "policy_engine_mode",
        ]
        extra_kwargs = {
            "meta_icon": {
                "read_only": True
            },
        }
示例#8
0
class PlayerSerializer(serializers.ModelSerializer):
    user = TeamUserSerializer()
    no_of_matches = ReadOnlyField(source='get_no_of_matches', default=0)
    player_avg_score = ReadOnlyField(source='get_player_avg_score', default=0)

    class Meta:
        model = Player
        fields = ['id', 'height', 'user', 'no_of_matches', 'player_avg_score']
示例#9
0
class FriendshipRelationListSerializer(ModelSerializer):
    """Сериализатор для обработки списка заявок в друзья."""
    creator = ReadOnlyField(source='creator.id')
    friend_object = ReadOnlyField(source='friend_object.id')

    class Meta:
        model = FriendshipRelation
        fields = '__all__'
示例#10
0
class EntitySerializer(serializers.HyperlinkedModelSerializer):
    street_address = ReadOnlyField()
    formatted_address = ReadOnlyField()
    country_full = ReadOnlyField(source='get_country_display')

    class Meta:
        model = Entity
        fields = '__all__'
示例#11
0
class InviteToMeSerializer(ModelSerializer):
    """Сериализатор для обработки входящих приглашений."""
    creator = ReadOnlyField(source='creator.id')
    room = ReadOnlyField(source='room.slug')
    invite_object = ReadOnlyField(source='invite_object.id')

    class Meta:
        model = RoomInvite
        fields = '__all__'
示例#12
0
class PlayerSerializer(serializers.HyperlinkedModelSerializer):
    logger.info('Starting player serializer!')
    team = TeamSerializer()
    avg_score = ReadOnlyField(source='get_stats', default=0)
    no_of_matches = ReadOnlyField(source='get_no_of_matches', default=0)
    players_type = ReadOnlyField(source='get_player_type', default=0)

    class Meta:
        model = Player
        fields = ['id', 'fullname', 'height', 'team', 'avg_score', 'no_of_matches', 'players_type']
示例#13
0
class CommentsTaskSerializer(ModelSerializer):
    created_at = ReadOnlyField()
    fetched_at = ReadOnlyField()
    finished_at = ReadOnlyField()
    status = ReadOnlyField()
    status_message = ReadOnlyField()

    class Meta:
        model = models.CommentsTask
        fields = "__all__"
示例#14
0
class EnsembleSerializer(HyperlinkedModelSerializer):
    str = ReadOnlyField(source='__str__')
    html = ReadOnlyField()
    type = StringRelatedField()
    front_url = HyperlinkedIdentityField(view_name='ensemble_detail',
                                         lookup_field='slug')

    class Meta(object):
        model = Ensemble
        fields = ('id', 'str', 'html', 'type', 'front_url', 'url')
示例#15
0
class ProxyOutpostConfigSerializer(ModelSerializer):
    """Proxy provider serializer for outposts"""

    assigned_application_slug = ReadOnlyField(source="application.slug")
    assigned_application_name = ReadOnlyField(source="application.name")

    oidc_configuration = SerializerMethodField()
    token_validity = SerializerMethodField()
    scopes_to_request = SerializerMethodField()

    @extend_schema_field(OpenIDConnectConfigurationSerializer)
    def get_oidc_configuration(self, obj: ProxyProvider):
        """Embed OpenID Connect provider information"""
        return ProviderInfoView(
            request=self.context["request"]._request).get_info(obj)

    def get_token_validity(self, obj: ProxyProvider) -> Optional[float]:
        """Get token validity as second count"""
        return timedelta_from_string(obj.token_validity).total_seconds()

    def get_scopes_to_request(self, obj: ProxyProvider) -> list[str]:
        """Get all the scope names the outpost should request,
        including custom-defined ones"""
        scope_names = set(
            ScopeMapping.objects.filter(provider__in=[obj]).values_list(
                "scope_name", flat=True))
        return list(scope_names)

    class Meta:

        model = ProxyProvider
        fields = [
            "pk",
            "name",
            "internal_host",
            "external_host",
            "internal_host_ssl_validation",
            "client_id",
            "client_secret",
            "oidc_configuration",
            "cookie_secret",
            "certificate",
            "skip_path_regex",
            "basic_auth_enabled",
            "basic_auth_password_attribute",
            "basic_auth_user_attribute",
            "mode",
            "cookie_domain",
            "token_validity",
            "scopes_to_request",
            "assigned_application_slug",
            "assigned_application_name",
        ]
示例#16
0
class IndividuSerializer(HyperlinkedModelSerializer):
    str = ReadOnlyField(source='__str__')
    html = ReadOnlyField()
    naissance = AncrageSpatioTemporelSerializer()
    deces = AncrageSpatioTemporelSerializer()
    professions = PrimaryKeyRelatedField(many=True, read_only=True)
    front_url = HyperlinkedIdentityField(view_name='individu_detail',
                                         lookup_field='slug')

    class Meta(object):
        model = Individu
        fields = ('id', 'str', 'html', 'nom', 'prenoms', 'naissance', 'deces',
                  'professions', 'parents', 'front_url', 'url')
class ChangesetSerializerToStaff(GeoFeatureModelSerializer):
    """Serializer with all the Changeset model fields, except the
    'powerfull_editor'.
    """
    check_user = ReadOnlyField(source='check_user.name', default=None)
    reasons = BasicSuspicionReasonsSerializer(many=True, read_only=True)
    tags = BasicTagSerializer(many=True, read_only=True)
    features = ReadOnlyField(source='new_features', default=list)

    class Meta:
        model = Changeset
        geo_field = 'bbox'
        exclude = ('powerfull_editor', 'new_features')
示例#18
0
class OfficeSerializer(ModelSerializer):

    instance = HyperlinkedIdentityField(view_name="office-detail")
    node_pos = ReadOnlyField()
    parentId = PrimaryKeyRelatedField(source="parent",
                                      queryset=Office.objects.all())
    root = PrimaryKeyRelatedField(many=False, read_only=True)
    height = ReadOnlyField()

    class Meta:
        model = Office
        fields = [
            "id", "node_pos", "name", "parentId", "root", "height", "instance"
        ]
示例#19
0
class MemberSerializer(serializers.ModelSerializer):
    current_member = ReadOnlyField()
    current_associate_member = ReadOnlyField()
    current_donating_member = ReadOnlyField()
    current_merit_member = ReadOnlyField()
    current_honorary_member = ReadOnlyField()

    class Meta:
        model = Member
        exclude = (
            "merit_history",
            "associate_member",
            "donating_member",
        )
示例#20
0
class SoldItemSerializer(HyperlinkedModelSerializer):
    item = ItemSerializer(many=False)
    net_value = ReadOnlyField()
    vat_value = ReadOnlyField()
    total_value = ReadOnlyField()
    total_earnings = ReadOnlyField()

    class Meta:
        model = SoldItem
        read_only = ['net_value', 'vat_value', 'total_value', 'total_earnings']
        fields = [
            'url', 'item', 'units', 'trial', 'net_value', 'vat_value',
            'total_value', 'total_earnings'
        ]
示例#21
0
class BookListSerializer(ModelSerializer):
    game = ReadOnlyField(source='game.name')
    game_id = ReadOnlyField(source='game.id')
    tags = TagSerializer(many=True,
                         allow_null=True,
                         read_only=True,
                         source='game.tags')

    class Meta:
        model = Book
        fields = [
            'id', 'title', 'edited_at', 'cover', 'game', 'tags', 'game_id',
            'rating', 'price'
        ]
        read_only_fields = ['rating']
示例#22
0
class MenuCardSerializer(DynamicFieldsModelSerializer):
    dishes = DishSerializer(many=True)
    dishes_num = ReadOnlyField()

    class Meta:
        model = MenuCard
        fields = [
            "id",
            "name",
            "description",
            "dishes",
            "dishes_num",
            "created",
            "modified",
        ]

    def validate_dishes(self, data):
        self._validate_dish_names_and_type(data)
        return data

    @staticmethod
    def _validate_dish_names_and_type(data):
        name_food_dish = [(dish.get("name"), dish.get("food_type"))
                          for dish in data]
        if len(name_food_dish) != len(set(name_food_dish)):
            raise ValidationError("List contains duplicated dish names")

    def create(self, validated_data):
        dishes = validated_data.pop("dishes")
        menu_card = super().create(validated_data)
        for dish in dishes:
            Dish.objects.create(menu_card=menu_card, **dish)
        return menu_card
示例#23
0
class TeamSerializer(serializers.ModelSerializer):
    coach = TeamUserSerializer()
    team_avg_score = ReadOnlyField(source='get_avg_team_score')

    class Meta:
        model = Team
        fields = ['id', 'name', 'coach', 'team_avg_score']
示例#24
0
class TeamSerializer(serializers.HyperlinkedModelSerializer):
    logger.info('Starting team serializer!')
    avg_team_score = ReadOnlyField(source='get_avg_team_score', default=0)

    class Meta:
        model = Team
        fields = ['id','name', 'address', 'mobile', 'created_at', 'avg_team_score']
示例#25
0
class BlacklistSerializer(ModelSerializer):
    date = DateTimeField(read_only=True)
    added_by = ReadOnlyField(source='added_by.username')

    class Meta:
        model = BlacklistedUser
        fields = ('uid', 'username', 'date', 'added_by')
示例#26
0
class RedirectSerializer(serializers.ModelSerializer):
    # TODO: This needs some work, prob a custom field for destination
    source = ReadOnlyField(source='old_path')
    destination = ReadOnlyField(source='link')

    def to_representation(self, data):
        serialized_data = super(RedirectSerializer,
                                self).to_representation(data)
        if 'http' not in serialized_data['destination']:
            serialized_data['destination'] = '/oneyou{}'.format(
                serialized_data['destination'])
        return serialized_data

    class Meta:
        model = apps.get_model('wagtailredirects', 'Redirect')
        fields = ('source', 'destination', 'is_permanent')
示例#27
0
class PublicBaseDetailSerializer(BaseLocationSerializer):
    opening_hours = OpeningHoursSerializer(source="openinghours_set",
                                           required=False)
    images = ReadOnlyField(default=[])

    class Meta(BaseLocationSerializer.Meta):
        fields = BaseLocationSerializer.Meta.fields + [
            "created",
            "updated",
            "latitude",
            "longitude",
            "telephone",
            "website",
            "email",
            "comment",
            "comment_english",
            "comment_opening_hours",
            "comment_public_transport",
            "closed",
            "opening_hours",
            "tags",
            "attributes",
            "images",
        ]

        read_only_fields = BaseLocationSerializer.Meta.read_only_fields + [
            "created",
            "updated",
            "images",
        ]
示例#28
0
class BaseLocationSerializer(ModelSerializer):
    id = ReadOnlyField(source="id_string")

    class Meta:
        model = BaseLocation
        fields = ["id", "name", "street", "postal_code", "city", "vegan"]
        read_only_fields = ["id_string"]
示例#29
0
class NotebookSerializer(ModelSerializer):
    owner = ReadOnlyField(source='owner.username')
    notes = HyperlinkedRelatedField(many=True, read_only=True, view_name='api:note-detail')

    class Meta:
        model = Notebook
        fields = ('id', 'title', 'colour', 'owner', 'notes', )
示例#30
0
class MappingTeamSerializer(ModelSerializer):
    owner = ReadOnlyField(source='created_by.username', default=None)

    class Meta:
        model = MappingTeam
        fields = ('id', 'name', 'users', 'trusted', 'owner')
        read_only_fields = ('trusted', 'owner')