Ejemplo n.º 1
0
class ResponseSerializer(UuidHyperlinkedModelSerializer):
    """Gets hyperlink related fields.

    XXX: It's important to keep read_only set to true here - otherwise, a queryset is necessitated, which implicates
    get_attribute from ResourceRelatedField
    """

    created_on = serializers.DateTimeField(read_only=True,
                                           source="date_created")
    url = serializers.HyperlinkedIdentityField(view_name="api:response-detail",
                                               lookup_field="uuid")

    study = PatchedHyperlinkedRelatedField(
        read_only=True,
        related_link_view_name="api:study-detail",
        related_link_lookup_field="study.uuid",
        related_link_url_kwarg="uuid",
    )
    user = PatchedHyperlinkedRelatedField(
        read_only=True,
        source="child",
        related_link_view_name="api:user-detail",
        related_link_lookup_field="child.user.uuid",
        related_link_url_kwarg="uuid",
        required=False,
    )
    child = PatchedHyperlinkedRelatedField(
        read_only=True,
        related_link_view_name="api:child-detail",
        related_link_lookup_field="child.uuid",
        related_link_url_kwarg="uuid",
    )
    demographic_snapshot = PatchedHyperlinkedRelatedField(
        read_only=True,
        related_link_view_name="api:demographicdata-detail",
        related_link_lookup_field="demographic_snapshot.uuid",
        related_link_url_kwarg="uuid",
        required=False,
    )

    class Meta:
        model = Response
        fields = (
            "url",
            "conditions",
            "global_event_timings",
            "exp_data",
            "sequence",
            "completed",
            "child",
            "user",
            "study",
            "completed_consent_frame",
            "demographic_snapshot",
            "created_on",
            "is_preview",
            "pk",
            "withdrawn",
        )
Ejemplo n.º 2
0
class BasicUserSerializer(UuidHyperlinkedModelSerializer):
    resource_name = "users"
    url = serializers.HyperlinkedIdentityField(view_name="user-detail",
                                               lookup_field="uuid")

    demographics = PatchedHyperlinkedRelatedField(
        queryset=DemographicData.objects,
        many=True,
        related_link_view_name="user-demographics-list",
        related_link_url_kwarg="user_uuid",
        related_link_lookup_field="uuid",
    )
    organization = PatchedHyperlinkedRelatedField(
        queryset=Organization.objects,
        related_link_view_name="organization-detail",
        related_link_lookup_field="organization.uuid",
        related_link_url_kwarg="uuid",
    )
    children = PatchedHyperlinkedRelatedField(
        queryset=Child.objects,
        many=True,
        related_link_view_name="user-children-list",
        related_link_url_kwarg="user_uuid",
        related_link_lookup_field="uuid",
    )

    class Meta:
        model = User
        fields = (
            "url",
            "given_name",
            "middle_name",
            "family_name",
            "nickname",
            "identicon",
            "is_active",
            "is_staff",
            "is_researcher",
            "demographics",
            "organization",
            "children",
            "former_lookit_id",
            "linked_former_lookit_ids",
            "email_next_session",
            "email_new_studies",
            "email_study_updates",
            "email_response_questions",
            "date_created",
            "pk",
        )
Ejemplo n.º 3
0
class StudySerializer(UuidHyperlinkedModelSerializer):
    url = serializers.HyperlinkedIdentityField(view_name="api:study-detail",
                                               lookup_field="uuid")
    responses = PatchedHyperlinkedRelatedField(
        queryset=Response.objects,
        many=True,
        related_link_view_name="api:study-responses-list",
        related_link_url_kwarg="study_uuid",
        related_link_lookup_field="uuid",
    )

    class Meta:
        model = Study
        fields = (
            "url",
            "name",
            # "date_modified",
            "short_description",
            "long_description",
            "criteria",
            "duration",
            "contact_info",
            "image",
            "structure",
            "generator",
            "use_generator",
            "display_full_screen",
            "exit_url",
            "state",
            "public",
            # "organization",
            # "creator",
            "responses",
            "pk",
        )
Ejemplo n.º 4
0
class ChildSerializer(UuidHyperlinkedModelSerializer):
    lookup_field = "uuid"
    url = serializers.HyperlinkedIdentityField(view_name="api:child-detail",
                                               lookup_field="uuid")

    user = PatchedHyperlinkedRelatedField(
        queryset=User.objects,
        related_link_view_name="api:user-detail",
        related_link_lookup_field="user.uuid",
        related_link_url_kwarg="uuid",
    )

    class Meta:
        model = Child
        fields = (
            "url",
            "user",
            "given_name",
            "birthday",
            "gender",
            "age_at_birth",
            "additional_information",
            "deleted",
            "former_lookit_profile_id",
            "pk",
        )