Example #1
0
class ICMRMedicalConditionSerializer(serializers.ModelSerializer):
    date_of_onset_of_symptoms = serializers.DateField()
    symptoms = serializers.ListSerializer(child=ChoiceField(
        choices=SYMPTOM_CHOICES))
    hospitalization_date = serializers.DateField()
    hospital_phone_number = serializers.CharField(
        source="consultation.facility.phone_number")
    hospital_name = serializers.CharField(source="consultation.facility.name")

    medical_conditions = serializers.ListSerializer(child=ChoiceField(
        choices=DISEASE_CHOICES))

    class Meta:
        model = PatientSampleICMR
        fields = (
            # Section B.3
            "date_of_onset_of_symptoms",
            "symptoms",
            "has_sari",
            "has_ari",
            # Section B.4
            "medical_conditions",
            # Section B.5
            "hospitalization_date",
            "diagnosis",
            "diff_diagnosis",
            "etiology_identified",
            "is_atypical_presentation",
            "is_unusual_course",
            "hospital_phone_number",
            "hospital_name",
            "doctor_name",
        )
class AnalyzeObjectSerializer(serializers.Serializer):
    serde_choices = SERDE_CHOICES
    stored_choices = STORED_CHOICES

    # Fields
    schema = serializers.CharField(required=True, max_length=100)
    data_location = serializers.CharField(required=True, max_length=128)

    serde = serializers.ChoiceField(serde_choices)
    serde_properties = serializers.ListSerializer(child=serializers.CharField(), required=False)
    # serde_properties = serializers.DictField(child=serializers.CharField())

    stored = serializers.ChoiceField(stored_choices)

    table_properties = serializers.ListSerializer(child=serializers.CharField(), required=False)
    # table_properties = serializers.DictField(child=serializers.CharField())
    csv_file = serializers.CharField(allow_blank=True, required=True)

    def update(self, instance, validated_data):
        instance.schema = validated_data.get('schema', instance.schema)
        instance.table = validated_data.get('table', instance.table)
        instance.data_location = validated_data.get('data_location', instance.data_location)
        instance.serde = validated_data.get('serde', instance.serde)
        instance.serde_properties = validated_data.get('serde_properties', instance.serde_properties)
        instance.stored = validated_data.get('stored', instance.stored)
        instance.table_properties = validated_data.get('table_properties', instance.table_properties)
        instance.csv_file = validated_data.get('csv_file', instance.csv_file)
        instance.create_table = validated_data.get('create_table', instance.create_table)
        return instance

    def create(self, validated_data):
        return AnalyzerObject(**validated_data)
class VnfInstanceSubscriptionFilterSerializer(serializers.Serializer):
    vnfdIds = serializers.ListSerializer(
        help_text="If present, match VNF instances that were created based"
        " on aVNFD identified by one of the vnfdId values listed"
        " in this attribute.",
        required=False,
        allow_null=True,
        many=True)
    vnfProductsFromProviders = serializers.ListSerializer(
        help_text="If present, match VNF instances that "
        "belong to VNF products from certain"
        " providers.",
        required=False,
        allow_null=True,
        many=True)
    vnfInstanceIds = serializers.ListSerializer(
        help_text="If present, match VNF instances with an instance "
        "identifier listed in this attribute.",
        required=False,
        allow_null=True,
        many=True)
    vnfInstanceNames = serializers.ListSerializer(
        help_text="If present, match VNF instances with a VNF "
        "Instance Name listed in this attribute.",
        required=False,
        allow_null=True,
        many=True)
 class XAPIView(APIView):
     @extend_schema(
         request=serializers.ListSerializer(child=serializers.IntegerField()),
         responses=serializers.ListSerializer(child=serializers.IntegerField()),
     )
     def post(self, request):
         pass  # pragma: no cover
 class TestSerializer(serializers.Serializer):
     integers = serializers.ListSerializer(
         child=serializers.ListSerializer(
             child=serializers.IntegerField()))
     booleans = serializers.ListSerializer(
         child=serializers.ListSerializer(
             child=serializers.BooleanField()))
