예제 #1
0
def deserialize_contact(data, persistent=False):
    """
    Transforms data (as JSON string or a dict) to a contact object
    """
    if not data:
        return None

    if not persistent:
        pass  # TODO if necessary

    else:
        from repository.models import Contact
        from vocabulary.models import CountryCode

        if isinstance(data, basestring):
            data = DictKeyAttribute(simplejson.loads(data))
        elif isinstance(data, dict):
            data = DictKeyAttribute(data)

        try:
            obj = Contact.objects.get(pk=data.pk)
        except Contact.DoesNotExist:
            obj = Contact()
            obj.id = data.pk
            obj.firstname = data.firstname
            obj.middlename = data.middlename
            obj.lastname = data.lastname
            obj.email = data.email
            obj.affiliation = deserialize_institution(data.affiliation, True)
            obj.address = data.address
            obj.city = data.city
            obj.country = deserialize_vocabulary(data.country, True,
                                                 CountryCode)
            obj.zip = data.zip
            obj.telephone = data.telephone
            obj.creator = deserialize_user(data.creator, True)
            obj.save()

        return obj
예제 #2
0
def deserialize_contact(data, persistent=False):
    """
    Transforms data (as JSON string or a dict) to a contact object
    """
    if not data:
        return None

    if not persistent:
        pass # TODO if necessary

    else:
        from repository.models import Contact
        from vocabulary.models import CountryCode

        if isinstance(data, basestring):
            data = DictKeyAttribute(simplejson.loads(data))
        elif isinstance(data, dict):
            data = DictKeyAttribute(data)

        try:
            obj = Contact.objects.get(pk=data.pk)
        except Contact.DoesNotExist:
            obj = Contact()
            obj.id = data.pk
            obj.firstname = data.firstname
            obj.middlename = data.middlename
            obj.lastname = data.lastname
            obj.email = data.email
            obj.affiliation = deserialize_institution(data.affiliation, True)
            obj.address = data.address
            obj.city = data.city
            obj.country = deserialize_vocabulary(data.country, True, CountryCode)
            obj.zip = data.zip
            obj.telephone = data.telephone
            obj.creator = deserialize_user(data.creator, True)
            obj.save()

        return obj