def email_fields_add(request): """ Upload an email using fields. Should be an AJAX POST. :param request: Django request object (Required) :type request: :class:`django.http.HttpRequest` :returns: :class:`django.http.HttpResponse` """ fields_form = EmailUploadForm(request.user, request.POST) json_reply = { 'form': fields_form.as_table(), 'success': False, 'message': "" } if request.method != "POST": message = "Must submit via POST" if request.is_ajax(): json_reply['message'] = message return HttpResponse(json.dumps(json_reply), mimetype="application/json") else: return render_to_response('error.html', {'error': message}, RequestContext(request)) if not fields_form.is_valid(): message = "Form is invalid." if request.is_ajax(): json_reply['message'] = message return HttpResponse(json.dumps(json_reply), mimetype="application/json") else: return render_to_response('error.html', {'error': message}, RequestContext(request)) obj = handle_email_fields(fields_form.cleaned_data, request.user.username, "Fields Upload") if not obj['status']: if request.is_ajax(): json_reply['message'] = obj['reason'] return HttpResponse(json.dumps(json_reply), mimetype="application/json") else: return render_to_response('error.html', {'error': obj['reason']}, RequestContext(request)) if request.is_ajax(): json_reply['success'] = True del json_reply['form'] json_reply['message'] = 'Email uploaded successfully. <a href="%s">View email.</a>' % reverse('crits.emails.views.email_detail', args=[obj['object'].id]) return HttpResponse(json.dumps(json_reply), mimetype="application/json") else: return HttpResponseRedirect(reverse('crits.emails.views.email_detail', args=[obj['object'].id]))
def email_fields_add(request): """ Upload an email using fields. Should be an AJAX POST. :param request: Django request object (Required) :type request: :class:`django.http.HttpRequest` :returns: :class:`django.http.HttpResponse` """ fields_form = EmailUploadForm(request.user, request.POST) user = request.user json_reply = { 'form': fields_form.as_table(), 'success': False } if request.method != "POST": message = "Must submit via POST" else: if not fields_form.is_valid(): message = "Form is invalid." elif not user.has_access_to(EmailACL.WRITE): message = "User does not have permission to add email." else: form_data= fields_form.cleaned_data result = handle_email_fields(form_data, request.user, "Fields Upload", form_data['related_id'], form_data['related_type'], form_data['relationship_type']) if result['status']: redirect = reverse('crits.emails.views.email_detail', args=[result['object'].id]) if not request.is_ajax(): return HttpResponseRedirect(redirect) json_reply['success'] = True del json_reply['form'] message = 'Email uploaded successfully' if result.get('reason'): message += ', but %s' % result['reason'] message += ('. <a href="%s">View email.</a>' % redirect) else: message = result['reason'] if request.is_ajax(): json_reply['message'] = message return HttpResponse(json.dumps(json_reply), content_type="application/json") else: return render_to_response('error.html', {'error': message}, RequestContext(request))