Example #6
0
class CourierRetrieveSerializer(serializers.ModelSerializer):
    courier_id = serializers.IntegerField(source="id")
    courier_type = serializers.PrimaryKeyRelatedField(
        queryset=CourierType.objects.all(), source="type")
    regions = serializers.ListSerializer(child=RegionField())
    working_hours = serializers.ListSerializer(child=WorkingHoursField())
    rating = serializers.FloatField()
    earnings = serializers.SerializerMethodField(method_name="get_earnings")

    def get_earnings(self, obj):
        sum = obj.orders.filter(is_delivered=True).aggregate(
            Sum("courier_price"))["courier_price__sum"]
        return sum if sum else 0

    class Meta:
        model = Courier
        fields = (
            "courier_id",
            "courier_type",
            "regions",
            "working_hours",
            "rating",
            "earnings",
        )

    def to_representation(self, instance):
        representation = super().to_representation(instance)
        for field in self.fields:
            if representation[field] is None:
                representation.pop(field)
        return representation
class FullPostSerializer(serializers.ModelSerializer):
    tags = serializers.ListSerializer(
        child=serializers.CharField(max_length=20),
        allow_empty=True,
        validators=[MaxLengthValidator(10)])
    default_image = ImageByIdSerializer()
    images = serializers.ListSerializer(child=UploadedImageSerializer(),
                                        validators=[MaxLengthValidator(10)],
                                        allow_empty=False)
    comments = serializers.ListSerializer(child=CommentSerializer(),
                                          validators=[MaxLengthValidator(10)],
                                          allow_empty=False)

    class Meta:
        model = Post
        fields = (
            'id',
            'title',
            'sub_title',
            'default_image',
            'images',
            'tags',
            'is_archived',
            'review_status',
            'date_created',
            'date_published',
            'date_modified',
            'comments',
        )

    def to_representation(self, instance):
        data = super(FullPostSerializer, self).to_representation(instance)
        data['tags'] = list(map(lambda x: x.name, instance.tags.all()))
        return data
Example #8
0
class RecipeSerializer(serializers.ModelSerializer):
    ingredients = serializers.ListSerializer(child=IngredientSerializer())
    steps = serializers.ListSerializer(child=StepSerializer())

    class Meta:
        model = Recipe
        fields = ('id', 'name', 'user', 'ingredients', 'steps')
Example #9
0
class JobSerializer(serializers.ModelSerializer):
    comments = GetCommentSerializer(many=True)
    bonuses = BonusSerializer(many=True)
    offers = serializers.ListSerializer(child=serializers.CharField())
    location_tags = SerializerMethodField()
    skill_tags = SerializerMethodField()
    created_by = UserSerializer()
    desired_profile = serializers.ListSerializer(child=serializers.CharField())

    class Meta:
        model = Job
        fields = ('id', 'title', 'description', 'short_description', 'status',
                  'desired_profile', 'offers', 'bonuses', 'offers',
                  'expires_at', 'created_by', 'comments', 'location_tags',
                  'skill_tags', 'created_by')

    def get_tag(self, type, obj):
        tags = obj.tags.filter(type=type).all()
        data = serializers.ListSerializer(instance=tags,
                                          child=serializers.CharField())
        return data.data

    def get_location_tags(self, job):
        return self.get_tag('loc', job)

    def get_skill_tags(self, job):
        return self.get_tag('skill', job)
Example #10
0
class CourierUpdateRequest(serializers.Serializer):
    courier_type = serializers.ChoiceField(label="Тип курьера", choices=COURIER_TYPE)
    regions = serializers.ListSerializer(
        label="Список идентификаторов районов", child=serializers.IntegerField()
    )
    working_hours = serializers.ListSerializer(
        label="График работы курьера", child=serializers.CharField()
    )
        class TestSerializer(serializers.Serializer):
            integers = serializers.ListSerializer(
                child=serializers.IntegerField())
            booleans = serializers.ListSerializer(
                child=serializers.BooleanField())

            def create(self, validated_data):
                return BasicObject(**validated_data)
