Example #1
0
def add_email_address(request):
    """
    Add an email address to CRIPTs. Should be an AJAX POST.

    :param request: Django request object (Required)
    :type request: :class:`django.http.HttpRequest`
    :returns: :class:`django.http.HttpResponse`
    """
    if request.method == "POST" and request.is_ajax():
        email_address_form = EmailAddressForm(request.user, request.POST)
        if email_address_form.is_valid():
            data = email_address_form.cleaned_data
            result = email_address_add_update(address=data['address'],
                                   description=data['description'],
                                   source=data['source'],
                                   method=data['method'],
                                   reference=data['reference'],
                                   datasets = None,
                                   bucket_list=data[form_consts.Common.BUCKET_LIST_VARIABLE_NAME],
                                   ticket=data[form_consts.Common.TICKET_VARIABLE_NAME],
                                   analyst=request.user.username)
                                   
            if 'message' in result:
                if not isinstance(result['message'], list):
                    result['message'] = [result['message']]
            else:
                result['message'] = []
                message = ('<div>Success! Click here to view the new Email: <a '
                           'href="%s">%s</a></div>'
                           % (reverse('crits.email_addresses.views.email_address_detail',
                                      args=[result['object'].address]),
                              result['object'].address))
                result['message'].insert(0, message)
            return HttpResponse(json.dumps(result,
                                           default=json_handler),
                                content_type="application/json")
        else:
            return HttpResponse(json.dumps({'form': email_address_form.as_table(),
                                            'success': False}),
                                content_type="application/json")
    else:
        return render_to_response("error.html",
                                  {"error": "Expected AJAX POST"},
                                  RequestContext(request))