'Populates form with fields from given ContactType'

def __init__(self, user=None, contact_type=None, *args, **kwargs):

    if ('instance' in kwargs):
        self.instance = kwargs['instance']
        values = self.instance.contactvalue_set.all()
        del kwargs['instance']
    super(ContactForm, self).__init__(*args, **kwargs)
    self.fields['parent'] = forms.ModelChoiceField(label='Parent', queryset=[], required=False)
    self.fields['parent'].queryset = Object.filter_permitted(user, Contact.objects)
    self.fields['parent'].widget.attrs.update({'class': 'autocomplete', 'callback': reverse('identities_ajax_contact_lookup')})
    self.fields['parent'].widget.attrs.update({'popuplink': reverse('identities_contact_add')})
    self.fields['parent'].label = _('Parent')
    self.fields['name'].label = _('Name')
    if ('files' in kwargs):
        self.files = kwargs['files']
    for field in contact_type.fields.all():
        if self.instance:
            initial_field_name = self._get_free_field_name(field)
            self.fields[initial_field_name] = self._get_form_field(field)
            for value in values:
                if (value.field == field):
                    field_name = self._get_free_field_name(field)
                    self.fields[field_name] = self._get_form_field(field, value)
                    if (initial_field_name in self.fields):
                        del self.fields[initial_field_name]
        else:
            field_name = self._get_free_field_name(field)
            self.fields[field_name] = self._get_form_field(field)
    if user.is_admin('treeio.identities'):
        self.fields['related_user'] = forms.ModelChoiceField(label=_('Attach    to    User'), queryset=[], required=False)
        self.fields['related_user'].queryset = AccessEntity.objects.all()
        self.fields['related_user'].widget.attrs.update({'class': 'autocomplete', 'callback': reverse('identities_ajax_access_lookup')})
        self.fields['related_user'].label = _('Related    user')
    if self.instance:
        self.fields['name'].initial = self.instance.name
        self.fields['parent'].initial = self.instance.parent_id
        if ('related_user' in self.fields):
            self.fields['related_user'].initial = self.instance.related_user_id