Example #12
0
class ExportItemsAndPublishSerializer(serializers.Serializer):
    model_folder = serializers.CharField()
    username = serializers.CharField()
    uuid = serializers.CharField()
    model_id = serializers.CharField()
    report_ids = serializers.ListSerializer(
        child=serializers.IntegerField(), default=[])
    dashboard_ids = serializers.ListSerializer(
        child=serializers.IntegerField(), default=[])
Example #13
0
class RoutesCompareSerializer(serializers.Serializer):
    only_left = serializers.ListSerializer(child=serializers.ListSerializer(
        child=serializers.ListSerializer(child=serializers.CharField())))
    only_right = serializers.ListSerializer(child=serializers.ListSerializer(
        child=serializers.ListSerializer(child=serializers.CharField())))
    both = serializers.ListSerializer(child=serializers.ListSerializer(
        child=serializers.ListSerializer(child=serializers.CharField())))
Example #14
0
class CourierGetResponse(serializers.Serializer):
    courier_id = serializers.IntegerField(label="Уникальный идентификатор курьера")
    courier_type = serializers.ChoiceField(label="Тип курьера", choices=COURIER_TYPE)
    regions = serializers.ListSerializer(
        label="Список идентификаторов районов", child=serializers.IntegerField()
    )
    working_hours = serializers.ListSerializer(
        label="График работы курьера", child=serializers.CharField()
    )
    rating = serializers.FloatField(label="Рейтинг", required=False)
    earnings = serializers.IntegerField(label="Заработок")
class SubinitiativeSerializer(serializers.Serializer):
    pk = serializers.IntegerField()
    title = serializers.CharField(max_length=300)
    description = serializers.CharField(max_length=5000)
    date_time = serializers.DateTimeField()
    votes = serializers.IntegerField()
    author = serializers.CharField(source='initiative.user')
    tags = serializers.ListSerializer(child=serializers.CharField(
        source='tag.name'))
    comments = serializers.ListSerializer(child=CommentReadOnlySerializer(
        source='initiative.comment'))
    improvement_of = serializers.IntegerField(source='get_improvement_of_id')
Example #16
0
class ClientSerializer(serializers.Serializer):
    registration_client_uri = serializers.HyperlinkedIdentityField(
        read_only=True, view_name='client-detail')
    client_id = serializers.CharField(read_only=True)
    client_id_issued_at = TimestampField(read_only=True)
    client_secret = serializers.CharField(read_only=True)
    client_secret_expires_at = serializers.IntegerField(read_only=True)
    client_name = serializers.CharField(required=False, allow_blank=True)
    client_uri = serializers.URLField(required=False, allow_blank=True)
    initiate_login_uri = serializers.URLField(required=False, allow_blank=True)
    logo_uri = serializers.URLField(required=False, allow_blank=True)
    tos_uri = serializers.URLField(required=False, allow_blank=True)
    policy_uri = serializers.URLField(required=False, allow_blank=True)
    contacts = serializers.ListSerializer(child=serializers.CharField(),
                                          required=False)
    redirect_uris = serializers.ListSerializer(child=serializers.URLField(),
                                               required=False)
    post_logout_redirect_uris = serializers.ListSerializer(
        child=serializers.URLField(), required=False)
    application_type = serializers.ChoiceField(
        choices=Client.OAUTH_APPLICATION_TYPES, default='web', required=False)
    token_endpoint_auth_method = serializers.ChoiceField(
        choices=Client.OAUTH_AUTH_METHODS,
        default='client_secret_basic',
        required=False)
    software_id = serializers.CharField(required=False, allow_blank=True)
    software_version = serializers.CharField(required=False, allow_blank=True)
    trusted_scope = serializers.ListSerializer(child=serializers.CharField(),
                                               required=False)

    owner = serializers.CharField(read_only=True)

    # DRF hack - because list fields aren't displayed in forms
    redirect_uri = serializers.URLField(write_only=True,
                                        required=False,
                                        allow_blank=True)
    post_logout_redirect_uri = serializers.URLField(write_only=True,
                                                    required=False,
                                                    allow_blank=True)

    def create(self, validated_data):
        owner = self.context['request'].user
        if not owner.is_authenticated:
            owner = None
        return Client.objects.create(**validated_data, owner=owner)

    def update(self, instance, validated_data):
        for attr, value in validated_data.items():
            setattr(instance, attr, value)

        instance.save()
        return instance
class ProblemSerializer(serializers.Serializer):
    pk = serializers.IntegerField()
    title = serializers.CharField(max_length=300)
    description = serializers.CharField(max_length=5000)
    date_time = serializers.DateTimeField()
    votes = serializers.IntegerField()
    author = serializers.CharField(source='problem.user')
    tags = serializers.ListSerializer(child=serializers.CharField(
        source='tag.name'))
    comments = serializers.ListSerializer(child=CommentReadOnlySerializer(
        source='problem.comment'))
    solutions = serializers.ListSerializer(child=SolutionSerializer(
        source='problem.solution'))
Example #18
0
class NotifyReqSerializer(serializers.Serializer):
    nfvoid = serializers.CharField(
        help_text="NFVO identification",
        max_length=255,
        required=True,
        allow_null=True)
    vnfmid = serializers.CharField(
        help_text="VNFM identification",
        max_length=255,
        required=True,
        allow_null=True)
    vimid = serializers.CharField(
        help_text="VIM identification",
        max_length=255,
        required=True,
        allow_null=True)
    timestamp = serializers.CharField(
        help_text="Time stamp",
        max_length=255,
        required=False,
        allow_blank=True)
    vnfinstanceid = serializers.CharField(
        help_text="VNF instance identification",
        max_length=255,
        required=False,
        allow_null=True)
    eventtype = serializers.CharField(
        help_text="Event type",
        max_length=255,
        required=False,
        allow_null=True)
    vmlist = NotifyVmlistSerializer(
        help_text='Virtual machine list',
        required=False,
        many=True)
    extension = serializers.DictField(
        help_text="Extension",
        child=serializers.DictField(
            allow_null=True),
        required=False,
        allow_null=True)
    affectedcp = serializers.ListSerializer(
        help_text='Affected connected points',
        child=serializers.DictField(
            allow_null=True),
        required=False)
    affectedvirtuallink = serializers.ListSerializer(
        help_text='Affected virtual links',
        child=serializers.DictField(
            allow_null=True),
        required=False)
Example #19
0
class PatientDetailSerializer(PatientListSerializer):
    class MedicalHistorySerializer(serializers.Serializer):
        disease = ChoiceField(choices=DISEASE_CHOICES)
        details = serializers.CharField(required=False, allow_blank=True)

    class PatientTeleConsultationSerializer(serializers.ModelSerializer):
        class Meta:
            model = PatientTeleConsultation
            fields = "__all__"

    medical_history = serializers.ListSerializer(
        child=MedicalHistorySerializer(), required=False)
    tele_consultation_history = serializers.ListSerializer(
        child=PatientTeleConsultationSerializer(), read_only=True)
    last_consultation = serializers.SerializerMethodField(read_only=True)
    facility_object = FacilitySerializer(source="facility", read_only=True)

    def get_last_consultation(self, obj):
        last_consultation = PatientConsultation.objects.filter(
            patient=obj).last()
        if not last_consultation:
            return None
        return PatientConsultationSerializer(last_consultation).data

    class Meta:
        model = PatientRegistration
        exclude = ("created_by", "deleted")

    def create(self, validated_data):
        with transaction.atomic():
            medical_history = validated_data.pop("medical_history", [])
            validated_data["created_by"] = self.context["request"].user
            patient = super().create(validated_data)
            diseases = []
            for disease in medical_history:
                diseases.append(Disease(patient=patient, **disease))
            if diseases:
                Disease.objects.bulk_create(diseases, ignore_conflicts=True)
            return patient

    def update(self, instance, validated_data):
        with transaction.atomic():
            medical_history = validated_data.pop("medical_history", [])
            patient = super().update(instance, validated_data)
            Disease.objects.filter(patient=patient).update(deleted=True)
            diseases = []
            for disease in medical_history:
                diseases.append(Disease(patient=patient, **disease))
            if diseases:
                Disease.objects.bulk_create(diseases, ignore_conflicts=True)
            return patient
class PreviewEmailSerializer(serializers.ModelSerializer):
    to = serializers.ListSerializer(child=serializers.CharField())
    cc = serializers.ListSerializer(child=serializers.CharField(), allow_empty=True)
    bcc = serializers.ListSerializer(child=serializers.CharField(), allow_empty=True)

    class Meta:
        model = Email
        fields = (
            'from_email',
            'to', 'cc', 'bcc',
            'subject', 'html_message',

            # TODO: attachments
        )
class InitiativeSerializer(serializers.Serializer):
    pk = serializers.IntegerField()
    title = serializers.CharField(max_length=300)
    description = serializers.CharField(max_length=5000)
    date_time = serializers.DateTimeField()
    votes = serializers.IntegerField()
    author = serializers.CharField(source='initiative.user')
    improvement_of = serializers.PrimaryKeyRelatedField(
        queryset=Initiative.objects.all())
    tags = serializers.ListSerializer(child=serializers.CharField(
        source='tag.name'))
    comments = serializers.ListSerializer(child=CommentReadOnlySerializer(
        source='initiative.comment'))
    subinitiatives = serializers.ListSerializer(
        child=SubinitiativeSerializer(), source='get_subinitiatives')
Example #22
0
class AbsoluteCoordinateSerializer(ChooseFieldsSerializerMixin,
                                   serializers.Serializer):
    """
    Serializes a :class:`django_basin3d.synthesis.models.field.AbsoluteCoordinate`
    """

    horizontal_position = serializers.ListSerializer(
        child=ReadOnlySynthesisModelField(
            serializer_class=HorizonatalCoordinateSerializer))
    vertical_extent = serializers.ListSerializer(
        child=ReadOnlySynthesisModelField(
            serializer_class=VerticalCoordinateSerializer))

    def __init__(self, *args, **kwargs):
        super(self.__class__, self).__init__(*args, **kwargs)
Example #23
0
 def get(self, request):
     """
     Returns all hops that are approved in the system by default.
     """
     serializer = rf_serializers.ListSerializer(
         models.Hop.objects.all(), child=serializers.SimpleHopSerializer())
     return Response(serializer.data)
Example #24
0
class UserProfileSerializer(serializers.ModelSerializer):
    reanimation_service_code = serializers.CharField(write_only=True)
    authorized_reanimation_services = serializers.ListSerializer(
        child=ReducedReanimationServiceSerializer())

    class Meta:
        model = UserProfile
        fields = "__all__"
        read_only_fields = [
            "user", "username", "authorized_reanimation_services"
        ]

    def update(self, instance, validated_data):
        reanimation_service_code = validated_data.pop(
            "reanimation_service_code", None)
        if reanimation_service_code is not None:
            rea = ReanimationService.objects.filter(
                access_code=reanimation_service_code).first()
            if not rea:
                raise serializers.ValidationError(
                    "The code for reanimation service is wrong")

            reas = instance.authorized_reanimation_services
            reas.add(rea)
            validated_data["authorized_reanimation_services"] = reas.all()
        return super(UserProfileSerializer,
                     self).update(instance, validated_data)
Example #25
0
class OrdersSerializer(serializers.ModelSerializer):
    order_id = serializers.IntegerField(source="id", required=True)
    region = serializers.IntegerField(required=True)
    delivery_hours = serializers.ListSerializer(child=DeliveryHoursField())

    class Meta:
        model = Order
        fields = ("order_id", "weight", "region", "delivery_hours")

    def validate(self, data):
        if hasattr(self, "initial_data"):
            unknown_keys = set(self.initial_data.keys()) - set(self.fields.keys())
            if unknown_keys:
                raise ValidationError()
        return data

    def create(self, validated_data):
        delivery_hours_data = validated_data.pop("delivery_hours", [])

        with transaction.atomic():
            order = self.Meta.model.objects.create(**validated_data)

            for each in delivery_hours_data:
                each.order = order
                each.save()

        return order
Example #26
0
class ToppingSerializer(serializers.ModelSerializer):
    sub_toppings = serializers.ListSerializer(read_only=True,
                                              child=RecursiveField())

    class Meta:
        model = Topping
        fields = ('name', 'cost', 'sub_toppings')
Example #27
0
class ChildSerializer(serializers.ModelSerializer):
    children = serializers.ListSerializer(read_only=True,
                                          child=RecursiveField())

    class Meta:
        model = Category
        fields = ('id', 'slug', 'name', 'parent', 'children', 'pricetype')
Example #28
0
class UpdateForumSerializer(serializers.ModelSerializer):
    categories = serializers.ListSerializer(child=serializers.UUIDField())
    id = serializers.UUIDField()

    class Meta:
        model = Forum
        fields = ['id', 'name', 'description', 'type', 'categories']
Example #29
0
class StatusSerializer(serializers.ModelSerializer):
    sessions = serializers.ListSerializer(
        child=serializers.CharField(max_length=36), write_only=True)

    class Meta:
        fields_mini = ['id']
        fields_write_only = [
            'sessions',
        ]
        fields_small = fields_mini + fields_write_only + [
            'cpu_load', 'memory_used', 'disk_used', 'session_online',
            'date_created'
        ]
        fields_fk = ['terminal']
        fields = fields_small + fields_fk
        extra_kwargs = {
            "cpu_load": {
                'default': 0
            },
            "memory_used": {
                'default': 0
            },
            "disk_used": {
                'default': 0
            },
        }
        model = Status
Example #30
0
class MessageSerializer(BaseSerializer):
    id = serializers.IntegerField()
    channel_id = serializers.IntegerField()
    guild_id = serializers.IntegerField(required=False)
    author = UserSerializer()
    member = MemberSerializer(required=False)
    content = serializers.CharField()
    timestamp = serializers.DateTimeField()
    edited_timestamp = serializers.DateTimeField(allow_null=True)
    tts = serializers.BooleanField()
    mention_everyone = serializers.BooleanField()
    mentions = UserSerializer(many=True)
    mention_roles = serializers.ListSerializer(
        child=serializers.IntegerField())
    mention_channels = ChannelSerializer(many=True, required=False)
    attachments = AttachmentSerializer(many=True)
    embeds = EmbedSerializer(many=True)
    reactions = ReactionSerializer(many=True, required=False)
    nonce = serializers.CharField(required=False)
    pinned = serializers.BooleanField()
    webhook_id = serializers.IntegerField(required=False)
    type = serializers.IntegerField()
    activity = ActivitySerializer(required=False)
    application = ApplicationSerializer(required=False)
    message_reference = MessageReferenceSerializer(required=False)
    flags = serializers.IntegerField()
    stickers = StickerSerializer(many=True, required=False)
    referenced_message = serializers.SerializerMethodField(required=False,
                                                           allow_null=True)

    @staticmethod
    def get_referenced_message(obj):
        return MessageSerializer(
            obj.referenced_message).data if obj.referenced_message else None